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 ISBN 978-1449328856
Посилання ред.
- Офіційний сайт [ 16 червня 2020 у Wayback Machine.]