Opa-это новый язык с открытым исходным кодом, который позволяет писать приложение и компилировать его в приложение JavaScript на клиенте, в комплекте с поддержкой на стороне сервера, включая базу данных.
Новые языки являются обычным явлением, и для того, чтобы язык заслуживал большего, чем академическое внимание или просто восхищение его энтузиастов, он должен совершить прорыв в более широком сообществе программистов. Opa-это новый язык с открытым исходным кодом с целями дизайна, которые мы все можем оценить.
На данный момент веб-разработка-это беспорядок технологий, которые не совсем сочетаются друг с другом, и все же мы настолько знакомы с тем, как обстоят дела, что, кажется, не замечаем этого. Чтобы создать веб-приложение, вы должны кодировать на HTML, языке на стороне сервера, таком как PHP, стилизовать страницу с помощью CSS, написать код на стороне клиента с помощью JavaScript и надеяться, что все это работает в браузере. Идея Opa заключается в том, что вы пишете приложение на одном языке и компилируете его в приложение JavaScript на клиенте в комплекте с поддержкой на стороне сервера, включая базу данных. Это означает, что вы пишете свое приложение в Opa и оставляете компилятору разбираться в используемых технологиях.
«Привет, мир» в Опа-это просто
сервер = one_page_server(«Привет», -> <>Привет, веб!>)
Конечно, это не очень информативно, потому что, если вы предполагаете, что существует подходящая процедура для программ задач на любом языке, приходите к одному вызову процедуры. Если вы посмотрите на Opa более внимательно, это выглядит как нечто среднее между HTML и функциональным языком, который иногда напоминает вам о других языках. В HTML могут быть вставлены значения переменных, чтобы он динамически обновлялся. Он также интенсивно использует DOM и CSS. Поэтому, чтобы использовать Opa, вы все равно должны знать некоторые HTML, CSS и DOM.
Веб-серверная часть системы представлена серверной конструкцией, которая может использоваться для настройки многостраничных веб-сайтов. Однако вам все равно придется проанализировать URL-адрес, чтобы определить последовательность отправки. Конечно, серверы реализованы как параллельные операции, и система может масштабироваться с помощью дополнительных ядер или может быть запущена в распределенной «облачной» системе без каких-либо изменений. Также утверждается, что система более безопасна, поскольку пользовательский веб-сервер/база данных обеспечивает меньшую поверхность атаки.
В целом у Опа есть несколько привлекательных идей. Мое личное мнение заключается в том, что он повторяет ошибки других попыток создать единую систему веб-разработки в том, что он недостаточно абстрагируется от базовых технологий. Представьте себе, если бы я предложил вам новый язык высокого уровня, который позволил бы машинному коду проникнуть внутрь? Видеть HTML по всему коду так же плохо. Это не означает, что существует простой или очевидный способ избавиться от HTML, и есть преимущества в использовании технологии, которая уже хорошо принята. Есть также аспекты языка, которые достаточно отличаются, чтобы вызвать у среднего программиста некоторые проблемы — он не объектно-ориентирован и происходит от функционального языка, который дает ему ощущение, которое будет чуждо большинству. Его подход к распределенным сеансам хорош, но Node.js обеспечивает аналогичный и, возможно, более простой для понимания подход к управлению асинхронными веб-операциями.