avva: (Default)
[personal profile] avva
Я провел пять дней в мошаве Арбель, неподалеку от Тверии, возле озера Киннерет на северо-востоке Израиля. Вместе с еще десятком программистов на языке Перл (Perl) — среди них несколько зарубежных гостей, а остальные израильтяне — мы занимались совместной и раздельной, организованной и не очень, работой над имплементацией новой версии языка: Perl 6. Все это называется смешным словом hackathon.


Ситуация с Перлом и его новой версией имеет довольно интересную недавнюю историю. Perl 5, текущей версии языка, уже десять лет. Хотя все время выходят новые релизы внутри этой пятой версии, существенным образом сам язык не меняется. И это хорошо, конечно; язык замечательный, библиотек хороших скопилась гора, итд. Но хочется и чего-то нового, да получше. Работа над определением новой версии языка, Perl 6, ведется уже лет пять, и до очень недавнего времени она была в очень плачевном состоянии. Ларри Уолл (изобретатель и автор языка) составил и продолжает составлять набор спецификаций будущего языка; но это все только на бумаге, и даже то, что на бумаге, очень неполно, многие важные вопросы до сих пор не решены, итд. А какой-либо реальной попытки что-то начать писать, собственно, не было. Немалый прогресс, правда, был достигнут в работе над попугаем, он же новая виртуальная машина, в которой по замыслу должен будет бежать Perl 6. Но это совсем отдельное; и, более того, виртуальная машина эта теперь уже претендует на то, чтобы с ней хорошо работал не только будущий Перл, но и Питон (Python), и другие языки.

Год назад, однако, очень талантливый хакер из Тайваня по имени Аутриджус Танг начал работать, поначалу практически в одиночку, над имплементацией Perl 6, используя для этого язык Хаскель (Haskell), очень мощный и интересный, но почти неизвестный за пределами университетских компьютерных факультетов язык. У него это получалось так феноменально быстро и успешно, что за прошедший год он и примкнувшие к нему добровольцы воплотили значительную часть языка, все основные возможности, большую часть стандартных библиотек, а также огромный набор разного рода тестов, вместе проверяющих правильную работу почти всего, что на данный момент известно о языке. Положение шестого перла из очень неопределённого превратилось в весьма многообещающее благодаря главным образом энтузиазму и потрясающей работоспособности и таланту одного человека, Танга, начавшего и возглавившго этот новый проект. Проект этот называется Pugs, и именно работе над ним был посвящен прошедший hackathon, по времени приуроченный к израильской оупен-сорс конференции OSDC, которая начинается сегодня. Кроме израильских любителей перла, в этом безобразии участвовал сам Ларри Уолл, а также Танг, который, довольно неожиданно для многих, несколько месяцев назад решил стать которой, т.е. сменить пол, и теперь её зовут Одри Танг (Audrey Tang); Одри объясняет причины своего решения в своем блоге, озаглавив запись, в типично хакерском стиле, "runtime typecasting".

Вообще там было очень здорово. К сожалению, я немного занимался собственно кодом, а в основном учил Хаскель и монады (я планировал их уже знать в нужном объеме к хакатону, но ничего не вышло); тем не менее, это было очень полезным занятием, хоть и на будущее; и несколько мелких вещичек я все-таки сделал, и во всяких дискуссиях свои пять копеек вставил. Ещё я читал там Джейн Остен, играл в настольный теннис и всех обыграл (ах, как я соскучился по нему - понял, только когда взял ракетку в руки), гулял, болтал-общался и вообще душа отдыхала. Было прекрасно.

Одно из наиболее интересных впечатлений - общение с Одри, особенно когда она что-то объясняет. Во-первых, вообще очень подстегивает общение с человеком, который думает быстрее тебя. Я соображаю довольно быстро, и мне чаще приходится объяснять отстающим, чем самому отставать. Это сразу злит в хорошем смысле слова, подстёгивает, заставляет собраться и сосредоточиться. Во-вторых, меня совершенно поразила степень соединения мыслей с пальцами и клавиатурой, которой она достигла. Дело не в том, что она очень быстро набирает, хотя это верно; быстрый набор - механическое умение, которому можно научиться тренировками (я, кстати, набираю довольно быстро, и практически вслепую, но не "правильно" вслепую, не по правильному методу, держа соответствующим образом пальцы итд.; а просто как-то само так сложилось, в основном первыми тремя пальцами каждой руки). Дело в том, что очень высокая скорость сохраняется у неё и тогда, когда не набирается какой-то текст, а, скажем, редактируется существующий, т.е. текст вперемешку с командами редактора или движением курсора - нажатиями на клавиши, требующими мгновенного контроля. Например: она объясняет что-то и одновременно пишет кусок кода на лаптопе, очень быстро; это ещё нормально. Но тут она говорит что-то вроде: а вот если бы не так, а вот так, и в то самое время, как она это произносит, ее пальцы параллельно бегают по уже написанному и правильно его меняют в нужных местах, совершенно синхронизированно и с той же скоростью. Причем это не заготовленное в мыслях заранее - если я что-то спрашиваю, следует мгновенный ответ с сопровождением руками с такой же скоростью. И так все время; может, это не звучит как что-то необыкновенное, а вы попробуйте-ка! Производит неизгладимое впечатление; как будто действительно человек сросся с компьютером в каком-то смысле. Я так совершенно точно не могу и не мог бы, даже если бы набирал "правильно" вслепую быстрее, чем набираю, как умею; дело именно не в механических навыках, точнее, далеко не только в них.

С Ларри я общался меньше, но он и вообще держался несколько в стороне; его роль была - "гуру" в вопросах языка и стандарта, в тех случаях, когда у нас возникают вопросы во время работы. Сам он код не писал, а в основном сидел за своим ноутбуком и читал какие-то тексты на японском языке.

Разъехались мы вчера вечером, а сегодня начинается эта трехдневная конференция, но там меня уже не будет. Работы много, да и вообще это меня меньше интересует, мне хотелось именно hackathon попробовать, и я остался очень доволен. Буду ли активно участвовать в работе над Perl 6 - не знаю; очень зависит от свободного времени и других таких вещей. Но неплохо бы; интересное дело и хорошие люди.

интересно ...

Date: 2006-02-26 08:13 am (UTC)
From: [identity profile] krocodl.livejournal.com
будут рад услышать еще впечатления в данной области ...

Date: 2006-02-26 08:57 am (UTC)
From: [identity profile] cema.livejournal.com
Она, совершенно очевидно, очень интересный человек. (Вы тоже, впрочем, но это так, в сторону.)

Хорошо было бы, если бы кто-нибудь из своих, не журналист, описал вот всех этих разных интересных людей. Можно и в ЖЖ. :-)

Date: 2006-02-26 10:19 am (UTC)
From: [identity profile] dimrub.livejournal.com
Очень интересно, если еще будут впечатления и воспоминания - пиши!

Date: 2006-02-26 10:22 am (UTC)
From: [identity profile] china-cat.livejournal.com
Танг в русской транскрипции = Тан.

Date: 2006-02-26 08:56 pm (UTC)
From: [identity profile] quappa.livejournal.com
С Таном понятно, тем более, что он(а) сама писала, что это именно та фамилия, которая династия императоров. А как бы прочесть тайванькое народное имя Autrijus, подскажите? :)

Date: 2006-02-27 08:03 am (UTC)
From: [identity profile] china-cat.livejournal.com
если бы оно было китайским - я бы прочла, но это какое-то совершенно неизвестное мне имя, и тут я, увы, ничего не могу сказать. У современных китайцев существует система - пользоваться для общения с иностранцами именами западного происхождения, очень часто это те имена, которыми их наделил учитель английского в школе (там это делается для некоторого психологического вовлечения в образ говорящего на английском, а иногда, при наличии преподавателя-иностранца облегчает ему жизнь), кстати, изучающие русский, пользуются русскими именами, французский - галльскими и там далее, но английский сейчас в школах повсеместен. Потом этими именами пользуются в чатах и на визитных карточках, хотя, бывает, меняют имена. Имена вообще в Китае традиционно не навсегда :)

А фамилия Тан - она и есть фамилия Тан (хоть императорская хоть крестьянская), другой фамилии с этим чтением у китайцев нет.

Извините за то, что отвлеклась от темы вопроса.

Date: 2006-02-27 08:20 am (UTC)
From: [identity profile] avva.livejournal.com
А вы не могли бы сказать, как произносятся ее старое мужское и новое женское китайские имена?

Было 唐宗漢 , а стало 唐鳳.

Date: 2006-02-27 08:40 am (UTC)
From: [identity profile] china-cat.livejournal.com
Было Тан Цзунхань
а стало Тан Фэн

очень интересно получилось, если предпроложить, что имя каким-то образом определяет судьбу, то мужское можно перевести как "герой (мужчина, китаец) следующий традиции (в религиозном смысле слова "традиция"), а новое - "феникс" (в китайском феникс - символ активного, царственного женского начала, а в западной традиции - птица, возрождающаяся (перерождающаяся) из пепла).
Спасибо за вопрос - я вообще активно интересуюсь китайскими именами и собираю интересные примеры символизма в именах.

Date: 2006-02-27 08:44 am (UTC)
From: [identity profile] avva.livejournal.com
И вам спасибо!

Date: 2006-02-27 08:50 am (UTC)

Date: 2006-02-26 11:53 am (UTC)
From: [identity profile] ahaxopet.livejournal.com
А для Perl 6 будет формально определенная грамматика? Я порылся в спецификациях (http://dev.perl.org/perl6/doc/synopsis.html), но ничего не нашел.

Date: 2006-02-26 02:57 pm (UTC)
From: [identity profile] avva.livejournal.com
Зависит от того, что понимать под формально, но да, будет, и даже будет частью самого Perl 6; т.е. программист сможет (если ему это вдруг нужно) парсить код на перле внутри перла и получать синтаксическое дерево.

Date: 2006-02-26 03:22 pm (UTC)
From: [identity profile] ahaxopet.livejournal.com
Зависит от того, что понимать под формально


Ну, например, набор BNF правил.

А где-нибудь на эту грмтк посмотреть можно? Или пока это только для избранных? :)

Date: 2006-02-26 07:12 pm (UTC)
From: [identity profile] avva.livejournal.com
Если понимаете Хаскель, можно просто читать src/Pugs/Parser.hs, она там по сути дела выписана :)
А так - не очень, нужно в голове самому склеивать, читая synopses, ничего даже близкого к формальному, кроме исходного кода, нет пока.

Date: 2006-02-27 05:38 am (UTC)
From: [identity profile] gaal.livejournal.com
Actually, there is work under way to get Perl 6's Rules (as Regexps are now known) to express Perl 6's grammar. Rules are not BNF, but if arranged in a grammar (like you arrange methods in a class), they can be similar.

Date: 2006-02-26 08:59 pm (UTC)
From: [identity profile] quappa.livejournal.com
Формальной грамматики, насколько я понимаю, не будет. Так как она а) рантаймно-модифицируемая, б) даже дефолтный вариант чересчур сложен. "Only perl can parse Perl" (c)

Date: 2006-02-26 09:04 pm (UTC)
From: [identity profile] ahaxopet.livejournal.com
Жаль.. Значит, в этом месте никакого прогресса по сравнению с Perl 5.

Вот только про a) я не понял.. обычно компилятор заканчивает работать еще до того, как запускается скомпилированная им программа. Может быть, compile-time модифицируемая?

Date: 2006-02-26 09:18 pm (UTC)
From: [identity profile] quappa.livejournal.com
Собственно и в пятом границы между фазами были довольно размыты, не так ли? Как и в любом другом языке, где есть eval. Compile-time модифицируемая грамматика была уже в пятом -- source filters. Подробно рассказать, что будет дальше, не смогу :) Не настолько в теме, честно. Извините.
(deleted comment)

Date: 2006-12-13 01:37 pm (UTC)
From: [identity profile] sorhed.livejournal.com
IDE для перла не на уровне идеи. Перл не описывается никакой формальной грамматикой, и это не бага, это фича. :) Перл больше похож на естественный язык, чем на язык программирования.

Date: 2006-02-26 02:03 pm (UTC)
From: [identity profile] emdin.livejournal.com
клёво. завидую.

Date: 2006-02-26 08:24 pm (UTC)
From: [identity profile] solomon2.livejournal.com
>сидел за своим ноутбуком и читал какие-то тексты на японском языке.<

Наверное, у него неправильная кодировка была выставлена, а спросить как исправить гордость не позволяла :-)

Date: 2006-02-26 08:50 pm (UTC)
From: [identity profile] quappa.livejournal.com
Кайф какой!

О чём общались с Одри, если не секрет?

А вообще вся эта история выглядела бредом, пока читалась в очень далёких блогах на всяких басурманских языках. Аутриус всегда был себе на уме, и после записи о тайпкастинге я подумал, что это какая-то хитрость или розыгрыш. И вот теперь как-то уже начинает вериться :)

Date: 2006-03-04 02:32 pm (UTC)
From: [identity profile] avva.livejournal.com
Одри в основном объясняла мне Continuation Monad and Writer Monad, но кроме того еще говорили о разных аспектах pugs'а, работали над рефакторингом Parser.hs, и другие такие вещи. Я в основном учил Хаскель, а не писал код, поэтому общался с ней меньше, чем другие, и чем хотелось :)

История, как было совершенно очевидно, никакой не розыгрыш и не хитрость :) придется поверить.

Date: 2006-02-27 11:57 am (UTC)
From: [identity profile] wildernesscat.livejournal.com
... несколько месяцев назад решил стать которой, т.е. сменить пол ...

That's one way of getting good girl programmers! ;-)

Date: 2006-03-04 02:29 pm (UTC)

Date: 2007-05-11 03:05 pm (UTC)
From: [identity profile] http://users.livejournal.com/_nik_/
А это откуда цитата? Гугл оригинала найти не смог :o\

Date: 2007-05-11 04:08 pm (UTC)
From: [identity profile] wildernesscat.livejournal.com
Это, по легенде, приписывается [livejournal.com profile] wildernesscatу :P

Date: 2011-12-27 09:23 am (UTC)
From: [identity profile] ol (from livejournal.com)
А какой редактор Одри использовала?

December 2025

S M T W T F S
  123 4 56
78 9 10 11 1213
1415 1617181920
21 22 23 24 2526 27
28293031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Dec. 29th, 2025 08:42 am
Powered by Dreamwidth Studios