Відмінності між версіями «Opa (мова програмування)»

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
(Створено шляхом перекладу сторінки «Opa (programming language)»)
Мітки: Переклад вмісту, суміш розкладок у тексті
(Немає відмінностей)

Версія за 08:47, 28 вересня 2016

Opa — мова програмування з відкритим вихідним кодом для розробки масштабованих веб-додатків.

Мову можна використовувати як для клієнтських, так і для серверних сценаріїв, де програми пишуться в Opa і згодом компілюються в Nodejs на сервері в на JavaScript на стороні клієнта.[1][2] Opa маж сильну статичну типізацію, яка може бути корисна в захисті проти безпеки таких проблем, як в SQL-ін'єкції і міжсайтовий скриптинг.[3]

Мову було вперше офіційно представлено на конференції OWASP 2010 року,[4] а вихідний код викладено на github[5] у червні 2011-го.

Design and features

Opa складається з веб-серверабази даних та розподіленого рушія.[6] Код компілюється в JavaScript за допомогою Node.js на серверній стороні і в JavaScript з використанням jQuery для крос-браузерної сумісності на стороні клієнта.[7] Перевага даного підходу в порівнянні з деякими платформами Rich Internet Applications (RIA) є те, що користувачам не потрібно встановити плагін для браузера.[8] Opa розподіляє дії веб-фреймворками, але використовує трохи інший підхід.[9] Його конструктори стверджують, що це допомагає мові уникнути багатьох проблем безпеки, на кшталт SQL ін'єкцій і міжсайтового скриптингу (XSS).[10]

Ядро мови функціональне і має статичний тип за видами типів. Мова також забезпечує роботу сесій, які інкапсулюють імперативні стани і взаємодіють за допомогою передачі повідомлень, схожими на роботу Erlang. Opa надає безліч структур або функцій, які є спільними в веб-розробці, як об'єкти першого класу. Наприклад, HTML[11] та аналізатори, засновані на парсингу граматичних виразів.[12] Через це ця мова не призначена для створення не-веб-додатків (наприклад, додатків для настільних комп'ютерів).[13]

У релізі 0.9.0, що вийшов у лютому 2012 року, з'явилась підтримка відображення нереляційних, документ-орієнтованих баз даних MongoDB, схожих на об'єктно-реляційні відображення.[14][15][16] В версії 1.1.0 в лютому 2013 року також додано підтримку PostgreSQL.

Приклади

Hello world

Традиційна програма Hello world! створює веб-сервер, який відобразить статичну сторінку з текстом "Hello world!", її код буде наступним:[17]

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

Він може бути скомпільований в окремий JS-файл:

$ opa hello_web.opa

Запуск JS-файлу запускає веб-додаток:

$ ./hello_web.js

Див. також

  • Dart - JS-альтернатива для веб-додатків
  • Нaxe - подібна мова програмування для веб-додатків
  • CoffeeScript - мова програмування, що компілюється в JavaScript

Посилання

Бібліографія

Зовнішні посилання