Opa (programovací jazyk) - Opa (programming language)
| Paradigma | multi-paradigma : funkční , imperativní |
|---|---|
| Vývojář | MLstate |
| Poprvé se objevil | 2011 |
| Stabilní uvolnění | 1.1.1 (stabilní) / 8. března 2014
|
| Psací disciplína | statické , silné , odvozené |
| OS | Linux , OS X , Windows |
| Licence | Licence MIT , AGPLv3 |
| webová stránka | opalang |
| 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
- Opa: Do provozu , 2013, O'Reilly Media ISBN 978-1449328856