Opa — мова програмування з відкритим вихідним кодом для розробки масштабованих вебдодатків.
Opa | |
---|---|
Парадигма | мульти-парадигма: функціональна та імперативна |
Дата появи | 2011 |
Розробник | MLstate |
Останній реліз | 1.1.0 (stable) (13 лютого 2013 ) |
Система типізації | static, strong, inferred |
Під впливом від | OCaml, Erlang, JavaScript |
Операційна система | Linux, OS X, Windows |
Ліцензія | MIT License, AGPLv3 |
Репозиторій вихідного коду | github.com/MLstate/opalang |
Вебсайт | opalang.org |
Мову можна використовувати як для клієнтських, так і для серверних сценаріїв, де програми пишуться в Opa і згодом компілюються в Nodejs на сервері в на JavaScript на стороні клієнта. Opa має сильну статичну типізацію, яка може бути корисна в захисті проти безпеки таких проблем, як в SQL-ін'єкції і міжсайтовий скриптинг.
Мову було вперше офіційно представлено на конференції OWASP 2010 року, а вихідний код викладено на github у червні 2011-го.
Design and features
Opa складається з вебсервера, бази даних та розподіленого рушія. Код компілюється в JavaScript за допомогою Node.js на серверній стороні і в JavaScript з використанням jQuery для крос-браузерної сумісності на стороні клієнта. Перевага даного підходу в порівнянні з деякими платформами Rich Internet Applications (RIA) є те, що користувачам не потрібно встановити плагін для браузера. Opa розподіляє дії вебфреймворками, але використовує трохи інший підхід. Його конструктори стверджують, що це допомагає мові уникнути багатьох проблем безпеки, на кшталт SQL ін'єкцій і міжсайтового скриптингу (XSS).
Ядро мови функціональне і має статичний тип за видами типів. Мова також забезпечує роботу сесій, які інкапсулюють імперативні стани і взаємодіють за допомогою передачі повідомлень, схожими на роботу Erlang. Opa надає безліч структур або функцій, які є спільними в веброзробці, як об'єкти першого класу. Наприклад, HTML та аналізатори, засновані на парсингу граматичних виразів. Через це ця мова не призначена для створення не-вебдодатків (наприклад, додатків для настільних комп'ютерів).
У релізі 0.9.0, що вийшов у лютому 2012 року, з'явилась підтримка відображення нереляційних, документ-орієнтованих баз даних MongoDB, схожих на об'єктно-реляційні відображення. В версії 1.1.0 в лютому 2013 року також додано підтримку PostgreSQL.
Приклади
Hello world
Традиційна програма Hello world! створює вебсервер, який відобразить статичну сторінку з текстом «Hello world!», її код буде наступним:
Server.start(Server.http, { title: "Hello" , page: function() { <h1>Hello, web!</h1> } } )
Він може бути скомпільований в окремий JS-файл:
$ opa hello_web.opa
Запуск JS-файлу запускає вебдодаток:
$ ./hello_web.js
Див. також
- Dart — JS-альтернатива для вебдодатків
- Haxe — подібна мова програмування для вебдодатків
- CoffeeScript — мова програмування, що компілюється в JavaScript
Примітки
- http://blog.opalang.org/2013/02/some-great-news-on-opa.html
- Adam Koprowski (24 February 2012).
- Opa actually supports various server-side backends, Nodejs being the most popular one
- Robertson, William; Giovanni, Vigna (2009).
- "OPA: Language Support for a Sane, Safe and Secure Web, at OWASP 2010".
- «GitHub repository» [ 25 лютого 2016 у Wayback Machine.].
- «Opa — The Scalable Open Source Cloud Language» [ 12 жовтня 2016 у Wayback Machine.].
- «Interview: François-Régis Sinot on Opa, a Web Development Platform» [ 10 травня 2016 у Wayback Machine.].
- Neil McAllister (8 September 2011).
- «InfoWorld review: Tools for rapid Web development» [ 19 травня 2010 у Wayback Machine.].
- «Auch Opa ist für Cloud-Anwendungen» [ 2 липня 2016 у Wayback Machine.].
- «Opa — a unified approach to web programming» [ 13 березня 2016 у Wayback Machine.]. i-Programmer. 28 August 2011.
- Koprowski, Binsztok (2011).
- «Opa, un nouveau langage pour le développement d'applications Web» [ 27 лютого 2017 у Wayback Machine.] (in French).
- «Hello, database» [ 12 січня 2014 у Wayback Machine.].
- «Low-level MongoDB support» [ 12 січня 2014 у Wayback Machine.].
- «Programming Opa: Web development, reimagined» [ 2 жовтня 2016 у Wayback Machine.].
- Alastair Aitken (26 July 2011).
Бібліографія
- Opa: Up and Running, 2013, O'Reilly Media
Посилання
- Офіційний сайт [ 16 червня 2020 у Wayback Machine.]
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Opa mova programuvannya z vidkritim vihidnim kodom dlya rozrobki masshtabovanih vebdodatkiv OpaParadigmamulti paradigma funkcionalna ta imperativnaData poyavi2011RozrobnikMLstateOstannij reliz1 1 0 stable 13 lyutogo 2013 11 rokiv tomu 2013 02 13 Sistema tipizaciyistatic strong inferredPid vplivom vidOCaml Erlang JavaScriptOperacijna sistemaLinux OS X WindowsLicenziyaMIT License AGPLv3Repozitorij vihidnogo kodugithub com MLstate opalangVebsajtopalang org Movu mozhna vikoristovuvati yak dlya kliyentskih tak i dlya servernih scenariyiv de programi pishutsya v Opa i zgodom kompilyuyutsya v Nodejs na serveri v na JavaScript na storoni kliyenta Opa maye silnu statichnu tipizaciyu yaka mozhe buti korisna v zahisti proti bezpeki takih problem yak v SQL in yekciyi i mizhsajtovij skripting Movu bulo vpershe oficijno predstavleno na konferenciyi OWASP 2010 roku a vihidnij kod vikladeno na github u chervni 2011 go Design and featuresOpa skladayetsya z vebservera bazi danih ta rozpodilenogo rushiya Kod kompilyuyetsya v JavaScript za dopomogoyu Node js na servernij storoni i v JavaScript z vikoristannyam jQuery dlya kros brauzernoyi sumisnosti na storoni kliyenta Perevaga danogo pidhodu v porivnyanni z deyakimi platformami Rich Internet Applications RIA ye te sho koristuvacham ne potribno vstanoviti plagin dlya brauzera Opa rozpodilyaye diyi vebfrejmvorkami ale vikoristovuye trohi inshij pidhid Jogo konstruktori stverdzhuyut sho ce dopomagaye movi uniknuti bagatoh problem bezpeki na kshtalt SQL in yekcij i mizhsajtovogo skriptingu XSS Yadro movi funkcionalne i maye statichnij tip za vidami tipiv Mova takozh zabezpechuye robotu sesij yaki inkapsulyuyut imperativni stani i vzayemodiyut za dopomogoyu peredachi povidomlen shozhimi na robotu Erlang Opa nadaye bezlich struktur abo funkcij yaki ye spilnimi v vebrozrobci yak ob yekti pershogo klasu Napriklad HTML ta analizatori zasnovani na parsingu gramatichnih viraziv Cherez ce cya mova ne priznachena dlya stvorennya ne vebdodatkiv napriklad dodatkiv dlya nastilnih komp yuteriv U relizi 0 9 0 sho vijshov u lyutomu 2012 roku z yavilas pidtrimka vidobrazhennya nerelyacijnih dokument oriyentovanih baz danih MongoDB shozhih na ob yektno relyacijni vidobrazhennya V versiyi 1 1 0 v lyutomu 2013 roku takozh dodano pidtrimku PostgreSQL PrikladiHello world Tradicijna programa Hello world stvoryuye vebserver yakij vidobrazit statichnu storinku z tekstom Hello world yiyi kod bude nastupnim Server start Server http title Hello page function lt h1 gt Hello web lt h1 gt Vin mozhe buti skompilovanij v okremij JS fajl opa hello web opa Zapusk JS fajlu zapuskaye vebdodatok hello web jsDiv takozhDart JS alternativa dlya vebdodatkiv Haxe podibna mova programuvannya dlya vebdodatkiv CoffeeScript mova programuvannya sho kompilyuyetsya v JavaScriptPrimitkihttp blog opalang org 2013 02 some great news on opa html Adam Koprowski 24 February 2012 Opa actually supports various server side backends Nodejs being the most popular one Robertson William Giovanni Vigna 2009 OPA Language Support for a Sane Safe and Secure Web at OWASP 2010 GitHub repository 25 lyutogo 2016 u Wayback Machine Opa The Scalable Open Source Cloud Language 12 zhovtnya 2016 u Wayback Machine Interview Francois Regis Sinot on Opa a Web Development Platform 10 travnya 2016 u Wayback Machine Neil McAllister 8 September 2011 InfoWorld review Tools for rapid Web development 19 travnya 2010 u Wayback Machine Auch Opa ist fur Cloud Anwendungen 2 lipnya 2016 u Wayback Machine Opa a unified approach to web programming 13 bereznya 2016 u Wayback Machine i Programmer 28 August 2011 Koprowski Binsztok 2011 Opa un nouveau langage pour le developpement d applications Web 27 lyutogo 2017 u Wayback Machine in French Hello database 12 sichnya 2014 u Wayback Machine Low level MongoDB support 12 sichnya 2014 u Wayback Machine Programming Opa Web development reimagined 2 zhovtnya 2016 u Wayback Machine Alastair Aitken 26 July 2011 BibliografiyaOpa Up and Running 2013 O Reilly Media ISBN 978 1449328856PosilannyaOficijnij sajt 16 chervnya 2020 u Wayback Machine