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] deni-ok.livejournal.com 2012-07-10 09:46 pm (UTC)(link)
Вот, я всю жизнь говорю, что records - это дрянь, пятнающая прекрасный язык!

[identity profile] andrew korzhuev (from livejournal.com) 2012-07-10 10:06 pm (UTC)(link)
Scratch классный, похож на Google Blocky, недавно по нему был челлендж написать самую короткую программу по прохождению лабиринта.

[identity profile] kurilka.livejournal.com 2012-07-11 04:37 am (UTC)(link)
Скорей блоки на скрэтч похож, всёж скрэтч постарше будет.

[identity profile] bytebuster463.livejournal.com 2012-07-10 10:08 pm (UTC)(link)
А я вот тоже удивляюсь, почему никто до сих пор не сделал hc для CLR.
FAQ на haskell.org читал. :)

(Anonymous) 2012-07-10 10:20 pm (UTC)(link)
» чтобы школьников учили не MS Office, а чему-то более похожему на CS
Эх. Лучше бы их учили устройству процессора, бинарным операциям и основам алгоритмов. А то уже третье поколение подрастает, которое не знает, за какой конец держать отладчик… >.<"

[identity profile] http://users.livejournal.com/_adept_/ 2012-07-10 11:01 pm (UTC)(link)
А программировать эти основы алгоритмов на чем? (речь про детей от 7 лет, если что)

[identity profile] sorhed.livejournal.com 2012-07-11 03:55 am (UTC)(link)
На C для Ардуино, конечно. Ну и сделать для него же какие-нибудь форт и лисп.

[identity profile] migmit.livejournal.com 2012-07-11 09:00 am (UTC)(link)
Это есть. Сейчас в школах как раз учат ксорить дворды. Не знаю, кому это надо, но таки есть.

[identity profile] djuffin.livejournal.com 2012-07-11 03:21 am (UTC)(link)
А куда он к вам приезжал?

[identity profile] nivanych.livejournal.com 2012-07-11 05:23 am (UTC)(link)
> avoid success

Слова "a void" пишутся раздельно!!

[identity profile] -darkus-.livejournal.com 2012-07-11 06:10 am (UTC)(link)
Прикольно.

[identity profile] -darkus-.livejournal.com 2012-07-12 03:30 pm (UTC)(link)
Таки нашёл время полностью посмотреть выступление гуру. Зажигает, да :).

[identity profile] migmit.livejournal.com 2012-07-11 09:03 am (UTC)(link)
> "avoid (success at all cost)"

Даже не знал, что бывает и такая расшифровка.

> не любит злоупотребление point-free стилем

Все не любят, вот только мнения о том, что считать злоупотреблением, у всех разные.

> раз уж мы фантазируем, то - да

"Да" в смысле "таки был бы ленив"?

[identity profile] http://users.livejournal.com/_adept_/ 2012-07-11 09:06 am (UTC)(link)
Злоупотребление было определено как "все, что сложнее простого pipeline из имен функций".

Т.е. как только пошли flip-ы и скобки и partial application of (.) - это уже повод задуматься.

Не, "таки был бы неленив"

[identity profile] migmit.livejournal.com 2012-07-11 09:58 am (UTC)(link)
> Не, "таки был бы неленив"

Вот тут я с ним очень несогласен.

[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)
Надо еще уточнить, что фраза эта полушуточная. Но доля серьезности безусловно есть — то, о чем написал Дима.