| website = {{URL|http://ballerina.io/}}
}}
'''Ballerina''' is an [[Open-source model|open source]] general-purpose [[programming language]] and platform designed by [[WSO2]] for cloud-era application [[programmers]]. It is easy to write and modify and is suitable for application [[programmer]]s.<ref name="sourcecode">{{Citecite web news|url=https://thenewstackgithub.iocom/ballerina-an-api-first-programming-languageplatform/ballerina-lang |title=Ballerina: Ansource API-Firstcode Programming Language|lastauthor=Jackson|first=Joab|work=TheOpen Source NewContributors Stack|access-date=2018-06-11|language=en-US}}</ref><ref>{{Cite18 news|url=https://www.zdnet.com/article/ballerina-a-language-of-integration-of-technology-and-the-arts/|title=TechnologyJune and2019 the Arts: Celebrating Ballerina, a computer language of integration|firstpublisher=Tom|last=Foremski|date=2019-03-01|access-date=2019-07-14[[GitHub]]}}</ref><ref>{{Cite news|url=https://www.theserverside.com/blog/Coffee-Talk-Java-News-Stories-and-Opinions/Ballerina-language-promises-to-improve-app-integration|title=Ballerina language promises to improve app integration|first=George|last=Lawton|date=2018-11-01|access-date=2019-07-23}}</ref>
It is an [[Open-source model|open source]]The project <ref name="sourcecode">{{cite web |url=https://github.com/ballerina-platform/ballerina-lang |title=Ballerina source code |author=Open Source Contributors |date=18 June 2019 |publisher=[[GitHub]]}}</ref> started in 2015 by architects from [[WSO2]] as a code-based alternative to the configuration-based integration tools such as [[Enterprise application integration|EAI]], [[Enterprise service bus|ESB]], and workflow products.<ref>{{Cite web|url=https://www.infoq.com/articles/ballerina-microservices-language-part-1|title=Ballerina Microservices Programming Language: Introducing the Latest Release and "Ballerina Central"|website=InfoQ|access-date=2018-06-07}}</ref><ref>{{Cite news|url=https://searchmicroservices.techtarget.com/tip/How-does-Ballerina-stack-up-as-a-cloud-native-programming-language|title=How does Ballerina stack up as a cloud-native programming language?|first=Alan|last=Earls|date=2019-03-01|access-date=2019-07-23}}</ref>
It has various constructs geared toward cloud-native development including support for modernvarious data formats and protocols, reliability, distributed transactions, [[Application programming interface|APIs]], and event streams.<ref>{{Cite news|url=https://searchapparchitecture.techtarget.com/tip/10-of-the-best-programming-languages-to-learn-in-2020|title=10 of the best programming languages to learn in 2020|last=Doyle|first=Kerry|access-date=2020-09-16|language=en-GB}}</ref><ref>{{cite web|url=https://www.youtube.com/watch?v=rRrJKM0BAAo|title=Evolution of Integration and Microservices with Service Mesh and Ballerina|last=Posta|first=Christian|access-date=2019-07-24|language=en-GB}}</ref><ref>{{Cite news|url=https://www.techworld.com/picture-gallery/careers/up-coming-programming-languages-for-developers-get-grips-with-3621455/|title=Top programming languages you should try|author=Techworld staff|work=Techworld|access-date=2018-06-07|language=en-GB}}</ref>
== History ==
Ballerina was designed by WSO2 to improve productivity for application developers that have to work with [[Distributed computing|distributed cloud-native systems]]. The designers, who provided enterprise products in the [[Enterprise integration|integration]] space for over 10 years, used their knowledge of the industry when designing the language,<ref>{{Cite news|url=https://blog.jclark.com/2019/09/ballerina-programming-language-part-0.html|title=Ballerina Programming Language Part 0 - Context|last=Clark|first=James|access-date=2020-09-16|language=en-GB}}</ref><ref>{{Cite news|url=https://blog.jclark.com/2019/09/ballerina-programming-language-part-1.html|title=Ballerina Programming Language Part 1 - Concepts|last=Clark|first=James|access-date=2020-09-16|language=en-GB}}</ref> says WSO2 director and Ballerina founder James Clark. ▼
Ballerina was first publicly announced in 2017 and version 1.0 was released on September 10, 2019.<ref>{{Cite web|url=https://www.globenewswire.com/news-release/2019/09/10/1913510/0/en/Ballerina-Reinvents-Cloud-Native-Middleware-as-a-Programming-Language-Puts-ESB-on-the-Path-to-Extinction.html|title=Ballerina Reinvents Cloud-Native Middleware as a Programming Language|website=GlobeNewswire|access-date=2020-09-16}}</ref>
== Design ==
ItBallerina is a general-purpose language with a familiar syntax along with a direct graphical representation of the code in the form of sequence diagrams. It has fundamental abstractions designed to make integration problems easier to program.<ref>{{cite web |last1=Ratnayake |first1=Dakshitha |title=Ballerina Swan Lake: 10 Compelling Language Characteristics for Cloud Native Programming |url=https://www.infoq.com/articles/ballerina-cloud-native-programming/ |website=InfoQ |publisher=InfoQ |access-date=1 March 2022}}</ref> Ballerina was designed by WSO2 to improve productivity for application developers that have to work with [[distributed computing]]. It is easy to write and modify and is suitable for application programmers.<ref>{{Cite news|url=https://thenewstack.io/ballerina-an-api-first-programming-language/|title=Ballerina: An API-First Programming Language|last=Jackson|first=Joab|work=The New Stack|access-date=2018-06-11|language=en-US}}</ref><ref>{{Cite news|url=https://www.zdnet.com/article/ballerina-a-language-of-integration-of-technology-and-the-arts/|title=Technology and the Arts: Celebrating Ballerina, a computer language of integration|first=Tom|last=Foremski|date=2019-03-01|access-date=2019-07-14}}</ref><ref>{{Cite news|url=https://www.theserverside.com/blog/Coffee-Talk-Java-News-Stories-and-Opinions/Ballerina-language-promises-to-improve-app-integration|title=Ballerina language promises to improve app integration|first=George|last=Lawton|date=2018-11-01|access-date=2019-07-23}}</ref>
▲Ballerina was designed by WSO2 to improve productivity for application developers that have to work with [[Distributed computing|distributed cloud-native systems]]. The designers, who provided enterprise products in the [[ Enterpriseenterprise integration|integration]] spaceproducts for over 10 years, used their knowledge of the industry when designing the language,<ref>{{Cite news|url=https://blog.jclark.com/2019/09/ballerina-programming-language-part-0.html|title=Ballerina Programming Language Part 0 - Context|last=Clark|first=James|access-date=2020-09-16|language=en-GB}}</ref><ref>{{Cite news|url=https://blog.jclark.com/2019/09/ballerina-programming-language-part-1.html|title=Ballerina Programming Language Part 1 - Concepts|last=Clark|first=James|access-date=2020-09-16|language=en-GB}}</ref> says WSO2 director and Ballerina founder James Clark.
Some key concepts in Ballerina include:
* The network in the language - Ballerina introduces fundamental, new abstractions of client objects, services, resource functions, and listeners to bring networking into the language.<ref>{{Cite news|url=https://hackernoon.com/rethinking-programming-the-network-in-the-language-kn3z3y55|title=Rethinking Programming: The Network in the Language|last=Warusawithana|first=Lakmal|access-date=2020-09-16|language=en-GB}}</ref>
* [[Sequence diagram]]s for programming - In Ballerina, every program has a corresponding event diagram showing the processes involved and the sequence diagramyof messages exchanged between them.<ref>{{Cite news|url=https://hackernoon.com/rethinking-programming-making-sequence-diagrams-cool-again-6z1p3yv9|title=Rethinking Programming: Making Sequence Diagrams Cool Again|last=Fernando|first=Anjana|access-date=2020-09-16|language=en-GB}}</ref>
* Structural, open-by-default typing - Ballerina has a [[Type_system#Static_type_checking|statically-typed]], [[structural type system]] that is designedaims to be network data schema friendly.<ref>{{Cite news|url=https://hackernoon.com/rethinking-programming-network-aware-type-system-8o7x3yh6|title=Rethinking Programming: Network Aware Type System|last=Fernando|first=Anjana|access-date=2020-09-16|language=en-GB}}</ref>
* Moving from code to cloud - Ballerina brings the entire program execution process to the hands of the developer with extensible metadata that gets compiled to runnable programs for all major cloud platforms.<ref>{{Cite news|url=https://hackernoon.com/rethinking-programming-from-code-to-cloud-fy273yer|title=Rethinking Programming: From Code to Cloud|last=Warusawithana|first=Lakmal|access-date=2020-09-16|language=en-GB}}</ref>
* Automated observability - Ballerina incorporates automatic observability features into the language itself that helps keep track of metrics, logs and tracing.<ref>{{Cite news|url=https://hackernoon.com/rethinking-programming-automated-observability-dn14p3yxb|title=Rethinking Programming: Automated Observability|last=Fernando|first=Anjana|access-date=2020-09-16|language=en-GB}}</ref>
== Examples ==
|