Opa (programovací jazyk) - Opa (programming language)

Opa
Opa logo cloud.png
Paradigma multi-paradigma : funkční , imperativní
Vývojář MLstate
Poprvé se objevil 2011
Stabilní uvolnění
1.1.1 (stabilní) / 8. března 2014 ; před 7 lety ( 08.03.2014 )
Psací disciplína statické , silné , odvozené
OS Linux , OS X , Windows
Licence Licence MIT , AGPLv3
webová stránka opalang .org
Ovlivněno
OCaml , Erlang , JavaScript

Opa je open-source programovací jazyk pro vývoj škálovatelných webových aplikací .

Může být použit pro skriptování na straně klienta i na straně serveru , kde jsou kompletní programy psány v Opa a následně kompilovány do Node.js na serveru a JavaScriptu na straně klienta , přičemž kompilátor automatizuje veškerou komunikaci mezi nimi. Opa nářadí silné , statické psaní , které mohou být užitečné při ochraně před problémy se zabezpečením, jako jsou injekce SQL a skriptovací webů útoků.

Jazyk byl poprvé oficiálně představen na konferenci OWASP v roce 2010 a zdrojový kód byl vydán na GitHubu v červnu 2011 na základě GNU Affero General Public License . Později se licence změnila na licenci MIT pro rámcovou část (knihovnu) a AGPL pro kompilátor, takže aplikace napsané v Opa mohou být vydány na základě jakékoli licence, proprietární nebo open source.

Design a funkce

Opa se skládá z webového serveru , databáze a distribuovaného spouštěcího stroje. Kód napsaný v Opa je kompilován do JavaScriptu pomocí Node.js na straně serveru a do JavaScriptu pomocí jQuery pro kompatibilitu mezi prohlížeči na straně klienta . Výhodou tohoto přístupu ve srovnání s určitými platformami Rich Internet Application (RIA) je, že uživatelé nejsou povinni instalovat plugin do svého prohlížeče. Opa sdílí motivace s webovými rámci , ale zaujímá odlišný přístup. Její designéři tvrdí, že to Opě pomáhá vyhnout se mnoha bezpečnostním problémům, jako jsou injekce SQL nebo útoky skriptováním mezi weby (XSS).

Základní jazyk je funkční a má systém statického typu s odvozením typu . Opa také poskytuje relace, které zapouzdřují imperativní stav a komunikují pomocí předávání zpráv , podobně jako procesy Erlang . Opa poskytuje mnoho struktur nebo funkcí, které jsou běžné ve vývoji webu, jako prvotřídní objekty , například HTML a analyzátory , založené na gramatických analýzách výrazů . Z důvodu této adheze mezi jazykem a webovými koncepty není Opa určen pro jiné než webové aplikace (například desktopové aplikace ).

Verze 0.9.0 v únoru 2012 představila technologii mapování databáze pro nerelační dokumentově orientovanou databázi MongoDB , podobně jako objektově relační mapování . Verze 1.1.0 z února 2013 také přidala podporu pro PostgreSQL , což připravilo cestu pro podporu několika databází SQL .

Příklady

Ahoj světe

Tradiční program Hello world , produkující webový server, který obsluhuje statickou stránku s „Hello, web!“ jako svůj obsah lze do Opa zapsat jako:

Server.start(Server.http,
  { title: "Hello"
  , page: function() { <h1>Hello, web!</h1> }
  }
)

Může být zkompilován do samostatného spustitelného souboru JS s:

$ opa hello_web.opa

Spuštění výsledného spustitelného souboru JS spustí webovou aplikaci:

$ ./hello_web.js

Viz také

  • Ur - funkční programovací jazyk pro vývoj webových aplikací
  • Dart - alternativa Javascript pro webové aplikace
  • Haxe - podobný programovací jazyk pro webové aplikace
  • CoffeeScript - programovací jazyk překládaný do Javascript pro webové aplikace
  • Dark , programovací jazyk, který integruje vývoj a nasazení služeb bez serveru

Reference

Bibliografie

externí odkazy