Opa (programovací jazyk) - Opa (programming language) - Wikipedia
![]() | |
Paradigma | multi-paradigma: funkční, rozkazovací způsob |
---|---|
Vývojář | MLstate |
Poprvé se objevil | 2011 |
Stabilní uvolnění | 1.1.0 (stabilní) / 13. února 2013[1] |
Psací disciplína | statický, silný, odvozeno |
OS | Linux, OS X, Okna |
Licence | Licence MIT, AGPLv3 |
webová stránka | opalang |
Ovlivněno | |
OCaml, Erlang, JavaScript |
Opa je open-source programovací jazyk pro vývoj škálovatelné webové aplikace.
Může být použit pro oba na straně klienta a skriptování na straně serveru, kde jsou kompletní programy psány v Opa a následně kompilovány do Node.js na serveru a JavaScript na klient, s překladač automatizace veškeré komunikace mezi nimi.[2][3] Opa implementuje silný, statické psaní, které mohou být užitečné při ochraně před bezpečnostními problémy, jako je SQL injekce a skriptování mezi weby útoky.[4]
Jazyk byl poprvé oficiálně představen na OWASP konference v roce 2010,[5] a zdrojový kód byl vydán dneGitHub[6]v červnu 2011, pod a GNU Obecná veřejná licence Affero. 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 a webový server, a databáze a distribuovaný spouštěcí modul.[7] Kód napsaný v Opa je kompilován do JavaScript použitím Node.js na na straně serveru a do JavaScript použitím jQuery pro kompatibilitu mezi prohlížeči na webu strana klienta.[8]Výhodou přístupu ve srovnání s jistými Bohatá internetová aplikace Platformy (RIA) spočívají v tom, že uživatelé nemusí instalovat zapojit ve svém prohlížeči.[9] Opa sdílí motivace s webové rámce, ale zaujímá jiný přístup.[10]Jeho návrháři tvrdí, že to Opě pomáhá vyhnout se mnoha bezpečnostním problémům SQL injekce nebo skriptování mezi weby (XSS) útoky.[11]
Základní jazyk je funkční a má statický typový systém s odvození typu. Opa také poskytuje relace, které zapouzdřují rozkazovací způsob stát a komunikovat pomocí předávání zpráv, podobný Erlang procesy. Opa poskytuje mnoho struktur nebo funkcí, které jsou běžné ve vývoji webových aplikací, jako prvotřídní objekty,například HTML[12] a analyzátory, na základě Analýza gramatických výrazů.[13]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 ).[14]
Verze 0.9.0 v únoru 2012 představila technologii mapování databází pro nerelační dokumentově orientovanou databázi MongoDB, podobný objektově-relační mapování.[15][16][17]Verze 1.1.0 v únoru 2013 také přidala podporu pro PostgreSQL, připravuje půdu pro podporu několika SQL databáze.
Příklady
Ahoj světe
Tradiční Program Hello world, produkující webový server, který poskytuje statickou stránku s „Hello, web!“ jako svůj obsah lze do Opa zapsat jako:[18]
Server.Start(Server.http, { titul: "Ahoj" , strana: funkce() { <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 (programovací jazyk) - funkční programovací jazyk pro vývoj webových aplikací
- Šipka - alternativa Javascript pro webové aplikace
- Haxe - podobný programovací jazyk pro webové aplikace
- CoffeeScript - programovací jazyk překládaný do Javascript pro webové aplikace
Reference
- ^ http://blog.opalang.org/2013/02/some-great-news-on-opa.html
- ^ Adam Koprowski (24. února 2012). „Node.js vs. Opa: Web Framework Showdown“. developer.com.
- ^ Opa ve skutečnosti podporuje různé back-endy na straně serveru, přičemž Nodejs je nejoblíbenější
- ^ Robertson, William; Giovanni, Vigna (2009). „Statické vynucování integrity webových aplikací pomocí silného psaní“. SSYM'09 Sborník z 18. konference o bezpečnostním sympoziu USENIX.[trvalý mrtvý odkaz ]
- ^ „OPA: Jazyková podpora rozumného, bezpečného a zabezpečeného webu na OWASP 2010“. OWASP. Červen 2010.
- ^ „Úložiště GitHub“.
- ^ „Opa - škálovatelný cloudový jazyk s otevřeným zdrojovým kódem“. WebAppers. 22. července 2011.
- ^ „Interview: François-Régis Sinot ve společnosti Opa, a Web Development Platform“. InfoQ. 7. září 2011.
- ^ Neil McAllister (8. září 2011). „Představujeme Opa, jazyk pro webové vývojáře, který jim vládne všem“. InfoWorld.
- ^ „Recenze InfoWorld: Nástroje pro rychlý vývoj webu“. InfoWorld. 12. května 2010.
- ^ „Auch Opa ist für Cloud-Anwendungen“. Heise online. 29. července 2011.
- ^ „Opa - jednotný přístup k programování webu“. i-programátor. 28. srpna 2011.
- ^ Koprowski, Binsztok (2011). „TRX: Formálně ověřený tlumočník analyzátoru“. Logické metody v informatice.
- ^ „Opa, un nouveau langage pour le développement d'applications Web“ (francouzsky). LinuxFr. 22. června 2011.
- ^ „Dobrý den, databáze“. Dokumentace Opa. Archivovány od originál dne 12.01.2014. Citováno 2012-02-22.
- ^ „Nízkoúrovňová podpora MongoDB“. Dokumentace Opa. Archivovány od originál dne 12.01.2014. Citováno 2012-02-22.
- ^ „Programming Opa: Web development, reimagined“. Computerworld. 1. února 2012.
- ^ Alastair Aitken (26. července 2011). „Opa, cloudový jazyk - testovací jízda“. Morgan Hill. Archivovány od originál dne 25. září 2011. Citováno 6. září 2011.
Bibliografie
- Opa: funkční, 2013, O'Reilly Media ISBN 978-1449328856