---
title: Developer-friendly enhancements with Halon 3.5
description: Discover how Halon 3.5 simplifies scripting with an IDE, object orientation, and cleaner code features.
---

[News | Halon ](https://halon.io/blog)

# [Developer-friendly enhancements with Halon 3.5](https://halon.io/blog/whats-new-in-halon-3-5-sunny)

 Written by [Anders Berggren](https://halon.io/blog/author/anders-berggren) | Apr 20, 2016 10:00:00 PM

[Photo](https://www.flickr.com/photos/reggiepen/14886855450) by [Reginald Pentinio](https://www.flickr.com/photos/reggiepen/)

Spring is here, and so is the [3.5 release](https://github.com/halonsecurity/changelog#35) (codename *sunny*) of the Halon SMTP software! It includes major features such as an IDE-style script editor and object orientation, is based on FreeBSD [10.3](https://www.freebsd.org/releases/10.3R/announce.html) and comes with the latest quarterly packages. In other words, this release marks another milestone for Halon’s developer friendliness.

Noting that most of our high-profile customers uses scripting exclusively (in contrast to graphical flow chart blocks) and halonctl to configure their system, we’ve added a script editor (based on [Ace](https://ace.c9.io) and [w2ui](https://github.com/vitmalina/w2ui)) inspired by the integrated development environment (IDE) concept. It streamlines the entire workflow by allowing you to work on multiple files, test the code you’re writing in a [REPL](https://en.wikipedia.org/wiki/Read–eval–print_loop) interpreter with a pre/post-amble environment, global code search, and much more.

Another feature related to scripting is the [object](http://docs.halon.se/hsl/structures.html#object) and this keywords, which brings object orientation to our scripting language. It’s based on [closures](http://docs.halon.se/hsl/structures.html#closure-functions) (introduced in 3.4-r4) and is the basis for recent additions such as the [MIME](http://docs.halon.se/hsl/functions.html#mime) object. Speaking of which, the standard library’s MIME object now has [send()](http://docs.halon.se/hsl/functions.html#MIME.send) and toString() methods which can be used to generate email (customised bounces, for example), and the DATA context’s MIME object a [getBody()](http://docs.halon.se/hsl/functions.html#MIME.getBody) method. The scripting language has also received a couple of new convenience features such as [ destructuring assignment](http://docs.halon.se/hsl/operators.html#destructuring-assignment), [null coalescing operator](http://docs.halon.se/hsl/structures.html#null-coalescing-operator) and [include_once](http://docs.halon.se/hsl/structures.html#include-once), which you can see examples of below. It allows you to write cleaner and clearer code, more quickly.

```
$x = object [ "self" => function() { return this; }]; // object orientation
[$error, $code] = some_protocol($query);              // destructuring assignment
$var = $data["settings"] ?? "default value";          // null coalescing operator
```

Finally, we’ve added HAProxy protocol support in addition to XCLIENT, and uses Postfix 3.0.3’s default TLS setting which is to disable SSLv3.

New systems are deployed by [downloading](https://halon.io/download) a disk image or virtual machine template, and existing systems are updated by simply pressing the web admin’s update button.

[View full post](https://halon.io/blog/whats-new-in-halon-3-5-sunny)

```json
{
  "@context" : "http://schema.org",
  "@type" : "BlogPosting",
  "author" : {
    "@type" : "Person",
    "name" : "Anders Berggren"
  },
  "dateModified" : "2025-02-21T10:50:19.543Z",
  "datePublished" : "2016-04-20T22:00:00Z",
  "headline" : "Halon 3.5 “sunny” with an integrated IDE",
  "image" : {
    "@type" : "ImageObject",
    "height" : 230,
    "url" : "https://2734201.fs1.hubspotusercontent-na1.net/hubfs/2734201/Imported_Blog_Media/sunflowers.jpg",
    "width" : 1000
  },
  "mainEntityOfPage" : "https://halon.io/blog/whats-new-in-halon-3-5-sunny",
  "publisher" : {
    "@type" : "Organization",
    "logo" : {
      "@type" : "ImageObject",
      "height" : 60,
      "url" : "/hs/hsstatic/content_shared_assets/static-1.4092/img/default-amp-logo.png",
      "width" : 60
    },
    "name" : "Halon blog"
  }
}
```