Jump to content

Опа (язык программирования)

Опа
Парадигма мультипарадигмальность : функциональная , императивная
Разработчик MLstate
Впервые появился 2011
Стабильная версия
1.1.1 (стабильная) / 8 марта 2014 г .; 10 лет назад ( 08.03.2014 ) [1] [2]
Дисциплина набора текста статический , сильный , предполагаемый
ТЫ Линукс , ОС Х , Windows
Лицензия Лицензия MIT , AGPLv3
Веб-сайт опаланг .org
Под влиянием
OCaml , Эрланг , JavaScript

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

Его можно использовать как для сценариев на стороне клиента , так и на стороне сервера , когда полные программы пишутся на Opa и впоследствии компилируются в Node.js на сервере и в JavaScript на клиенте , при этом компилятор автоматизирует все взаимодействие между ними. [3] [4] Opa реализует строгую статическую типизацию , которая может быть полезна для защиты от проблем безопасности, таких как SQL-инъекции и атаки с использованием межсайтовых сценариев . [5]

Впервые язык был официально представлен на конференции OWASP в 2010 году. [6] и исходный код был опубликован на GitHub [7] в июне 2011 года под лицензией GNU Affero General Public License . Позже лицензия была изменена на лицензию MIT для части платформы (библиотеки) и AGPL для компилятора, так что приложения, написанные на Opa, можно выпускать под любой лицензией, проприетарной или с открытым исходным кодом.

Дизайн и особенности

[ редактировать ]

Opa состоит из веб-сервера , базы данных и механизма распределенного выполнения. [8] Код, написанный на Opa, компилируется в JavaScript с использованием Node.js на стороне сервера и в JavaScript с использованием jQuery для кроссбраузерной совместимости на стороне клиента . [9] Преимущество этого подхода по сравнению с некоторыми платформами Rich Internet Application (RIA) заключается в том, что пользователям не требуется устанавливать плагин в свой браузер. [10] Opa разделяет мотивацию веб-фреймворков , но использует другой подход. [11] Его разработчики утверждают, что это помогает Opa избежать многих проблем безопасности, таких как SQL-инъекции или атаки межсайтового скриптинга (XSS). [12]

Основной язык функционален и имеет статическую систему типов с выводом типа . Opa также предоставляет сеансы, которые инкапсулируют императивное состояние и взаимодействуют с помощью передачи сообщений , аналогично процессам Erlang . Opa предоставляет множество структур и функций, которые часто встречаются в веб-разработке, например, первоклассные объекты . например HTML [13] и синтаксические анализаторы , основанные на анализе грамматик выражений . [14] Из-за этой связи между языком и концепциями, связанными с Интернетом, Opa не предназначен для не-веб-приложений (например, настольных приложений ). [15]

В выпуске 0.9.0 в феврале 2012 года была представлена ​​технология сопоставления баз данных для нереляционной, документо-ориентированной базы данных MongoDB , аналогичная объектно-реляционному сопоставлению . [16] [17] [18] В версии 1.1.0, вышедшей в феврале 2013 года, также была добавлена ​​поддержка PostgreSQL , что открыло путь для поддержки нескольких баз данных SQL .

Привет, мир

[ редактировать ]

Традиционная программа Hello world , создающая веб-сервер, обслуживающий статическую страницу с надписью «Hello, web!» в качестве его содержимого можно записать на Opa как: [19]

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

Его можно скомпилировать в отдельный исполняемый файл JS с помощью:

$ opa hello_web.opa

Запуск полученного исполняемого файла JS запускает веб-приложение:

$ ./hello_web.js

См. также

[ редактировать ]
  • Ur — функциональный язык программирования для веб-разработки.
  • Dart — альтернатива Javascript для веб-приложений
  • Haxe — аналогичный язык программирования для веб-приложений.
  • CoffeeScript — язык программирования, транскомпилированный в Javascript для веб-приложений.
  • Dark — язык программирования, объединяющий разработку и развертывание бессерверных сервисов.
  1. ^ «Выпуск 1.1.1 · MLstate/opalang» . Гитхаб . Проверено 29 января 2021 г.
  2. ^ «Некоторые отличные новости об Опе» . Проверено 29 января 2021 г.
  3. ^ Адам Копровски (24 февраля 2012 г.). «Node.js против Opa: разборка веб-фреймворков» . разработчик.com.
  4. ^ Opa на самом деле поддерживает различные серверные серверные части, наиболее популярным из которых является Nodejs.
  5. ^ Робертсон, Уильям; Джованни, Винья (2009). «Статическое обеспечение целостности веб-приложений посредством строгой типизации» . SSYM'09 Материалы 18-й конференции по симпозиуму по безопасности USENIX . [ постоянная мертвая ссылка ]
  6. ^ «OPA: Языковая поддержка для разумного, безопасного и защищенного Интернета на OWASP 2010» . ОВАСП. Июнь 2010.
  7. ^ «Репозиторий GitHub» . Гитхаб .
  8. ^ «Opa ​​— масштабируемый облачный язык с открытым исходным кодом» . Веб-приложения. 22 июля 2011 г.
  9. ^ «Интервью: Франсуа-Режи Сино об Opa, платформе веб-разработки» . ИнфоВ. 7 сентября 2011 г.
  10. ^ Нил Макаллистер (8 сентября 2011 г.). «Представляем Opa, язык веб-разработки, который будет управлять всеми» . ИнфоМир.
  11. ^ «Обзор InfoWorld: Инструменты для быстрой веб-разработки» . Инфомир . 12 мая 2010 г.
  12. ^ «Дедушка тоже для облачных приложений» . Хейзе онлайн . 29 июля 2011 г.
  13. ^ «Опа — единый подход к веб-программированию» . я-программист. 28 августа 2011 г.
  14. ^ Копровски, Бишток (2011). «TRX: формально проверенный интерпретатор парсера» . Логические методы в информатике.
  15. ^ «Opa, новый язык для разработки веб-приложений» (на французском языке). LinuxПт. 22 июня 2011 г.
  16. ^ «Здравствуйте, база данных» . Опа Документация. Архивировано из оригинала 12 января 2014 г. Проверено 22 февраля 2012 г.
  17. ^ «Низкоуровневая поддержка MongoDB» . Опа Документация. Архивировано из оригинала 12 января 2014 г. Проверено 22 февраля 2012 г.
  18. ^ «Программирование Opa: новое понимание веб-разработки» . Компьютерный мир . 1 февраля 2012 г.
  19. ^ Аластер Эйткен (26 июля 2011 г.). «Опа, облачный язык – тест-драйв» . Морган Хилл. Архивировано из оригинала 25 сентября 2011 года . Проверено 6 сентября 2011 г.

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

[ редактировать ]
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: e84f12a9074d9fd592a984aa41cd3d45__1706488020
URL1:https://arc.ask3.ru/arc/aa/e8/45/e84f12a9074d9fd592a984aa41cd3d45.html
Заголовок, (Title) документа по адресу, URL1:
Opa (programming language) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)