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

LXF155:Интервью:

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

Интервью: Дэ­ми­ан Кон­вей

Спус­тя пять лет по­сле по­след­не­го ин­тер­вью, Грэм Мор­ри­сон вновь за­жал в уг­лу «дядь­ку» и од­но­го из гу­ру раз­ра­бот­ки Perl, за­дав уже ри­то­ри­че­ский во­прос: «Где вер­сия 6?»

Про­шло уже пять лет со вре­мени на­шей по­следней встре­чи с Дэ­миа­ном Кон­ве­ем — одним из глав­ных гу­ру язы­ка про­грам­ми­ро­вания Perl. Все эти го­ды Perl на­хо­дит­ся в со­стоянии некой транс­фор­ма­ции. Дол­го­ждан­ная вер­сия 6 за­вис­ла на ста­дии раз­ра­бот­ки, а дол­го­жи­тель Perl 5 уже пе­ре­нял мно­гие из ее функ­ций и стал еще по­пу­лярнее. К сча­стью, Дэ­ми­ан го­тов при­под­нять за­ве­су над тем, по­че­му, в чем и ка­кие уро­ки бы­ли усвое­ны за эти го­ды. Да­же ес­ли он все равно не ска­жет, когда же та­ки вый­дет шес­той ре­лиз.

LXF: Итак, с на­ше­го по­следнего раз­го­во­ра про­шло пять лет; как вы счи­тае­те, что из­менилось в Perl? Ва­ши сло­ва о том, что те­перь это ин­тер­фейс к CPAN, бы­ли для нас но­во­стью.

ДК: Вот это ин­те­рес­но – для ме­ня-то это не но­вость. Боль­шин­ст­во уже дав­но ду­ма­ют о Perl в та­ких тер­ми­нах. При­ня­то счи­тать CPAN язы­ком про­грам­ми­ро­вания, а Perl – про­сто его транс­ля­то­ром. Но, от­ве­чая на ваш во­прос, ду­маю, бо­лее все­го за все эти го­ды ме­ня по­ра­жа­ло то, что все шло не по пла­ну – ни с Perl 5, ни с Perl 6, ни с чем.

LXF155.iview.graham da opt.jpeg

LXF: Из-за из­мен­чи­во­сти язы­ков?

ДК: Нет, по­ла­гаю, тут де­ло не в язы­ках. Они-то как раз в это вре­мя бы­ли весь­ма ста­биль­ны. Хо­тя, что лю­бо­пыт­но, Perl 5 из­менил­ся боль­ше, чем Perl 6.

Че­го мы дей­ст­ви­тель­но не ожи­да­ли, так это столь ши­ро­ко­го воз­ро­ж­дения Perl 5 – ин­те­ре­са к нему, его раз­ви­тию, и го­тов­но­сти про­дол­жать ра­бо­ту с ним – че­го пре­ж­де не на­блю­да­лось. Не знаю, сто­ит ли счи­тать это след­ст­ви­ем пред­вку­шения дости­жений Perl 6 – хо­тя мно­ги­ми свои­ми нов­ше­ст­ва­ми пя­тая вер­сия обя­за­на шес­той. Мно­гие рас­су­ж­да­ли так: «Да, мне нра­вит­ся эта функ­ция в Perl 6, но ее же лег­ко пе­ренести и в Perl 5».

Мно­же­ст­во функ­ций – воз­мож­но, две тре­ти из все­го то­го но­во­го, что поя­ви­лось в Perl 5 за по­следние 5 лет – бы­ли ранее в Perl 6. И речь идет не толь­ко об из­менениях в струк­ту­ре са­мо­го язы­ка. Это так­же и раз­ви­тие от­дель­ных кон­ст­рук­ций, сыг­рав­ших важ­ную роль в раз­ви­тии Perl 5. Са­мое важ­ное, по­жа­луй, Moose, сде­лав­ший, на­конец, ОО (объ­ект­но-ори­ен­ти­ро­ван­ное про­грам­ми­ро­вание) дей­ст­вен­ной и очень мощ­ной аль­тер­на­ти­вой Perl 5.

LXF: OO — од­на из ва­ших лю­би­мых со­став­ляю­щих Perl 6?

ДК: Точ­но так. Сис­те­ма ОО в Perl 6 на­столь­ко хо­ро­ша по сравнению с быв­шей в Perl 5, что за по­след­нюю бы­ло пря­мо стыд­но… ес­ли не брать в рас­чет этот но­во­яв­лен­ный Moose, ко­то­рый во­брал в се­бя поч­ти все луч­шие идеи шес­той вер­сии и пе­ренес их в пя­тую.

Это ста­ло по­во­рот­ным мо­мен­том, под­стрек­нув­шим раз­ви­тие мно­гих дру­гих круп­ных кон­ст­рук­ций с ши­ро­ки­ми воз­мож­но­стя­ми, осо­бен­но в сре­де web-раз­ра­бот­ки. Их мож­но пе­ре­чис­лять и пе­ре­чис­лять – Catalyst, Dancer... на­вер­ное, их на­бе­рет­ся уже с дю­жи­ну, по-на­стоя­ще­му эф­фек­тив­ных, на­деж­ных, ак­тив­но на­би­раю­щих по­пу­ляр­ность сре­ди поль­зо­ва­те­лей. Это глав­ная пе­ре­ме­на.

Не­ко­то­рое вре­мя хо­дил та­кой мем, что Perl уми­ра­ет. Ни­че­го по­доб­но­го. По­следние пять лет Perl был и оста­ет­ся одним из са­мых ин­тен­сив­но раз­ви­ваю­щих­ся язы­ков, будь то Perl 5 или Perl 6. От аб­со­лют­но ста­тич­ной по­зи­ции в сти­ле «ну, мы бу­дем вы­пускать основ­ные ре­ли­зы раз в 5–6 лет» мы при­шли к ди­на­мич­ной сис­те­ме еже­год­но­го об­нов­ления. В ито­ге, вы по­лу­чае­те зна­чи­тель­но улуч­шен­ную, го­то­вую к ра­бо­те вер­сию Perl ка­ж­дые 12 ме­ся­цев. И эта ди­на­ми­ка по­зво­ли­ла нам внести в язык мас­су но­вых функ­ций.

Так­же боль­шое внимание уде­ле­но об­рат­ной со­вмес­ти­мо­сти. Это всегда бы­ла силь­ная сто­ро­на Perl, и нам хо­те­лось это со­хранить. Мы по­ста­ра­лись пе­ре­нять луч­ший опыт эво­лю­ции без по­терь у дру­гих язы­ков. В ча­ст­но­сти, хо­ро­ший при­мер по­да­ет Python. У нас несколь­ко дру­гой ме­ханизм раз­ви­тия, но мы оценили его плю­сы и ми­ну­сы. И мы из­ме­ня­ем куль­ту­ру Perl, ухо­дя от прежнего «это усто­яв­ший­ся язык, до­воль­но ста­биль­ный и по сей день» к но­во­му «мы мо­жем достичь го­раз­до боль­ше­го и мо­жем раз­ви­вать­ся го­раз­до бы­ст­рее».

LXF: Та­кое ма­ло кто про­де­лы­вал. ДК: Но это тот под­ход или, по крайней ме­ре, де­виз, ко­то­рый яв­но на­би­ра­ет по­пу­ляр­ность сре­ди со­об­ществ. Лю­ди осоз­на­ли, что по­сто­ян­ное раз­ви­тие во­все не вле­чет за со­бой ку­чу про­блем – вро­де сплош­ной те­ку­че­сти и неста­биль­но­сти – а да­ет гло­ток све­же­го воз­ду­ха.

А кро­ме то­го, еще и вы­иг­рыш­но смот­рит­ся. Это удач­ный мар­ке­тин­го­вый ход. Соз­да­ет­ся ощу­щение жизни, энер­гии, ув­ле­чен­но­сти. На­ше техниче­­ское со­об­ще­ст­во в це­лом уже обрело стрем­ление к но­во­му, луч­ше­му. И по фак­ту, это идет на поль­зу как со­об­ще­ст­ву, так и про­дук­ту. Боль­шин­ст­во лю­дей, осо­бен­но в кор­по­ра­тив­ной сре­де, бо­ят­ся пе­ре­мен, но ниче­го ужас­но­го в них нет.

LXF: Это не со­всем то, че­го ожи­да­ли от Perl 6 де­сять лет на­зад.

ДК: Со­гла­сен. Хо­тя неиз­вест­но, что бы­ло на уме у Лар­ри Уол­ла [Larry Wall]: никогда не до­га­да­ешь­ся, ку­да за­хо­дят его пла­ны, в этом ему нет рав­ных. Но для боль­шин­ст­ва все вы­гля­де­ло при­мер­но так: «Вот Perl 5, у него есть досто­ин­ст­ва и недостат­ки. Нуж­но уст­ранить вто­рые и при­ум­но­жить пер­вые, и тогда мы по­лу­чим дру­гой го­то­вый про­дукт». А сей­час мы и в Perl 5, и в Perl 6 ви­дим, что про­цесс раз­ви­тия стал бо­лее ор­ганич­ным: при­зна­но, что лю­бой про­дукт, со­об­ще­ст­во или ор­ганизм ли­бо эво­лю­циониру­ет и раз­ви­ва­ет­ся, ли­бо от­ми­ра­ет.

LXF: Но не зна­чит ли про­дление жизни Perl 5 от­то­ка сил от про­дви­жения в поль­зо­ва­тель­ской сре­де Perl 6?

ДК: Я счи­таю это серь­ез­ной про­бле­мой, тре­бую­щей ре­шения. Perl 6 еще пред­сто­ит най­ти свое ме­сто и свою ау­ди­то­рию. Об этом я го­во­рил в сво­ем вы­сту­п­лении на OSCON-2011. Я пы­тал­ся до­ве­сти та­кую мысль: «OK, Perl 5 – это кру­то, и бу­дет еще кру­че, ведь мы уст­ра­ня­ем ре­аль­ные про­бле­мы в язы­ке и улуч­ша­ем его. Но Perl 6 – это прин­ци­пи­аль­но иной уро­вень».

LXF: Про­грам­ми­ста­ми на Perl — ро­ж­да­ют­ся?

ДК: Не ду­маю. Мне ка­жет­ся, в Perl ли­бо об­ра­ща­ют, ли­бо ста­но­вят­ся са­ми. Это все рав­но что спро­сить: как вы за­став­ляе­те лю­дей всегда пи­сать ра­бо­таю­щий и под­дер­жи­вае­мый код Java? Вам от­ве­тят: «Да никак». А по­ис­кав от­вет в ре­аль­ной си­туа­ции, на ре­аль­ном Java, вы за­час­тую уви­ди­те са­мый ужас­ный код; са­мые бе­зум­ные ре­шения никак не влия­ют на ста­биль­ность язы­ка.

Мы нечас­то го­во­рим, что 90 % все­го на­пи­сан­но­го на Java жут­ко неэф­фек­тив­но. Но за­то охот­но спи­шем Perl со сче­тов за то, что слиш­ком ма­ло про­грам­ми­стов гра­мот­но на нем пи­шут? Это дей­ст­ви­тель­но так, но при­чи­на в том, что грамотных программистов во­об­ще ма­ло, при­чем в лю­бом язы­ке.

Та­кую ре­пу­та­цию Perl за­ра­бо­тал, когда был еще но­вым и «мод­ным» и когда у него бы­ло боль­ше эн­ту­зиа­стов, чем зна­то­ков. Вот к нему и при­лип яр­лык язы­ка «для ша­башников».

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