ITsin ↓

Зачем нужен Dart?

Сейчас в мире веб-разработки словосочетание "программирование на клиентской стороне" жестко ассоциируется с JavaScript. Этот язык постепенно, хотя и не очень быстро, эволюционирует и его возможностей вроде бы хватало для реализации всего того, что может понадобиться разработчику на клиентской стороне. Однако в конце 2011 года компания Google презентовала новый язык программирования под названием Dart, призванный заменить JavaScript. Попробуем разобраться, в чем же причины этого события.

Со времени появления JavaScript веб не просто не стоит на месте, а уже строит ракеты для покорения все новых и новых горизонтов. Более того, не стоит на месте и эволюционирование программирования в целом. Успевает ли за столь стремительным течением JavaScript?

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

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

Теперь на этой арене появился еще один боец - Dart. Конечно же, Dart хочет решить те же проблемы, но силами другого королевства и его взглядов. И в этом смысле Dart был бы ничем не примечательнее других, если бы не одно НО.

Наступила эра 15-ти нанометрового технологического процесса изготовления микропроцессоров. Глубже копать могут только гномы. Означает это то, что наращивать производительность вычислительных систем горизонтально - заменяя процессора на более мощные - уже не получится. Теперь горизонтальное масштабирование - наше всё! А это в свою очередь означает возобновление дикого интереса к параллельному программированию.

На этом поприще, как мы знаем, JavaScript отстает по полной - все вычисления происходят лишь в одном потоке. У программиста просто нет ни одного рычага, что бы это исправить. Вот тут и вступает Dart с его "изоляциями" (Isolates). Изоляции, по сути, просто параллельно работающие вычислительные процессы. Как и обычные процессы в ОС они полностью изолированы друг от друга и могут общаться лишь по средством передачи сообщений. При этом проблемы одного процесса не влияют (явно) на работу других. Действительно, это просто необходимая в современном мире функциональность, которую Dart дает в руки разработчикам.

Тем не менее, после появления Node.JS JavaScript является единственным языком программирования, на котором можно писать как клиентскую, так и серверную часть, что вообще-то говоря невероятно здорово. К тому же, сам текущий веб-стек технологий (HTML, CSS, JavaScript) является единственной технологией, способной, на мой взгляд, обеспечить полноценную кросс-платформенную разработку в будущем. Уже сейчас существуют такие решения как:

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