Получать лучшие публикации от редакции раз в неделю:
Публикация читателя iBusiness.ru

Злые языки нашептали или Кому мешает Javascript?

20 сентября 2011, в 11:42

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

Речь пойдёт о новом языке программирования, известном среди отцов-разработчиков как Dash, а в прессе как Dart. Первое имя фигурирует в тексте письма, просочившемся из лаборатории, где идут последние приготовления к публичной презентации языка, и скорее всего является кодовым, рабочим. Второе используют журналисты, позаимствовавшие его из плана октябрьской конференции GOTO, где и должен быть представлен продукт. Впрочем, разгоревшийся скандал связан не с именем, а с предназначением нового языка и его авторством.

Dart — скриптовый язык программирования, напоминающий по своей структуре Javascript и, как и он, нацеленный в первую очередь на веб-разработки. Но если создатели Javascript имели весьма смутное представление о будущем своего детища, авторы Dart проектировали его, зная, где он будет применяться и как.

Не углубляясь в технические подробности, можно сказать, что программы на Dart будут встраиваться в веб-странички и исполняться в браузерах, исполняться чрезвычайно быстро и эффективно. И уж поверьте, это не просто слова: среди авторов нового языка числятся создатели Java и суперскоростного Javascript-движка V8, который встроен в браузер Chrome. А трудятся они в компании, которая разработала и эксплуатирует, возможно, самый сложный комплекс Javascript-программ в мире. В Google.

Чтобы не запутаться в упоминаниях Java, стоит обратиться к истории. Прежде всего: собственно Java к языкам программирования Javascript и Dart прямого отношения не имеет. Просто в 1995, когда в недрах корпорации Netscape Communications был на скорую руку (говорят, всего за десять дней) разработан примитивный скриптовый язык, способный встраиваться в веб-страницы и управлять их элементами, для него, естественно, понадобилось название.

Формальным разработчиком Javascript считается Netscape, но на самом деле у этого популярного языка есть конкретный автор: Брэндан Эйч. Не обращайте внимания на пиратский костюм: легендарный программер, занимающий сегодня пост технического директора Mozilla Corp., просто дурачится. Когда ему пеняют на острые углы Javascript, Эйч отвечает кратко: если бы я не подсуетился, мир точно получил бы что-нибудь намного худшее.

Рабочее «Mocha» было заменено на «LiveScript», а потом, благодаря хорошим отношениям с Sun Microsystems (где родилась Java), появилась возможность заменить «LiveScript» солидным «Javascript». Новый язык немедленно встроили в — тогда самый популярный — веб-браузер Netscape Navigator, и отчасти благодаря популярности браузера, отчасти благодаря имени, навевающему ассоциации со знаменитой Java, бывший Mocha стремительно пошёл в гору.

Во второй половине 90-х Javascript стал одним из двух кирпичиков, с помощью которых была выстроена так называемая Веб 2.0. Странички, отображаемые браузерами, больше не были статичными — они стали похожи на самостоятельные приложения. И хоть термин AJAX, обозначающий используемые для этого технологии был предложен лишь в 2005, ссылается он на разработки 90-х: буква J в этой аббревиатуре означает как раз Javascript. Сегодня Javascript является важнейшим связующим звеном в комплексе HTML5, который вырос на идеях AJAX.


За стремительный взлёт Javascript cтоит благодарить и Netscape, которая почти сразу сделала свой проект открытым. Уже через год компания подала заявку на промышленный стандарт (в Европейскую ассоциацию компьютерных производителей, ECMA) — и заявка была удовлетворена. Взяв Javascript за основу, ECMA сформулировала спецификации скриптового языка программирования ECMAScript.

В доработке этих спецификаций с тех пор участвуют многие ИТ-гиганты, и они же используют их как эталон для собственных диалектов, так или иначе расширяющих базовый набор команд. Здесь и JScript от Microsoft, и чистый ECMAScript от Opera, ActionScript от Adobe, и конечно сам Javascript, используемый не только наследницей Netscape, Mozilla Foundation, но и многими другими (Google, Apple и т.д.). Согласно независимой статистике, Javascrtipt остаётся самым популярным членом своего семейства и единственный из него входит в первую десятку самых используемых языков программирования в мире.

Недостатки слепленного наспех проекта стали проявляться, когда планета уже плотно «сидела» на Javascript-игле. AJAX и HTML5 подразумевают написание чрезвычайно сложных Javascript-программ. Неудивительно, что скорость исполнения однажды превратилась в головную боль. Этот изъян удалось в значительной степени компенсировать за счёт разработки новых, оптимизированных Javascript-движков (вроде Google V8, компилирующего программу в машинный код).

Хуже обстоят дела с примитивностью самого языка. Несколько упрощая, можно сказать, что несовершенство Javascript вынуждает веб-программистов строить неадекватно сложные, трудно переносимые между платформами, далёкие от идеала в смысле производительности программные конструкции. С увеличением числа популярных альтернативных платформ (iOS, Android, кто следующий?) проблема становится только острее.


Самым эффективным — и, по мнению многих, единственно действенным — решением была бы радикальная перестройка. И такая идея предлагалась, как минимум один раз, три года назад некоторыми компаниями, участвующими в разработке эталона, ECMAScript. Но инициатива была заблокирована другими участниками. Их можно понять: на ECMAScript-совместимых языках (прежде всего, на Javascript) написаны миллиарды веб-программ, на них фактически покоится вся современная Сеть — нужно думать о совместимости!

Поэтому избрали другой путь. ECMAScript подвергнется значительной модификации, но изменения будут носить эволюционный, не революционный характер (инициатива получила название Harmony — англ. гармония, что отражает её компромиссную суть). Решит ли это озвученные выше проблемы? Мнения расходятся, но скорее всего — лишь отчасти.

Коллектив разработчиков Dart замечателен сам по себе — и сам по себе может служить гарантом качества ещё не представленного продукта. Среди авторов, в частности, Гилад Брака, сыгравший немаловажную роль в судьбе Java.

И вот здесь случается неожиданный поворот. На прошлой неделе из недр Google (бывшей, кстати, в числе сторонников компромиссного варианта Harmony) утекает письмо, датированное осенью 2010 и содержащее подробные сведения о разрабатывающемся в компании новом языке программирования Dart. Который, написан, что называется, «с нуля», похож на Javascript, но лишён его недостатков, и в течение буквально шести лет должен вытеснить предшественника. Попросту, Google, ещё недавно выступавшая против резких перемен, вдруг передумала и решила устроить революцию.

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


Сегодня, решая на чём написать новое приложение для мобильных устройств (смартфоны, планшетки), разработчики выбирают между HTML5 и родной для данного устройства девелоперской средой. Dart избавит от мук выбора: он будет одинаково эффективен как для скриптовых программ в веб-страничках, так и для полноценных программ. Экспериментировать Google есть на чём: Dart будет включён в Chrome и Android.

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

Dart создаётся по уже отработанной схеме: идея проекта, его ранняя имплементация, выпуск и первые шаги в реальном мире контролируются единолично Google. Когда (и если) проект находит отклик у публики, к нему допускают сторонних разработчиков. Таким образом, формально проект считается открытым, хоть по факту его хозяином остаётся породившая его компания. Самый громкий пример — Android (см. «Открытость и свобода Android»), но аналогично Google действует и в других областях. Вспомните продвигаемые ею протокол SPDY (ускоренный HTTP) или фотоформат WebP (улучшенный JPG).

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


Даже если критики Google правы лишь наполовину, к ним стоит прислушаться. Google уже доказала свои уникальные способности в качестве разработчика инновационных мобильных и веб-решений. Она контролирует Android, который станет (или уже стал) самой популярной платформой для недокомпьютерных устройств. Она контролирует Chrome, входящий в список самых популярных браузеров. Заручившись такой поддержкой, Dart имеет ненулевые шансы стать самым популярным языком программирования вообще, потеснив с первого места Java.

Да, в варианте от Google — Android+Chrome+SPDY+WebP+Dart — глобальная сеть наверняка будет быстрей и удобней. Одно плохо: с мечтой о свободной, независимой Веб придётся распрощаться.

Комментарии

Вы должны зарегистрироваться или войти под своим аккаунтом, чтобы написать комментарий
Без комментариев

Также читайте

Стоит знать

Как правильно создавать бонусные программы для продавцов

Есть мнение

Основные причины проблем в компаниях – это отсутствие доверия, конфликт целей, недостаток терпения и страх выглядеть глупо

Это интересно

Регистрация ООО или ИП: «за» и «против»

Дело техники

С чего начинается проектирование склада?