Content deleted Content added
m.e. - some wikilink and clarifications in statements |
m clean up, typo(s) fixed: COVID19 → COVID-19, ically- → ically |
||
Line 20:
| website = {{URL|http://ballerina.io/}}
}}
'''Ballerina''' is an [[Open-source model|open source]] general-purpose [[programming language]] designed by [[WSO2]] for cloud-era application [[programmers]].<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>
The project 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>
Line 32:
Ballerina 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>
The designers, who provided [[enterprise integration]] products 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:
Line 38:
* 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 of 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 [[
* 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 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>
Line 148:
The generated sequence diagram is a canonical representation of the source code. The two representations can be used interchangeably. The diagram support is provided through the Ballerina VS Code plugin. The following are a couple of such generated sequence diagrams, compared with its associated code.
A sample program for retrieving and processing
[[File:Working-with-data-code+diagram.png]]
|