LXF155:Dart
|
|
|
Что за штука…Dart?
Ник Вейч – о том, возвестит ли новый язык Dart от Google новую эпоху или новые распри... В
Дарт? По мне, звучит как нечто острое и потенциально опасное...
О
Вы бесспорно правы и по первому, и по второму пункту. Но на самом деле, это новый язык программирования, представленный и разработанный Google.
В
Вот уж мир по нему соскучился. Или нет?
О
Ну, Dart задумывался как гибкий, быстрый и удобный современный язык для разработки web-приложений – это как раз и нужно многим разработчикам и пользователям.
В
Мне казалось, у нас для этого уже есть JavaScript?
О
Это как раз один из главных моментов насчет Dart. JavaScript, действительно, не был изначально предназначен для написания сложных web-приложений; его создавали для управления DOM (Document Object Model [объектная модель документа]), то есть, другими словами, для работы с интерфейсной частью приложения. Изначально в него не закладывались те цели, которые он сейчас реализует.
В
Но я-то в своем браузере имею дело именно с интерфейсом?
О
Во времена простейших web-приложений так и было. Но тут нужно копнуть немного глубже. В web-приложениях предшествующего поколения, если нужно было выполнить удаленную обработку с какой-либо задачей, использовалась модель клиент/сервер. Клиент подключается к серверу и производится обмен информацией, при этом клиентское приложение занимается вводом и отображением, а сервер тащит на себе функциональность. Вот вам эпоха тонких клиентов, как она есть. Проблема этой системы заключалась в необходимости поддержки постоянной связи с сервером, что было «затратно» и связывало ресурсы сервера. Решением было создание сервера без фиксации состояния, который бы выполнял задачу и возвращал требуемую информацию, не храня ничего в памяти – вроде сетевой подпрограммы. А значит, основное бремя ложится на клиентскую часть – теперь web-приложение должно запоминать все действия, контролировать интерфейс и все такое. И по мере того, как приложения все более и более усложнялись, добавлялось и работы. Это вам не просто шрифты поменять.
В
А разве JavaScript эту работу не выполнял?
О
Выполнял. Примечательно, как много вещей было сделано с помощью технологий JavaScript и Ajax. Сегодня мы уже к ним привыкли, но вспомните, как поражали нас те же Google Maps, когда они только появились. Но и тут не без промахов. Один из мелких, в частности, в том, что клиентская часть приложения пишется на JavaScript, а для серверной он подходит плохо – и потому здесь почти всегда используется Javа или нечто подобное.
Проблемы особой в этом нет, но для людей, создающих web-приложения, это раздражающий фактор. Вдобавок JavaScript довольно примитивен. Практически во всех приложениях используются библиотеки вроде JQuery, чтобы код было легче писать и он работал одинаково во всех браузерах. Определенную проблему составляет совместимость браузеров, но в Dart реализована попытка решить это за счет самого языка. Тот еще финт ушами, да и не всегда эффективный.
В
Но разработчикам все равно придется иметь дело и с Dart, и с Java.
О
Не обязательно. Dart работает по принципу виртуальной машины (как и Java), так что нет причин, почему на нем нельзя писать и серверную часть. Он также представляет собой и полноценный язык, со множеством конструкций и функций, полезных для написания приложений и отсутствующих в JavaScript.
В
Пусть так, но этот новый язык всем придется учить — чего тут хорошего?
О
Да не так уж и плохо – он многое позаимствовал у других, похожих. У тех же Java, C и местами даже JavaScript. Грамотному программисту на JavaScript потребуется совсем немного времени, чтобы осилить основы Dart. И вы забываете, что он, между прочим, много что упрощает, поскольку создан специально для приложений. Решает проблемы со временем запуска, сбором мусора, многопоточностью. Иногда стоит потратить немного времени на изучение синтаксиса, чтобы потом сэкономить время на самой разработке.
В
Звучит отлично. Разработчики, наверное, в восторге!
О
Кхе, не совсем. Видите ли, множество людей пользовались JavaScript годами, делали на этом бизнес, разрабатывали для него инструментарий, знают его досконально. И они видят в новом языке некую угрозу. Так что многие, наоборот, недовольны.
В
Их можно понять. Но уж разработчики-то web-браузеров должны радоваться.
О
Да нет. Многим это также не по нраву. Не забывайте, что Google уже принадлежит львиная доля на рынке браузеров, благодаря Chrome. Если он будет контролировать еще и язык, на котором все пишут web-приложения, люди, естественно, сразу же заподозрят здесь обдираловку. Mozilla уже сообщила о своем нежелании включать поддержку Dart в последующие версии Firefox. И кстати, на Mozilla работает Брендан Эйч [Brendan Eich] (а он изобрел JavaScript).
В
Выходит, Dart будет доступен только в Chrome.
О
Я смотрю, ваш хрустальный шар более всевидящий, чем мой...
В
Да, но раз большинство разработчиков его не одобряют, а большинство браузеров не поддерживают, дальше-то дело не пойдет?
О
При всем уважении, надо признать, что когда речь заходит о сетевых технологиях, самая важная публика – не разработчики, а пользователи. Представьте себе, что можно работать с вашими приложениями так, как вы привыкли, вдвое быстрее или с большим набором функций? Что бы вы выбрали? Нетрудно представить, что вскоре Google Mail, Google Docs, Google Maps и другие продукты Googlе будут лучше функционировать в Chrome. И, увидев некое сравнительное преимущество, люди захотят работать с приложениями на Dart. Имея ОС Сhrome и базу приложений Chromе, Google получит прекрасную возможность улучшить и их скорость, и качество. По крайней мере, суть плана в этом.
В
А вам не кажется, что это посеет раздоры, и не это ли пытался сделать Microsoft с ActiveX и Internet Explorer?
О
Да, сходство есть. Но Google, в плане технологий, более открыт. Он работает под обновленной лицензией BSD, так что сам код будет настолько открытым, насколько это возможно.
В
Какая разница, если людей загонят в этакий полуприватизированный Интернет.
О
Нет. Никто не говорит, что Dart будут кому-то навязывать. Просто часто не осознают, что огромная часть разработчиков приложений по всему миру работает на Google. И если они хотят создать новый инструмент, удобный в использовании, прежде всего для себя, а затем бесплатно представить его на рынок, то ведь нам грех жаловаться?
В
И все-таки это не сработает. Зачем кому-то писать web-приложение, не поддерживаемое большинством браузеров?
О
Потенциальное решение для этого – кросс-компилятор, способный сгенерировать код JavaScript из Dart. Хотя на данный момент к использованию он непригоден. Обычное “Hello World” превращается в 180 килобайт кода.
В
Ха! Не шибко эффективно...
О
Он будет улучшен, вне всяких сомнений, ведь это ключ к продвижению Dart за пределами Google.
В
Я все равно не вижу для него будущего. Кстати, Google сейчас скорее сворачивает проекты, чем затевает новые. Buzz, Wave, Labs...
О
В общем да. Прозакладывать жизнь за Dart было бы рисково. Но как уже упоминалось, даже если он будет использоваться только в Google, Dart все равно возымеет вес в Интернете, и предположительно будет играть на руку Google, чьи счета за использование серверов, должно быть, астрономические. Мелкие рационализации в Google сэкономят больше, чем годовой бонус топ-менеджера!
В
Даже если и так, все это, похоже, выгодно только Google.
О
На самом деле, Dart задумывался как гибкий, быстрый и удобный современный язык для разработки web-приложений – как раз то, что нужно многим разработчикам и пользователям.
В
То есть поглядим, что из него выйдет...
О
Вероятно, вы правы. Если хотите посмотреть существующий код к Dart, вы найдете его на Google Code (http://code.google.com/p/dart). Сам язык, включая кое-какую полезную документацию и инструменты разработки (например, подключаемые модули Eclipse), находится на главном сайте www.dartlang.org.