Оригинал материала находится по адресу ibusiness.ru/blogs/2318
20.09.2011

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

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

Речь пойдёт о новом языке программирования, известном среди отцов-разработчиков как 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, Айк отвечает кратко: если бы я не подсуетился, мир точно получил бы что-нибудь намного худшее (фото: JS Conf).

Рабочее «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 — глобальная сеть наверняка будет быстрей и удобней. Одно плохо: с мечтой о свободной, независимой Веб придётся распрощаться.


Dart,Google,Javascript,Брендан_Айк,Netscape,эволюция_Сети,язык_программирования




Евгений Золотов, 1999-2018. Личный архив. Некоторые права защищены