WikiDer > Опа (язык программирования) - Википедия
Парадигма | мультипарадигма: функциональный, императив |
---|---|
Разработчик | MLstate |
Впервые появился | 2011 |
Стабильный выпуск | 1.1.0 (стабильный) / 13 февраля 2013 г.[1] |
Печатная дисциплина | статический, сильный, предполагаемый |
Операционные системы | Linux, OS X, Windows |
Лицензия | Лицензия MIT, AGPLv3 |
Интернет сайт | опаланг |
Под влиянием | |
OCaml, Erlang, JavaScript |
Опа является Открытый исходный код язык программирования для развития масштабируемый веб-приложения.
Его можно использовать как для сторона клиента и серверные сценарии, где полные программы написаны на Opa и впоследствии скомпилированы в Node.js на сервер и JavaScript на клиент, с компилятор автоматизирует все коммуникации между ними.[2][3] Opa инвентарь сильный, статическая типизация, что может быть полезно для защиты от таких проблем безопасности, как SQL-инъекции и межсайтовый скриптинг атаки.[4]
Впервые язык был официально представлен на OWASP конференция 2010 г.,[5] и исходный код был выпущенGitHub[6]в июне 2011 г. GNU Стандартная общественная лицензия Affero. Позже лицензия была изменена на лицензию MIT для части фреймворка (библиотеки) и AGPL для компилятора, так что приложения, написанные на Opa, могут быть выпущены по любой лицензии, проприетарной или с открытым исходным кодом.
Дизайн и особенности
Опа состоит из веб сервер, а база данных и механизм распределенного выполнения.[7] Код, написанный на Opa, компилируется в JavaScript с помощью Node.js на сторона сервера и чтобы JavaScript с помощью jQuery для кроссбраузерной совместимости на сторона клиента.[8]Преимущество подхода по сравнению с определенным Богатое Интернет-приложение (RIA) заключается в том, что пользователям не требуется устанавливать плагин в своем браузере.[9] Опа делится мотивацией с веб-фреймворки, но использует другой подход.[10]Его разработчики утверждают, что это помогает Opa избежать многих проблем с безопасностью, таких как SQL-инъекции или же межсайтовый скриптинг (XSS) атаки.[11]
Основной язык - функциональный и имеет статический система типов с вывод типа. Opa также предоставляет сеансы, которые инкапсулируют императив заявлять и общаться, используя передача сообщений, похожий на Erlang процессы. Opa предоставляет множество структур или функций, которые являются общими для веб-разработки, например первоклассные объекты,например HTML[12] и парсеры, на основе Анализ грамматик выражений.[13]Из-за этой связи между языком и концепциями, связанными с Интернетом, Opa не предназначен для приложений, не связанных с Интернетом (например, настольные приложения).[14]
В выпуске 0.9.0, выпущенном в феврале 2012 года, была представлена технология отображения базы данных для нереляционной документно-ориентированной базы данных. MongoDB, похожий на объектно-реляционное отображение.[15][16][17]В выпуске 1.1.0 в феврале 2013 года также добавлена поддержка PostgreSQL, открывая путь для поддержки нескольких SQL базы данных.
Примеры
Привет, мир
Традиционный Привет, мир программа, создавая веб-сервер, который обслуживает статическую страницу со словами «Hello, web!» как его содержание, может быть записано в Opa как:[18]
Сервер.Начните(Сервер.http, { заглавие: "Привет" , страница: функция () { <h1>Hello, web!</h1> } })
Его можно скомпилировать в автономный исполняемый файл JS с помощью:
$ opa hello_web.opa
Запуск полученного исполняемого JS-файла запускает веб-приложение:
$ ./hello_web.js
Смотрите также
- Ур (язык программирования) - функциональный язык программирования для веб-разработки
- Дротик - альтернатива Javascript для веб-приложений
- Haxe - аналогичный язык программирования для веб-приложений
- CoffeeScript - язык программирования, преобразованный в Javascript для веб-приложений
Рекомендации
- ^ http://blog.opalang.org/2013/02/some-great-news-on-opa.html
- ^ Адам Копровски (24 февраля 2012 г.). «Node.js против Opa: Web Framework Showdown». developer.com.
- ^ Opa фактически поддерживает различные серверные части, из которых Nodejs является самым популярным.
- ^ Робертсон, Уильям; Джованни, Винья (2009). «Статическое обеспечение целостности веб-приложений с помощью строгого набора текста». SSYM'09 Материалы 18-й конференции симпозиума по безопасности USENIX.[постоянная мертвая ссылка]
- ^ «OPA: языковая поддержка для разумного, безопасного и безопасного Интернета на OWASP 2010». OWASP. Июнь 2010 г.
- ^ "Репозиторий GitHub".
- ^ «Opa - масштабируемый облачный язык с открытым исходным кодом». WebAppers. 22 июля 2011 г.
- ^ «Интервью: Франсуа-Режис Синот о Opa, платформе веб-разработки». InfoQ. 7 сентября 2011 г.
- ^ Нил Макаллистер (8 сентября 2011 г.). «Представляем Opa, язык веб-разработчиков, который управляет ими всеми». InfoWorld.
- ^ «Обзор InfoWorld: инструменты для быстрой веб-разработки». InfoWorld. 12 мая 2010 г.
- ^ "Auch Opa ist für Cloud-Anwendungen". Heise Online. 29 июля 2011 г.
- ^ «Опа - единый подход к веб-программированию». i-Programmer. 28 августа 2011 г.
- ^ Копровски, Бинсток (2011). "TRX: официально проверенный интерпретатор парсера". Логические методы в информатике.
- ^ "Opa, un nouveau langage pour le développement d'applications Web" (На французском). LinuxFr. 22 июня 2011 г.
- ^ "Привет, база данных". Опа документация. Архивировано из оригинал на 2014-01-12. Получено 2012-02-22.
- ^ «Низкоуровневая поддержка MongoDB». Опа документация. Архивировано из оригинал на 2014-01-12. Получено 2012-02-22.
- ^ «Programming Opa: новое представление о веб-разработке». Computerworld. 1 февраля 2012 г.
- ^ Аластер Эйткен (26 июля 2011 г.). «Опа, облачный язык - тест-драйв». Морган Хилл. Архивировано из оригинал 25 сентября 2011 г.. Получено 6 сентября 2011.
Библиография
- Опа: Вверх и Беги, 2013, O'Reilly Media ISBN 978-1449328856