Все по сценарию: JavaScript и 3 его главные альтернативы

Уходит ли в прошлое JS.
16 марта 2017326451Илья Бубнов40611120

JavaScript, несмотря на свой достаточно солидный возраст, сегодня является одним из наиболее популярных языков программирования, позволяющий носителю применять его практически в любой IT-области. Знание JavaScript сыграет вам на руку при поиске работы в вебе, в разработке мобильных и десктопных приложений, даже в сферах, которые ближе к обслуживанию железа.

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

TypeScript

Первым в этом списке и одним из главных конкурентов является TypeScript. Главным его отличием, помимо покровительства компании Microsoft, является решение ряда указанных выше проблем. Здесь вы имеете классическую модель наследования с интерфейсами и классами, а типизация здесь статистическая, что позволяет избежать множество ошибок и сократить время исполнения. Собственно, все указанные изменения направлены на минимизацию ошибок в производстве и снижение временных затрат для борьбы с ними (написание тестов и алгоритмов предотвращения).

TypeScript, кстати, появился на свет в 2012 году, отчасти это обуславливает его невысокую популярность. Усугубляет ситуацию и достаточно высокий порог вхождения, особенно в сравнении с JavaScript. Если брать за мерило популярности ресурс GitHub, то среди выложенных кодов на TypeScript написано чуть более 55 тысяч исходников, в то время как на JavaScript  — более 1,5 миллионов. Похожая ситуация и на TIOBE — 8 место против позиции за пределами сотни.

Таким образом получается, что TypeScript имеет явные плюсы, поддерживается Microsoft и многими пользователями, но фактически проигрывает войну настолько явно, что о конкуренции даже говорить не приходится.

CoffeeScript

Несколько по иному пути пошёл CoffeeScript, решив не бороться с недостатками JavaScript, а сделать акцент на увеличении читаемости и понимания. Всё, что вы хотите (и можете) знать об этом языке умещается всего на 1 странице, что неудивительно, ведь даже разработчики не скрывают, что это просто «сахар» для старшего товарища. Однако это не отменяет того, что используя CoffeeScript, который естественно транслируется в JavaScript, вы экономите уйму времени, а порой, даже не задумываясь, справляетесь с некоторыми неоднозначными ситуациями.

Таким образом, получается, что CoffeeScript — это скорее не конкурент JavaScript, а некоторый перевалочный пункт для новичков или «мимо проходящих», позволяющий практически до предела снизить порог входа и ускорить разработку. А ещё CoffeeScript имеет массу поклонников, так что в сообществах вы найдёте ответы на все свои вопросы.

Dart

Не так давно мы уже посвящали целый текст языку Dart, из которого каждый прочитавший должен был вынести идею о том, что именно это главный конкурент JavaScript в будущем. Первой причиной так считать, как и у TypeScript, является поддержка IT-гиганта, здесь это Google. Вторая причина — опять-таки «правильное» наследование и строгая типизация. Это и код упрощает, и предотвращает появление большого числа незапланированных ошибок.

При этом по популярности Dart уже обошёл оба своих конкурента по-крайней мере по статистике запросов. В плане количества исходников на GitHub — пока нет, Dart в топ-15 не поместился. Однако на сегодняшний день именно Dart, а не TypeScript, является идеологическим конкурентом JavaScript, превосходя его во всём, кроме популярности и вытекающей из этого развитости экосистемы. Так что если Google не опустит руки, то совсем скоро мы возможно увидим восхождение Dart на вершину.

И лишь потом, когда-то в далёком будущем, мы сможем всерьёз рассуждать, что появился хоть один язык, способный сбить JavaScript с его насеста. А пока король одинок.

javascripttypescriptcoffeescriptdartweb_developer
Нашли ошибку в тексте? Напишите нам.