dastapov: (Default)
Dmitry Astapov ([personal profile] dastapov) wrote2012-07-10 10:32 pm
Entry tags:

В Смольном был, Ленина видел

Работа моя нынешняя пригласила Саймона Пейтона-Джонса (того самого) прийти и рассказать нам что-то интересное.

Он согласился и пришел, рассказывал вариации на тему побега из башни из слоновой кости (кто не видел - пролистайте хоть слайды, они ржачные). Т.к. аудитория наполовину состояла из caml-программистов, позубоскалили на тему eager и lazy evaluation, и т.д. и т.п.

В процессе я узнал, что (извините за пиджин рашн):

* "Avoid success at all cost" означает "avoid success, at all cost", а вовсе не "avoid (success at all cost)", как думают некоторые

* Саймон не любит злоупотребление point-free стилем, т.к. код получается плохочитаемый

* Самой ужасной фичей языка он назвал records и все, что с ними связано. Что с ними делать - пока не ясно, т.к. на любое предложение по их переделке находится 10 контр-предложений (и большинство - по делу), а выбирать меньшее зло не хочется.

* На вопрос "а если бы все начать сначала и можно было легко получить purity без laziness - был бы Haskell ленив?" ответил "раз уж мы фантазируем, то - да, но в данной нам реальности я не вижу способа насадить purity в eager языке и не задолбаться"

* На вопрос о том, не жалеет ли он, что F# Микрософт превратило в продукт, а Haskell - нет, ответил, что вовсе нет, т.к. во-первых, avoid success at all cost, а во-вторых - у Дона Сайма ушло 5 лет и гора усилий, чтобы F# стал реальностью, и он (Саймон) на такие жертвы не готов.

* Сейчас 50% времени сейчас он занимается http://www.computingatschool.org.uk/ - комитетом, который переписывает школьную программу по "информатике" в UK, чтобы школьников учили не MS Office, а чему-то более похожему на CS. Возможно, деток будут учит Scratch.

[identity profile] pradd123.livejournal.com 2012-07-11 10:59 am (UTC)(link)
"avoid success, at all cost"

мне эта интерпретация всегда казалась неправдоподобно бессмысленной. можно поинтересоваться что за ней стоит?

[identity profile] http://users.livejournal.com/_adept_/ 2012-07-11 11:55 am (UTC)(link)
Если иметь достаточно большую базу лояльных пользователей, можно продолжать развивать язык, и не боятся что-то ломать (в хорошем смысле слова - см, напрмер, переделанный тайпчекер в GHC 7.4) в каждой следующей версии.

Когда придет success, будут миллионы нелояльных пользователей, которые будут тормозить прогресс (пассивно или активно - см. пример python 2 vs python 3).

[identity profile] max630.livejournal.com 2012-07-11 06:54 pm (UTC)(link)
А, так вот оно что. Я думал - почему у них такой бардак, а это так и задумано.

[identity profile] faceted-jacinth.livejournal.com 2012-07-17 12:20 pm (UTC)(link)
Ну, относительно Python3, у меня есть сильное ощущение, что это как раз avoid success at all cost in action. Типа они там экспериментируют, и даже что-то ломают иногда, но поскольку его используют только "лояльные" люди, это ок. А баттхёрт по поводу непопулярности исходит от фанбоев, которым забыли сообщить.

Ну или они слишком оторваны от реалий и здравого смысла: чтобы люди начали переходить на Пи3 толпами, нужно чтобы библиотеки начали поддерживать Пи3, а чтобы библиотеки начали поддерживать Пи3 for real, нужна не 2to3.py, a 3to2.py. Типа, очевидно же, что а) будет дико долгий период когда библиотекам придётся саппортить оба, б) тот вариант языка, на котором написана master версия кода (а на все остальные она портируется), является будущим. 2to3.py как бы говорит нам: будущее за 2.х на самом деле, пока что. (я в курсе что есть какая-то неофициальная 3to2, почему она неофициальная?)

[identity profile] ro-che.info (from livejournal.com) 2012-07-14 06:11 pm (UTC)(link)
Надо еще уточнить, что фраза эта полушуточная. Но доля серьезности безусловно есть — то, о чем написал Дима.