Реклама в Telegram-каналах DzikPic и dev.by теперь дешевле. Узнать подробности 👨🏻‍💻
Support us

Язык Opa: разработка веб-приложения в «одном окне»

Оставить комментарий
Язык Opa: разработка веб-приложения в «одном окне»

Периодически (видимо, из-за тяги к прекрасному) пробую новые языки программирования, чтобы посмотреть, чем дышит отрасль, что нового предлагают разработчики и вообще, к чему все это движется. Никаких велосипедов, впрочем, не открываю, но вот язык программирования Opa удержал мое внимание дольше прочих. Даже купил книгу от O’Reilly Media (ниже дам ссылку на нее, но помните — только для ознакомления, купите ее).

Opa старается сократить количество инструментов для разработки веб-приложений, объединяя в «одном окне» язык программирования (со своей средой исполнения), веб-сервер и СУБД. Подход, безусловно, спорный, однако при должном развитии самого инструмента и увеличении числа программистов, которые готовы на нем программировать, из него может выйти толк. Тем более, что многие считают Opa пригодным для написания масштабируемых веб-приложений, а это возможность для инструмента быть востребованным у лидеров рынка. Тот же самый Google вполне может позволить своим разработчикам наваять какой-нибудь сервис на этом языке программирования, чтобы просто посмотреть на его потенциал.

На сайте Opa дают десять причин использовать в своей разработке этот язык программирования. Остановлюсь на некоторых из них отдельно, остальные вы сможете посмотреть самостоятельно.

Причины, «начинка», примеры

Один язык управляет всем

Фундаментальная цель этого языка программирования — в создании кода как для серверной, так и для клиентской части в одном окне, экономя при этом время на написание взаимодействия между сервером и клиентом. Отпадает необходимость бороться с несколькими технологиями, связывая их для стабильной, правильной и безопасной работы.

Сильно упрощена работа с AJAX. Простая и понятная работа с СУБД. Все это позволяет быстро развернуть систему практически на любой площадке и довольно быстро накидать прототип вашего приложения.

Однако есть и минусы — подключить к работе свою СУБД не так-то и просто, но для подавляющего количества проектов (вернее для их прототипов) это не должно стать камнем преткновения. Работа идет с вполне приличной MongoDB. Поддержку большего количества СУБД обещают ввести в будущих релизах.

Работа с одним языком позволяет упростить и ускорить развертывание вашего приложения, потому что все ваши файлы, скрипты, картинки и стили помещаются в один исполняемый файл. Вам достаточно просто скопировать его, и уже все работает на другой площадке. Действительно необычное поведение для веб-ориентированного языка программирования. При этом обновление отдельных частей проекта (замена картинок, например) не требует замены всего проекта — консоль дает довольно широкие возможности для работы.

Поддержка MVC

Язык программирования Opa поддерживает модель MVC и обеспечивает механизм формирования шаблонов для быстрой разработки. Обещают всего несколько минут от установки системы до создания реально работающего приложения.

Ну, и нельзя не отметить тот момент, что если вам знаком серверный JavaScript в любом его проявлении, то работа с Opa не покажется вам сложной. Синтаксис довольно легкий, понятный, без больших и сложных конструкций. По крайней мере мне они пока не понадобились.

В данном случае работа идет с помощью Node.js, и если вы программируете на нем — то возможно Opa будет вам особо интересен. А если нет — расскажите почему?

Как видите, разницы практически нет. Это кусок кода какого-то чата, который в 2012 году написали для сравнительного тестирования производительности Node.js и Opa. Последний, к слову, выиграл. Более того, код самого простого веб-чата может поместиться на одном экране.

Новая парадигма программирования?

Признайтесь, сколько раз вы слышали эту фразу в отношении тех или иных языков программирования? Как водится, придумать новую парадигму в чем бы то ни было несложно. Сложнее сделать ее доступной, понятной и востребованной публикой.

Предполагается, что разработка приложения в «одном окне» может снизить риск удачной атаки злоумышленников, обеспечив более полную защиту вашего веб-сервиса. Разработка приложения на одном простом и прозрачном языке и правда может помочь избежать большого количества ошибок, которые нередко и приводят к взломам и удачным атакам на веб-сервисы. Вопрос больше в удобстве разработки.

Сегодняшние технологии разработки веб-приложений становятся похожими на комбайны: их становится сложнее изучать, становятся сложнее методы передачи данных между различными технологиями, и, как следствие, сложнее обеспечивать безопасность этого самого веб-приложения.

Opa же предлагает срезать острые углы в безопасности, положившись на компилятор, который самостоятельно построит все необходимые маршруты у компонентов, исключая тем самым проблемы безопасности практически полностью. Этого на сегодняшний момент нельзя добиться с помощью существующих фреймворков, поэтому и был написан новый язык программирования. Который, в свою очередь, использует для своей работы целый набор фреймворков.

Что под капотом?

Opa написана на объектно-ориентированном языке программирования OCalm, история которого составляет без малого 30 лет. Инструментарий OCaml включает в себя интерпретатор, компилятор в байткод и оптимизирующий компилятор в машинный код, превосходящий по своим параметрам аналогичные компиляторы C/C++ для многих задач, например, связанных с синтаксическим анализом.

Довольно широки возможности работы с несколькими серверами в рамках одного приложения. Например, если ваше приложение обеспечивает работу пользователей как по HTTPS, так и по HTTP, то вы можете отправлять эти потоки на разные серверы для последующей обработки. Тоже плюс в безопасность.

Помимо этого, Opa позволяет работать нескольким экземплярам приложения параллельно и тем самым обеспечить ту самую простую масштабируемость. Балансировщик языка программирования гарантирует, что запросы от одного пользователя попадают на один сервер. Однако не все так хорошо, как может показаться на первый взгляд. Если один из экземпляров приложения умирает (неважно по каким причинам), сессии пользователей теряются.

Возможно, прямо сейчас самой большой проблемой этого языка является отсутствие приятной в работе IDE и, как следствие, отсутствие нормального и очень доходчивого отладчика. Если клиентскую часть приложения можно отладить с помощью всеми любимого FireBug, то с серверной частью все чуть сложнее. Приличные средства отладки еще только в разработке, однако уже сейчас можно использовать средства отладки от языка OCalm. Он не сможет помочь во всех вопросах, но решит большую их часть.

У Opa очень правильная, на мой взгляд (не согласны?), парадигма развития — уход от работы с несколькими технологиями к работе в одном окне с одной технологией, которая умеет делать все, что необходимо. Вместо нескольких комбайнов вы получаете один комбайн — все проще. Но есть и большой минус — для того чтобы прочувствовать все прелести этого языка, вам придется учить новый язык программирования. Т.е. если вы скачаете прямо сейчас учебник и установщик, вы все равно будете разбираться с этим языком лишь на долгосрочную перспективу. Но ничто не мешает вам переписать свой бложик, используя Opa.

Есть примеры работы?

Несколько примеров можно увидеть на этой странице — от игр до финансовых сервисов, от форума до полноценной CMS. Многое open source, можно взять и разобраться, как оно работает.

Вот и еще один пример — Dropbox-as-a-Database, the tutorial. С листингами, объяснениями и скриншотами. Весьма интересно посмотреть, при условии того, что приложение строится в несколько десятков строк.

Я специально не выкладывал в статью куски кода — предлагаю вам попробовать этот язык самостоятельно, если вам будет это интересно. Книга «Opa: up and running» доступна для скачивания по этой ссылке. Снова напомню, что книгу я предоставляю исключительно в ознакомительных целях. Давайте будет воспитанными, и в случае необходимости просто купим эту книгу в цифровом формате. Бумага у нас, увы, не продается.

Книга раскроет все аспекты работы с языком, поможет написать несколько приложений из серии «Мини-Твиттер за 30 строк» — весьма любопытное чтиво в целом. Всячески рекомендую.
 

Новый рекламный формат в наших телеграм-каналах.

Купить 500 символов за $150

Читайте также
«Айтишная зарплата – ловушка». Как после 9 лет в ИТ пробовать уйти за мечтой
«Айтишная зарплата – ловушка». Как после 9 лет в ИТ пробовать уйти за мечтой
«Айтишная зарплата – ловушка». Как после 9 лет в ИТ пробовать уйти за мечтой
90 комментариев
«Власть — у вас». HR написала, почему нужно увольняться, если прессуют коллег
«Власть — у вас». HR написала, почему нужно увольняться, если прессуют коллег
«Власть — у вас». HR написала, почему нужно увольняться, если прессуют коллег
1 комментарий
Программирование «с пеленок» — 5 курсов для детей и подростков
Программирование «с пеленок» — 5 курсов для детей и подростков
Программирование «с пеленок» — 5 курсов для детей и подростков
Хотите превратить увлечение ребенка компьютером в полезное занятие? Мы составили подборку курсов для детей и подростков, которые помогут в этом. В нашем списке есть онлайн и оффлайн-занятия для разного бюджета. Они помогут познакомиться с основами программирования, созданием сайтов и игр, получить ценные знания и навыки и, возможно, станут первым шагом в будущую профессию. 
500+ человек нашли курсы, полезные для карьеры. Спрашиваем, как сделать образовательный контент лучше
500+ человек нашли курсы, полезные для карьеры. Спрашиваем, как сделать образовательный контент лучше
500+ человек нашли курсы, полезные для карьеры. Спрашиваем, как сделать образовательный контент лучше
За последние 3 месяца dev.by подготовил 175 материалов, которые советуют образовательные курсы, книги для изучения программирования или иностранных языков, скидки для обучения. Их читали больше 200 000 раз. Помогите нам сделать образовательный контент лучше и ответьте на 10 вопросов.

Хотите сообщить важную новость? Пишите в Telegram-бот

Главные события и полезные ссылки в нашем Telegram-канале

Обсуждение
Комментируйте без ограничений

Релоцировались? Теперь вы можете комментировать без верификации аккаунта.

Комментариев пока нет.