Cloud-friendly Ballerina reaches version 1.0

Cloud-friendly Ballerina reaches version 1.0

Ballerina, a language that makes it easier to program using networked resources in cloud environments, made it to version 1.0 this week.

The open source language, created by engineers at API integration company WS02, was born in 2016 out of their frustration with existing enterprise service bus technology. The engineers were fed up treating network services as simple input/output mechanisms and having to write code to communicate with them, which would often take the form of XML (incidentally, XML creator James Clark is now on the Ballerina team). There are only so many integrations that you can write from scratch before you look for a better toolset to make the work easier.

Instead, they created a platform including the Ballerina language, designed from the ground up to coordinate networked application components. Described as software for cloud-era application developments, it contains abstractions for network services and listeners, and has data types for different network communications formats. The platform also contains a library of connectors to a range of widely used protocols, APIs, and data formats.

The team describes it as a language that lets you write network communication sequence diagrams, rather than having to draw a diagram on paper and then go and write code to implement it. It then compiles all that into Java bytecode and can produce its own documentation.

The result is a language that directly integrates veteran protocols like XML and JSON and makes it easier to write microservices with high-throughput transactions and API implementations.

The Ballerina team first demonstrated the language at WSO2Con in February 2017, according to product manager Sanjiva Weerawarana, who announced version 1.0 in a blog post this week. “We had promising stuff, working code and a cool story. We knew we’d be done in another 3-6 months,” he joked.

The software is available for Linux, macOS and Windows, and also features tools including IDE integrations, a package manager, and a documentation and testing framework.