The open-source programming language Ballerina hit 1.0 generally availability this week. Ballerina is designed for the cloud-era world, enabling developers to easily build for cloud native. 

According to the team, Ballerina turns cloud native middleware into a programming language, opening up new opportunities for traditional centralized enterprise service buses. 

RELATED CONTENT: Six steps for making a successful transition to a cloud-native architecture

“Modern applications are effectively integrations of services, data, transactions and processes from a vast array of resources to deliver innovative, new services. But ESBs and other traditional integration approaches have failed to keep pace,” said Sanjiva Weerawarana, founder and leader of the Ballerina project. “The Ballerina programming language is facilitating a major evolutionary leap in the development of cloud native distributed applications that is tearing down the outdated barriers between app development and integration to enable greater agility, performance and resiliency. And it’s accelerating the ESB’s path to extinction in the process.”

Features of the programming language include:

  • New abstractions of client objects, services, resource functions and listeners. This is important because it allows developers to bring networking directly into the language and access Fallacies of Distributed Computing
  • Sequence diagrams that illustrate distributed and concurrent interactions
  • A statically-typed, structural type system for network data schema
  • A framework for package/module management
  • A central public web service for sharing modules
  • IDE tool plugins for Visual Studio Code and IntelliJ IDEA
  • A framework for documentation and testing
  • Built-in tooling for OpenAPI and Protocol Buffers v3/gRPC
  • A standard library with support for network protocols, data sources and data formats

In addition, version 1.0 specifically updated support for the stable language specification 2019R3, a new compiler for targeting the JVM, Java interoperability, and a redesign for developer tools.