Ответ 1
Opa
- Функциональное программирование
- Pro: Запустить код клиента, сервера и базы данных на одном языке
- Con: В настоящее время наименее популярный из этих языков
Дарт
- Подобно Java/JavaScript
- Pro: Может запускать код клиента и сервера на одном языке (хотя на практике это еще не лучший вариант)
- Pro: В будущем вы сможете запускать клиентский код в Dart VM в некоторых браузерах.
- Pro: Polymer MDV обеспечивает легкий подход к инкапсуляции и повторному использованию компонентов.
Haxe
- Подобно ActionScript
- Pro: Многоплатформенный язык: компиляция на другом языке/платформах, кроме того, для JavaScript (например, создание высокопроизводительных мобильных игр).
CoffeeScript
- Аналогично Ruby
- Pro: в настоящее время самый популярный из этих языков
Некоторые функции, общие для всех языков:
- Скомпилировать JavaScript.
- Взаимодействие с кодом JavaScript
Я исследовал все это для проекта, который никогда не заканчивался. Я никогда не попадал в CoffeeScript, так как он был менее знаком мне, учитывая его аромат Ruby. Опа была очень интригующей, но я в конечном итоге решил против нее, так как у нее, казалось, было очень маленькое сообщество, и я предпочел нечто более основанное на классе и объектно-ориентированное. Я уже был знаком с Haxe, играя с ним для мобильной игры, но JavaScript не казался здесь огромным фокусом: учебники и образцы были трудно найти.
С Дартом все внезапно показалось, что они собрались вместе:
- Учитывая мой язык Java/ActionScript/JavaScript, я знал язык, прежде чем писать строку кода
- Подход, основанный на моделировании с помощью модели WebUI (теперь Polymer), обеспечил разумный способ инкапсуляции и повторного использования компонентов
- Специальный IDE (редактор Dart Editor), который быстро и легко отлаживает
- Менеджер пакетов Pub упростил быстрое добавление библиотек 3-й части.
- Множество учебных пособий, статей и документации, которые помогут мне ускорить.
В конечном итоге вы можете создавать отличные веб-приложения на любом из этих языков, но на ваш выбор будет влиять ваш прошлый опыт. В моем случае я искал объектно-ориентированное решение на основе классов, которое делало его между Haxe и Dart, и Дарт явно был победителем в плане возможностей, инструментов и поддержки.