Baletka (programovací jazyk) - Ballerina (programming language)

Balerína
Jazyk baleríny
NavrhlSanjiva Weerawarana, James Clark Sameera Jayasoma, Hasitha Aravinda, Srinath Perera, Frank Leymann a WSO2[1]
VývojářWSO2
Poprvé se objevil2017
Psací disciplínaStrukturální, silný, statický, odvozeno
Jazyk implementaceJava, Ballerina, TypeScript [2]
OSCross-platform
LicenceLicence Apache 2.0[3]
webová stránkabalerína.io
Ovlivněno
Jáva, Javascript, Jít, Rez, C#[4]

Balerína je otevřený zdroj univerzální programovací jazyk a platformu navrhl WSO2 pro cloudovou éru programátoři. Snadno se píše a upravuje a je vhodný pro aplikaci programátoři.[5][6][7]

Je to otevřený zdroj projekt [2] byla zahájena v roce 2015 architekty z WSO2 jako alternativa založená na kódu k integračním nástrojům založeným na konfiguraci, jako je EAI, ESB a produkty pracovního toku.[8][9]

Má různé konstrukce zaměřené na vývoj v cloudu, včetně podpory moderních datových formátů a protokolů, spolehlivosti, distribuovaných transakcí, API a proudy událostí.[10][11][12]

Dějiny

Ballerina byla navržena WSO2, aby zlepšila produktivitu vývojářů aplikací, se kterými musí pracovat distribuované cloudové nativní systémy. Návrháři, kteří poskytovali podnikové produkty v integrace více než 10 let využili při navrhování jazyka své znalosti oboru.[13][14] Balerína byla poprvé veřejně oznámena v roce 2017 a verze 1.0 byla vydána 10. září 2019.[15]

Design

Některé klíčové pojmy v Ballerině zahrnují:

  • Síť v jazyce - Ballerina zavádí základní, nové abstrakce klientských objektů, služeb, funkcí zdrojů a posluchačů, které přinášejí síť do jazyka. [16]
  • Sekvenční diagramy pro programování - V Ballerině má každý program odpovídající sekvenční diagram, který automaticky ilustruje distribuované a souběžné interakce. [17]
  • Strukturální psaní ve výchozím nastavení - Ballerina má staticky napsaný systém strukturního typu, který je navržen tak, aby vyhovoval schématu síťových dat. [18]
  • Přesun z kódu do cloudu - Ballerina přináší vývojářům celý proces provádění programu s rozšiřitelnými metadaty, která se kompilují do spustitelných programů pro všechny hlavní cloudové platformy. [19]
  • Automatická pozorovatelnost - Ballerina zahrnuje funkce automatického pozorování do samotného jazyka, což pomáhá sledovat metriky, protokoly a trasování. [20]

Příklady

Hello World Service

import ballerina / http; service hello on new http: Listener (9090) {resource function sayHello (http: Caller caller, http: Request req) returns error? {check caller-> respond ("Hello, World!"); }}

Chcete-li spustit službu, přejděte do adresáře, který obsahuje soubor`.bal`, a proveďte níže uvedený příkaz `balerina run`.

$ baletka běh hello_world.bal[ballerina / http] zahájil posluchače HTTP / WS 0.0.0.0:9090curl http: // localhost: 9090 / ahoj / sayAhojAhoj světe!

[21]

Pracovníci

import ballerina / http; import ballerina / lang.'int; import ballerina / io; // Pracovníci mezi sebou komunikují prostřednictvím odesílání a přijímání zpráv. // Balerína ověřuje každou interakci mezi pracovníky (odesílání a příjem) // aby se zabránilo zablokování funkce main () {pracovník w1 {int w1val = checkpanic vypočítat ("2 * 3"); // Odešle zprávu asynchronně pracovníkovi `w2`. w1val -> w2; // Přijme zprávu od pracovníka `w2`. int w2val = <- w2; io: println ("[w1] Zpráva z w2:", w2val); // Synchronně odesílá zprávy pracovníkovi `w3`. Pracovník `w1` počká //, dokud pracovník` w3` zprávu nedostane. w1val - >> w3; w2val -> w3; // Vyprázdní všechny zprávy odeslané asynchronně pracovníkovi `w3`. Pracovník // se v tomto okamžiku zastaví, dokud nebudou odeslány všechny zprávy nebo dokud pracovník `w3` // selže. checkpanic flush w3; } // Pracovník může mít explicitní návratový typ, jinak, pokud návratový typ není uveden, // je ekvivalentní return (). pracovník w2 {int w2val = checkpanic vypočítat ("17 * 5"); // Přijme zprávu od pracovníka `w1`. int w1val = <- w1; io: println ("[w2] Zpráva z w1:", w1val); // Odešle zprávu asynchronně pracovníkovi `w1`. w1val + w2val -> w1; } pracovník w3 {int

[22]

Unární blokování gRPC

import balerína / grpc; import balerína / log; služba HelloWorld na novém grpc: Listener (9090) {funkce zdroje ahoj (grpc: volající volající, název řetězce, grpc: hlavičky hlaviček) {log: printInfo ("Server přijal hello od" + název); string message = "Hello" + jméno; // Přečte vlastní záhlaví ve zprávě požadavku. string reqHeader = headers.get ("client_header_key")?: "none"; log: printInfo ("Server obdržel hodnotu záhlaví:" + reqHeader); // Zapíše vlastní záhlaví do zprávy odpovědi. grpc: Záhlaví resHeader = nové; resHeader.setEntry ("server_header_key", "hodnota hlavičky odpovědi"); // Odešle odpověď s hlavičkami. grpc: Chyba? err = volající-> odeslat (zpráva, resHeader); if (err is grpc: Error) {log: printError ("Chyba z konektoru:" + err.message ()); } // Odešle volajícímu oznámení o dokončení. grpc: Chyba? result = caller-> complete (); if (výsledek je grpc: Chyba) {log: printError ("Chyba při odesílání vyplněného oznámení volajícímu", err = výsledek); }}}

[23]

Reference

  1. ^ "Specifikace jazyka baleríny". WSO2.
  2. ^ A b Přispěvatelé s otevřeným zdrojovým kódem (18. června 2019). „Zdrojový kód baleríny“. GitHub.
  3. ^ „WSO2 / LICENCE“. github.com. WSO2. 2017-03-08. Citováno 2018-03-01.
  4. ^ „Baletka, moderní programovací jazyk zaměřený na integraci“ (PDF): 15. Citovat deník vyžaduje | deník = (Pomoc)
  5. ^ Jackson, Joab. „Ballerina: API-First Programming Language“. The New Stack. Citováno 2018-06-11.
  6. ^ Foremski, Tom (01.03.2019). „Technology and the Arts: Celebrating Ballerina, a computer language of integration“. Citováno 2019-07-14.
  7. ^ Lawton, George (01.11.2018). „Jazyk baleríny slibuje zlepšení integrace aplikací“. Citováno 2019-07-23.
  8. ^ „Programovací jazyk Ballerina Microservices: Představujeme nejnovější verzi a“ Ballerina Central"". InfoQ. Citováno 2018-06-07.
  9. ^ Earls, Alan (01.03.2019). „Jak se Ballerina nahromadí jako cloudový nativní programovací jazyk?“. Citováno 2019-07-23.
  10. ^ Doyle, Kerry. „10 nejlepších programovacích jazyků pro studium v ​​roce 2020“. Citováno 2020-09-16.
  11. ^ Posta, Christian. „Vývoj integrace a mikroslužeb se Service Mesh a Ballerina“. Citováno 2019-07-24.
  12. ^ zaměstnanci, Techworld. „Nejlepší programovací jazyky, které byste měli vyzkoušet“. Techworld. Citováno 2018-06-07.
  13. ^ Clark, James. „Programovací jazyk Ballerina, část 0 - kontext“. Citováno 2020-09-16.
  14. ^ Clark, James. „Programovací jazyk baletky - 1. část - koncepty“. Citováno 2020-09-16.
  15. ^ „Ballerina znovu objevuje cloudový nativní middleware jako programovací jazyk"". GlobeNewswire. Citováno 2020-09-16.
  16. ^ Warusawithana, Lakmal. „Přehodnocení programování: síť v jazyce“. Citováno 2020-09-16.
  17. ^ Fernando, Anjana. „Přehodnocení programování: opětovné ochlazení sekvenčních diagramů“. Citováno 2020-09-16.
  18. ^ Fernando, Anjana. „Přehodnocení programování: Typ systému známý pro síť“. Citováno 2020-09-16.
  19. ^ Warusawithana, Lakmal. „Přehodnocení programování: od kódu po cloud“. Citováno 2020-09-16.
  20. ^ Fernando, Anjana. „Přehodnocení programování: automatická pozorovatelnost“. Citováno 2020-09-16.
  21. ^ Tým Ballerina (16. září 2020). „Služba Hello world“. ballerina.io.
  22. ^ Tým Ballerina (16. září 2020). „Interakce pracovníka“. ballerina.io.
  23. ^ Tým Ballerina (16. září 2020). „unární blokování gRPC“. ballerina.io.

Další čtení

externí odkazy