Re[9]: [haskell] considered mainstream
От: thesz Россия http://thesz.livejournal.com
Дата: 06.03.09 10:50
Оценка:
BZ>>Евгений Кирпичёв работает в яндексе афаик
N>Вопрос не в том где кто работает (SPJ, например, работает в MS), а готов ли ты вложить значительные ресурсы в разработку на Хаскеле? Посмотри на риски...
N>Как быть с тем, что тебя с Зефировым мне не нанять, а если и нанять, то предметную область вы не знаете? Как быть с тем, что моей команде надо мозги кипятить полгода миниум, что бы просто овладеть всеми этими deforestation и zipper? А предметная область не компилятор, где есть хоть какой-то опыт, а числодробилка, где все существующие алгоритмы мутабельные?

А чего ты здесь не спрашиваешь?

Узнать, как быть в какой-то ситуации, можно двумя способами: 1) попасть в неё самому, и 2) спросить у попадавших в неё.

"Попасть в ситуацию самому" ты не хочешь. Для этого надо начать использовать Хаскель.

Но ты, также, и не спрашиваешь, как бы с этим поступили бы опытные в Хаскеле/ФЯ люди.

Из чего следует неопровержимый вывод, что использовать Хаскель (ФЯ вообще) ты не хочешь.

(мутабельные числодробилки после переноса на ФЯ приобретают интересные возможности, кстати)
Yours truly, Serguey Zefirov (thesz NA mail TOCHKA ru)
Re[8]: [haskell] considered mainstream
От: thesz Россия http://thesz.livejournal.com
Дата: 06.03.09 10:50
Оценка:
N>>>Где они? Был Darcs, но git и Mercurial, начавшие гораздо позже, просто убивают его функционалом и скоростью.
T>>darcs2 и сейчас есть. "Просто убивают" это преувеличение, я думаю.
C>Нет.

Разворачивай.
Yours truly, Serguey Zefirov (thesz NA mail TOCHKA ru)
Re[9]: [haskell] considered mainstream
От: Cyberax Марс  
Дата: 06.03.09 11:02
Оценка:
Здравствуйте, thesz, Вы писали:

N>>>>Где они? Был Darcs, но git и Mercurial, начавшие гораздо позже, просто убивают его функционалом и скоростью.

T>>>darcs2 и сейчас есть. "Просто убивают" это преувеличение, я думаю.
C>>Нет.
T>Разворачивай.
Чего разворачивать? Я darcs2 пробовал где-то год назад, когда интерсовался Хаскеллом. Он работает на порядки медленнее git'а (впрочем, почти всё работает медленнее git'а).
Sapienti sat!
Re[8]: [haskell] considered mainstream
От: thesz Россия http://thesz.livejournal.com
Дата: 06.03.09 11:14
Оценка:
T>>Эту фразу я вижу чаще всего.
T>>Крупный бизнес состоит из кучи маленьких — подразделения, отделы и тп. Поэтому ты работаешь, на самом деле, в гаражном стартапе.
RD>Я думаю, novitk имеет в виду _нормальную_ компанию, где желают получить прибыль и не в отдаленном будущем.

Some might say that some of what they do is a waste, but there aren't many companies that are able to do such large scale R&amp;D."<br />
<br />
Steve Ballmer, Feb 2009: Microsoft asked some of its employees to read various company annual reports from 1927 through 1938. The goal, he said, was to find out who had done a good job handling the Great Depression," Lane reports. "'RCA, god rest them in peace, RCA become our role model,' Ballmer said. 'They actually kept investing in R&amp;D through the Depression period, and in the post-Depression they dominated TV technology because they were really the only guys who had invested.


Fuck near-term profits.

RD>А если каждый отдел это гаражный стартап то и вся организация — большой гаражный стартап без определенного будущего, рвущийся во все стороны и топчущийся при этом на месте.


Отделы, обычно, независимы, иначе с ними не управится. Два зависимых отдела — это один большой отдел, а управлять без иерархии толпой более пяти человек невозможно.

T>>Ленивость стимулирует модульность (famous 'map f . map g === map (f . g)' example).

RD>Ага, и взрывает потребление памяти там, где этого не ждешь. В проекте <1K lines может быть это и не проблема.

Все мои проекты >2K.

В переводе на C++ это в районе 6-20 KLOC. Бери 13KLOC, не ошибёшься.

RD>А если <1M lines? Не согласны? Приведите успешный контр-пример.


Побью на проекты <1K и успешно всё решу.

Как, собственно, и делают в Эрланге.

T>>Отсутствие отладчика стимулирует написание программ, о которых легко рассуждать и не нужно отлаживать.

RD>Ага.. Тогда ASM-наше все. Отсутствие абстракций заставляет ну просто адски задуматься а потом реализовать эти абстракции вручную, да еще и с дикой оптимизацией.
RD>А еще, отсутствие приличного IDE заставляет 100 раз подумать, прежде чем написать хоть строчку кода. Вплоть до того, что строчка эта потом пишется на Scala или F#.

(если честно, то от настолько детского аргумента я, было, решил нарушить своё вето на хамство и просто написать, что ты идиот. но я этого не написал, прошу высокое жюри учесть сей факт.)

Программы (серверные, клиентские) могут быть запущены под отладчиком только в разработке.

Отлаживать программу у клиента нет никакой возможности.

Поэтому либо ты пишешь программу с учётом этого — модульно и прозрачно, чтобы было видно, где ошибка, чтобы не было eeek ошибок — либо надо менять профессию.

А Хаскель даёт тебе возможности так писать. Referential transparency у него в основе дизайна. Система типов ловит очень много.

В отличии от Asm.
Yours truly, Serguey Zefirov (thesz NA mail TOCHKA ru)
Re[8]: [haskell] considered mainstream
От: thesz Россия http://thesz.livejournal.com
Дата: 06.03.09 11:24
Оценка:
T>>Ленивость стимулирует модульность (famous 'map f . map g === map (f . g)' example).
E>А можно развернуть для чайников, о какой модульности здесь идет речь?

Отдельно написал генератор, отдельно написал обработчик. В промежутке поставил фильтры.

Всё работает так, как будто написано в одном модуле.

Особенно удобно писать переборные алгоритмы, например, Equality Saturation, про который было в моём блоге позавчера.

T>>Отсутствие отладчика стимулирует написание программ, о которых легко рассуждать и не нужно отлаживать.

E>Прошу прощения за грубость, но это достойно войти в аналы вместе с вот этой
Автор: eao197
Дата: 18.09.06
. Поскольку эта фраза об ненаписанных программах.


Я пишу программы, не пользуясь отладчиком. Это написанные программы, полезные не только мне.

Отладчиком сейчас приходится пользоваться для разбирательств с кодом на Java. Блин. Ощущения — не передать словами.

Да когда на железке гоняешь свой код, тоже особо отладчиком не попользуешься. Встроенных железок на порядки больше, чем обычных.

E>Вот Дональд Кнут, к примеру, считает отладчик очень важным инструментом программиста.


А ещё он пишет на Intercal.

Я на зависимые типы-то смотрю из-за отвращения к отладке.

Я лучше побольше с компьютером поговорю о своей программе, чем буду долго расспрашивать программу о самой себе.
Yours truly, Serguey Zefirov (thesz NA mail TOCHKA ru)
Re[10]: [haskell] considered mainstream
От: thesz Россия http://thesz.livejournal.com
Дата: 06.03.09 11:26
Оценка:
N>>>>>Где они? Был Darcs, но git и Mercurial, начавшие гораздо позже, просто убивают его функционалом и скоростью.
T>>>>darcs2 и сейчас есть. "Просто убивают" это преувеличение, я думаю.
C>>>Нет.
T>>Разворачивай.
C>Чего разворачивать? Я darcs2 пробовал где-то год назад, когда интерсовался Хаскеллом. Он работает на порядки медленнее git'а (впрочем, почти всё работает медленнее git'а).

Со скоростью разобрались.

Оказалось, что "darcs практически убивает по скорости" только git.

С функционалом?
Yours truly, Serguey Zefirov (thesz NA mail TOCHKA ru)
Re[9]: [haskell] considered mainstream
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 06.03.09 12:15
Оценка: +1
Здравствуйте, thesz, Вы писали:

T>>>Ленивость стимулирует модульность (famous 'map f . map g === map (f . g)' example).

E>>А можно развернуть для чайников, о какой модульности здесь идет речь?

T>Отдельно написал генератор, отдельно написал обработчик. В промежутке поставил фильтры.


T>Всё работает так, как будто написано в одном модуле.


Имхо, это достаточно специфическое отношение к модульности...

T>Особенно удобно писать переборные алгоритмы, например, Equality Saturation, про который было в моём блоге позавчера.


...да еще и применительно к решению специфических задач.

T>Я пишу программы, не пользуясь отладчиком. Это написанные программы, полезные не только мне.


Когда весь мейнстрим будет состоять из людей типа thesz, тогда можно будет рассматривать отладчики, как ухудшающий качество программ атавизм...

T>Да когда на железке гоняешь свой код, тоже особо отладчиком не попользуешься. Встроенных железок на порядки больше, чем обычных.


...но поскольку людей, программирующих на обычных железяках, а не на встроенных, на порядки больше, то наличие качественных отладчиков для _очень_ многих разработчиков является чуть ли не самым серьезным помошником в получении работающих программ. И пока инструменты не будут расчитаны именно на таких разработчиков, попасть в мейнстрим им не светит.


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[11]: [haskell] considered mainstream
От: Cyberax Марс  
Дата: 06.03.09 12:17
Оценка:
Здравствуйте, thesz, Вы писали:

C>>Чего разворачивать? Я darcs2 пробовал где-то год назад, когда интерсовался Хаскеллом. Он работает на порядки медленнее git'а (впрочем, почти всё работает медленнее git'а).

T>Со скоростью разобрались.
T>Оказалось, что "darcs практически убивает по скорости" только git.
Mercurial тоже.

T>С функционалом?

У darcs — средненький функционал для современных dvcs.
Sapienti sat!
Re[12]: [haskell] considered mainstream
От: thesz Россия http://thesz.livejournal.com
Дата: 06.03.09 12:41
Оценка:
C>>>Чего разворачивать? Я darcs2 пробовал где-то год назад, когда интерсовался Хаскеллом. Он работает на порядки медленнее git'а (впрочем, почти всё работает медленнее git'а).
T>>Со скоростью разобрались.
T>>Оказалось, что "darcs практически убивает по скорости" только git.
C>Mercurial тоже.

Это такое абсолютное утверждение? [url=http://allmydata.org/pipermail/tahoe-dev/2007-November/000228.html]Исключений[/url быть не может?

T>>С функционалом?

C>У darcs — средненький функционал для современных dvcs.

Существуют и другие мнения.

Поэтому — р-разворачивай.
Yours truly, Serguey Zefirov (thesz NA mail TOCHKA ru)
Re[10]: [haskell] considered mainstream
От: thesz Россия http://thesz.livejournal.com
Дата: 06.03.09 12:58
Оценка:
T>>>>Ленивость стимулирует модульность (famous 'map f . map g === map (f . g)' example).
E>>>А можно развернуть для чайников, о какой модульности здесь идет речь?
T>>Отдельно написал генератор, отдельно написал обработчик. В промежутке поставил фильтры.
T>>Всё работает так, как будто написано в одном модуле.
E>Имхо, это достаточно специфическое отношение к модульности...

Это наивысшее проявление модульности на данный момент — не заботиться ни о каких мелких деталях реализации соседей.

T>>Особенно удобно писать переборные алгоритмы, например, Equality Saturation, про который было в моём блоге позавчера.

E>...да еще и применительно к решению специфических задач.

Структурируй решения любых задач определённым образом, вот и будут получатся такие полезные вещи.

Это требует тренировки.

T>>Я пишу программы, не пользуясь отладчиком. Это написанные программы, полезные не только мне.

E>Когда весь мейнстрим будет состоять из людей типа thesz, тогда можно будет рассматривать отладчики, как ухудшающий качество программ атавизм...

К чему я и стремлюсь.

Если от отладчика будет отказываться по одному человеку в месяц и каждый из них будет убеждать в этом по одному человеку в месяц... то, получается, за год от отладчика откажется (2^12)-1=4095 человек.

За 27 месяцев мы доберёмся и до индусов.

И это если начинать только с одного меня. Но нас, программистов-без-отладчика, больше, чем 1
Автор: thesz
Дата: 06.03.09
уже сейчас.

T>>Да когда на железке гоняешь свой код, тоже особо отладчиком не попользуешься. Встроенных железок на порядки больше, чем обычных.

E>...но поскольку людей, программирующих на обычных железяках, а не на встроенных, на порядки больше, то наличие качественных отладчиков для _очень_ многих разработчиков является чуть ли не самым серьезным помошником в получении работающих программ. И пока инструменты не будут расчитаны именно на таких разработчиков, попасть в мейнстрим им не светит.

"Неприятность эту мы переживём."

Кстати, отладчик в ghc есть.

Это всё неграмотность novik.

Однако, поднятая тема очень важна. Наличие отладчика [b]когда-то[/url] было важным для среды программирования. Его использовали самые продвинутые пользователи.

Сейчас продвинутые пользователи отказываются от отладчика. На все DS(E)L отладчики не напишешь.

Я думаю, отсутствие отладчика не критерий для умного программиста. А потом перестанет быть критерием и для остальных.

Посмотрим, насколько я окажусь прав.
Yours truly, Serguey Zefirov (thesz NA mail TOCHKA ru)
Re[8]: [haskell] considered mainstream
От: VoidEx  
Дата: 06.03.09 13:18
Оценка: :))) :)))
Здравствуйте, eao197, Вы писали:

E>Прошу прощения за грубость, но это достойно войти в аналы вместе с вот этой
Автор: eao197
Дата: 18.09.06
. Поскольку эта фраза об ненаписанных программах.


Это какой-то новый сленг РСДН что ли? Ну третий раз молча вынести "аналы" я уже не могу. Анналы же, ёлки-палки!

Извините за оффтоп
Re[9]: [haskell] considered mainstream
От: Rtveliashvili Denys Великобритания  
Дата: 06.03.09 13:27
Оценка:
T>Все мои проекты >2K.
T>В переводе на C++ это в районе 6-20 KLOC. Бери 13KLOC, не ошибёшься.

RD>>А если <1M lines? Не согласны? Приведите успешный контр-пример.


T>Побью на проекты <1K и успешно всё решу.


А все же, вы хотя бы когда-нибудь работали в команде, где объем кода будет ~1M lines C/C++/Java/что-то подобное или ~100K lines кода на Хаскеле? Причем своего кода, сторонние библиотеки не в счет?
Вообще-то ваша беспочвенная самоуверенность рискует стать легендой.

T>Как, собственно, и делают в Эрланге.


Крупные проекты делят на проекты поменьше не только в Эрланге да Хаскеле. Это вообще-то стандартная практика. Но далеко не все так легко делится. И даже после деления остаются зависимости.

T>>>Отсутствие отладчика стимулирует написание программ, о которых легко рассуждать и не нужно отлаживать.

RD>>Ага.. Тогда ASM-наше все. Отсутствие абстракций заставляет ну просто адски задуматься а потом реализовать эти абстракции вручную, да еще и с дикой оптимизацией.
RD>>А еще, отсутствие приличного IDE заставляет 100 раз подумать, прежде чем написать хоть строчку кода. Вплоть до того, что строчка эта потом пишется на Scala или F#.

T>(если честно, то от настолько детского аргумента я, было, решил нарушить своё вето на хамство и просто написать, что ты идиот. но я этого не написал, прошу высокое жюри учесть сей факт.)

T>Программы (серверные, клиентские) могут быть запущены под отладчиком только в разработке.
T>Отлаживать программу у клиента нет никакой возможности.
T>Поэтому либо ты пишешь программу с учётом этого — модульно и прозрачно, чтобы было видно, где ошибка, чтобы не было eeek ошибок — либо надо менять профессию.
T>А Хаскель даёт тебе возможности так писать. Referential transparency у него в основе дизайна. Система типов ловит очень много.
T>В отличии от Asm.

Думаете, что откровение изложили для меня?
То, что на дебаггере далеко не выедешь я знал еще лет в 10. И про referential transparency Вы тоже не открыли мне тайны.

Про пример с LSE: может забацаете в своем маленьком гаражном стартапе exchange, что будет лучше того что у них? На Хаскелле, конечно. Тогда можно будет и обсудить, насколько более удачным вышло Ваше решение и почему именно на крутейшем Хаскелле писать софт лучше всего.

Если честно, то я тоже сдержался и не нахамил после вашей заяки про debuggerы.
Повторяю еще раз: отсутствие возможности не может являться преимуществом. Особенно, если это преимущество не может помешать.
Если Вам это не очевидно, то что ж... Не расстраивайтесь, быть может Вы — Гений. Надеюсь, высокое жюри учтет и сей факт.
Re[10]: [haskell] considered mainstream
От: VoidEx  
Дата: 06.03.09 13:51
Оценка: +1
Здравствуйте, Rtveliashvili Denys, Вы писали:

RD>Повторяю еще раз: отсутствие возможности не может являться преимуществом. Особенно, если это преимущество не может помешать.

RD>Если Вам это не очевидно, то что ж... Не расстраивайтесь, быть может Вы — Гений. Надеюсь, высокое жюри учтет и сей факт.

Ох как кстати!
Заранее уточню, что я не придерживаюсь ни одной из сторон.

А теперь прошу уточнить:
1. Почему отсутствие возможности — не может являться преимуществом
2. Почему наличие дебаггера не может помешать (не пользоваться — это не вариант, так как рассматривается сферический программист в вакууме, который пользуется)
3. Докажите очевидность.

Очень люблю слова "очевидно", они обычно скрывают то, что _кажется_ очевидным автору.
Re[9]: [haskell] considered mainstream
От: z00n  
Дата: 06.03.09 13:52
Оценка:
Здравствуйте, VoidEx, Вы писали:

VE>Это какой-то новый сленг РСДН что ли? Ну третий раз молча вынести "аналы" я уже не могу. Анналы же, ёлки-палки!

Аналы истории
Re[11]: [haskell] considered mainstream
От: VoidEx  
Дата: 06.03.09 13:54
Оценка:
Здравствуйте, VoidEx, Вы писали:

И да, я придираюсь к общей формулировке, так что меня больше интересуют пункты 1 и 3.
Закономерен ли такой аргумент вообще.
Re[12]: [haskell] considered mainstream
От: Mr.Cat  
Дата: 06.03.09 13:56
Оценка:
Здравствуйте, Cyberax, Вы писали:
C>У darcs — средненький функционал для современных dvcs.

А как в этом обсуждении вообще darcs выплыл? Мне всегда казалось, что его основной поинт в алгебре патчей, а не в суперфункциональности и даже не в том, что он написан на хаскеле.
Re[11]: [haskell] considered mainstream
От: Rtveliashvili Denys Великобритания  
Дата: 06.03.09 13:58
Оценка:
VE>Ох как кстати!
VE>Заранее уточню, что я не придерживаюсь ни одной из сторон.

VE>А теперь прошу уточнить:

VE>1. Почему отсутствие возможности — не может являться преимуществом
VE>2. Почему наличие дебаггера не может помешать (не пользоваться — это не вариант, так как рассматривается сферический программист в вакууме, который пользуется)
VE>3. Докажите очевидность.

VE>Очень люблю слова "очевидно", они обычно скрывают то, что _кажется_ очевидным автору.


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

Если же у Вас нормальные люди (а я наивно предполагал, что FP в основном пользуются именно такие), то они будут писать нормальный софт и дебаггер им не понадобится. Поэтому дебаггер (как и любая другая не критичная фича) не является в нормальной ситуации вредной.

Но поскольку в отличии от некоторых я не страдаю красноглазием, то могу предположить, что в каких-то экзотических условиях дебаггер может оказаться полезен даже в Хаскелле. Лично я, конечно, с такими случаями не сталкивался (и дай Бог, чтоб не столкнулся).
Re[10]: [haskell] considered mainstream
От: thesz Россия http://thesz.livejournal.com
Дата: 06.03.09 14:02
Оценка:
RD>>>А если <1M lines? Не согласны? Приведите успешный контр-пример.
T>>Побью на проекты <1K и успешно всё решу.
RD>А все же, вы хотя бы когда-нибудь работали в команде, где объем кода будет ~1M lines C/C++/Java/что-то подобное или ~100K lines кода на Хаскеле? Причем своего кода, сторонние библиотеки не в счет?

Да, работал.

RD>Вообще-то ваша беспочвенная самоуверенность рискует стать легендой.


Моя уверенность имеет под собой основания.

T>>Как, собственно, и делают в Эрланге.

RD>Крупные проекты делят на проекты поменьше не только в Эрланге да Хаскеле. Это вообще-то стандартная практика. Но далеко не все так легко делится. И даже после деления остаются зависимости.

Ты не путай зависимости, возникающие на Java и зависимости, возникающие на ФЯ.

T>>А Хаскель даёт тебе возможности так писать. Referential transparency у него в основе дизайна. Система типов ловит очень много.

T>>В отличии от Asm.
RD>Думаете, что откровение изложили для меня?
RD>То, что на дебаггере далеко не выедешь я знал еще лет в 10. И про referential transparency Вы тоже не открыли мне тайны.

Тогда в чём проблема?

RD>Про пример с LSE: может забацаете в своем маленьком гаражном стартапе exchange, что будет лучше того что у них? На Хаскелле, конечно. Тогда можно будет и обсудить, насколько более удачным вышло Ваше решение и почему именно на крутейшем Хаскелле писать софт лучше всего.


Ты, по-моему, не смог соотнести eeek в ссылке и eeek в тексте по ссылке.

Ничего про exchange я не говорил и писать его не собираюсь (пока не собираюсь).

RD>Если честно, то я тоже сдержался и не нахамил после вашей заяки про debuggerы.


Высокое жюри не сможет учесть этот факт. Он не был запротоколирован, в отличии от моего.

RD>Повторяю еще раз: отсутствие возможности не может являться преимуществом. Особенно, если это преимущество не может помешать.

RD>Если Вам это не очевидно, то что ж... Не расстраивайтесь, быть может Вы — Гений. Надеюсь, высокое жюри учтет и сей факт.

Спасибо.
Yours truly, Serguey Zefirov (thesz NA mail TOCHKA ru)
Re[13]: [haskell] considered mainstream
От: thesz Россия http://thesz.livejournal.com
Дата: 06.03.09 14:05
Оценка:
MC>Здравствуйте, Cyberax, Вы писали:
C>>У darcs — средненький функционал для современных dvcs.
MC>А как в этом обсуждении вообще darcs выплыл? Мне всегда казалось, что его основной поинт в алгебре патчей, а не в суперфункциональности и даже не в том, что он написан на хаскеле.

Алгебра патчей даёт ему функциональность, которой нет у hg/git.

Она называется cherry picking.

(бляха муха! раскрыл козырь
Yours truly, Serguey Zefirov (thesz NA mail TOCHKA ru)
Re[11]: [haskell] considered mainstream
От: Mr.Cat  
Дата: 06.03.09 14:08
Оценка:
Здравствуйте, thesz, Вы писали:
T>Однако, поднятая тема очень важна. Наличие отладчика [b]когда-то[/url] было важным для среды программирования. Его использовали самые продвинутые пользователи.
T>Сейчас продвинутые пользователи отказываются от отладчика. На все DS(E)L отладчики не напишешь.
T>Я думаю, отсутствие отладчика не критерий для умного программиста. А потом перестанет быть критерием и для остальных.

Отладка отладке (и отладчик отладчику) рознь. Я вот вполне обхожусь без брейкпоинтов и прохода по шагам в haskell и scheme. Но для той же scheme без возможности поглядеть результат развертки макроса бывает туго. Так что инструментарий должен быть адекватен языку.

Кстати, а с чего вообще было решено, что для haskell нет средств отладки? Определенное количество тулзеней отчетливо гуглится (например, hood).
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.