In this slide deck, Paul explores how the Ballerina programming language's type-system, security model, syntax, and core concepts take into account network endpoints, payloads and the semantics of network distributed applications.
5. Existing languages treat the
network as simply I/O
Ballerina treats APIs, listeners,
endpoints, network types as first
class entities
6. Ballerina is a modern, compiled, type safe,
concurrent programming language
Open Source implementations,
Apache Licensed
Open Specification,
Creative Commons Licensed
13. ○ Built in taint analysis
○ Built in API Gateway (JWT and OAuth)
○ Research on embedding SPIFFE into the language
○ First-class integration with Istio / Envoy
More info here:
https://github.com/prabath/ballerina-security
18. ○ A type defined by union of two or more other types
float | string v1 = "John";
float | string v2 = 457.68;
float | string
0.51
1.01
457.68
-11.0
“John”
“name”
“”
“bal”
// The return type of 'post' is a union of 'http:Response' and 'error'
http:Response | error response = orderEP -> post("/create", reqPayload)
21. // Simple XML literal
xml x1 = xml`<name>Paul Fremantle</name>`;
// XML with namespaces
xmlns "http://wso2.com" as ns0;
xml x2 = xml `<name id="123" status="married">
<ns0:fname>Paul</ns0:fname>
<ns0:lname>Fremantle</ns0:lname>
</name>`;
// XML literal with interpolation
string lastName = "Fremantle";
xml x3 = xml`<lname>${lastName}</lname>`;
// Concat XML values
xml x4 = x1 + x2 + x3;
44. $ ballerina openapi gen-contract hello -i demo.bal
Note: This is an Experimental tool shipped under
ballerina hence this will only support limited set
of functionality.
Successfully generated the ballerina contract at
location
/Users/paul/10demo/hello.openapi.yaml
53. ○ Join the Ballerina Hackathon
○ Write your first Ballerina program
○ Help us bridge Ballerina with your Apache project
○ Come to https://ballerina.io
○ Join the slack channel and/or ballerina-dev mailing list
○ Create a package
○ A connector to your Apache project!
○ Create issues
○ On the spec or implementation
○ If you have compiler skills, submit PRs on nBallerina or jBallerina