Ballerina, a modern programming language
focused on integration

Dr. Sanjiva Weerawarana
Founder, Chairman and Chief Architect, WSO2

2:00-3:00pm, Thursday, 6 September 2018, ITE325, UMBC

Ballerina is a concurrent, transactional, statically typed programming language. It provides all the functionality expected of a modern, general purpose programming language, but it is designed specifically for integration: it brings fundamental concepts, ideas and tools of distributed system integration into the language with direct support for providing and consuming network services, distributed transactions, reliable messaging, stream processing, security and workflows. It is intended to be a pragmatic language suitable for mass-market commercial adoption; it tries to feel familiar to programmers who are used to popular, modern C-family languages, notably Java, C# JavaScript.

Ballerina’s type system is much more flexible than traditional statically typed languages. The type system is structural, has union types and open records with optional/mandatory fields. This flexibility allows it also to be used as a schema for the data that is exchanged in distributed applications. Ballerina’s data types are designed to work particularly well with JSON; any JSON value has a direct, natural representation as a Ballerina value. Ballerina also provides support for XML and relational data.

Ballerina’s concurrency model is built on the sequence diagram metaphor and offers simple constructs for writing concurrent programs. Its type system is a modern type system designed with sufficient power to describe data that occurs in distributed applications. It also includes a distributed security architecture to make it easier to write applications that are secure by design.

Ballerina is designed for modern development practices with a modularity architecture based on packages that are easily shared widely. Version management, dependency management, testing, documentation, building and sharing are part of the language design architecture and not left for later add-on tools. The Ballerina standard library is in two parts: the usual standard library level functionality (akin to libc) and a standard library of network protocols, interface standards, data formats, authentication/authorization standards that make writing secure, resilient distributed applications significantly easier than with other languages.

Ballerina has been inspired by Java, Go, C, C++, Rust, Haskell, Kotlin, Dart, Typescript, Javascript, Swift and other languages. This talk will discuss the core principles behind Ballerina including the semantics of combining aspects of networking, security, transactions, concurrency and events into a single architecture.

Sanjiva Weerawarana founded WSO2 in 2005 with a vision to reinvent the way enterprise middleware is developed, sold, delivered, and supported through an open source model. Prior to starting WSO2, Sanjiva worked for nearly eight years in IBM Research, where he focused on innovations in middleware and emerging industry standards. At IBM, he was one of the founders of the Web services platform, and he co-authored many Web services specifications, including WSDL, BPEL4WS, WS-Addressing, WS-RF, and WS-Eventing. In recognition for his company-wide technical leadership, Sanjiva was elected to the IBM Academy of Technology in 2003.

Sanjiva also has been committed to open source development for many years. An elected member of the Apache Software Foundation, Sanjiva was the original creator of Apache SOAP, and he has contributed to Apache Axis, Apache Axis2 and most Apache Web services projects.

In 2003, Sanjiva founded the Lanka Software Foundation (LSF), a non-profit organization formed with the objective of promoting open source development, not usage, by Sri Lankan developers. He is currently its chief scientist and a director. LSF’s success stories include many Apache Web services projects and Sahana, the predominant disaster management system in the world. In recognition of his role in promoting open source participation from developing countries, Sanjiva was elected to the board of the Open Source Initiative (OSI) in April 2005, where he served for two years.

Sanjiva also teaches and guides student projects part-time in the Computer Science & Engineering department of the University of Moratuwa, and he is a member of the university’s Faculty of Engineering Industry consultative board. Prior to joining IBM, Sanjiva spent three years at Purdue University as visiting faculty, where he received his Ph.D. in Computer Science in 1994.