Anatoly Vorobey (avva) wrote,
Anatoly Vorobey
avva

Category:

дневник

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


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

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

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

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

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

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

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 28 comments