Журнал LinuxFormat - перейти на главную

LXF155:Dart

Материал из Linuxformat
Перейти к: навигация, поиск


Что за штука…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.

Персональные инструменты
купить
подписаться
Яндекс.Метрика