tag:blogger.com,1999:blog-29561155.post392209998049350768..comments2022-03-27T13:12:25.926+03:00Comments on Веб-дневник Владимира Шабанова: Язык имеет значениеVladimir Shabanovhttp://www.blogger.com/profile/14322574042735481057noreply@blogger.comBlogger41125tag:blogger.com,1999:blog-29561155.post-63871336011197600172009-09-12T22:33:08.644+04:002009-09-12T22:33:08.644+04:00Mathematica умеет делать запускаемые файлы, работа...Mathematica умеет делать запускаемые файлы, работающие без среды?<br /><br />Имеется ли там хотя-бы какая-нибудь поддержка многопоточности? Какая система типов? Как много готовых библиотек (не математических)? Какое сообщество? Связь с Си?<br /><br />Чем оно вообще лучше для не расчетных задач, чем тот же Хаскелл?Vladimir Shabanovhttps://www.blogger.com/profile/14322574042735481057noreply@blogger.comtag:blogger.com,1999:blog-29561155.post-40244802873401344582009-09-11T21:48:48.712+04:002009-09-11T21:48:48.712+04:00Есть же очень выразительный высокоуровневый язык с...Есть же очень выразительный высокоуровневый язык с хорошей кривой обучения ему, неплохим оптимизатором, огромным количеством библиотек, примеров и отличной документацией.<br />На котором можно писать и в функциональном стиле и в процедурном.<br />Mathematica.<br /><br />Для dataflow programing есть замечательный LabView.<br /><br />Почему вы зациклились в квардате из c++, хаскеля, ерланга и окамла ?<br />Да, они опенсорсные, это кошерно, согласен. И это всё?Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-29561155.post-87373066334867450382009-04-26T22:15:00.000+04:002009-04-26T22:15:00.000+04:00Спасибо Володя, за пояснение на тему ocaml vs hask...Спасибо Володя, за пояснение на тему ocaml vs haskell.<br />Со многим что приведено было отторжение и у меня по поводу "промахов" в дизайне ocaml.<br /><br /><br />ИгорьAnonymousnoreply@blogger.comtag:blogger.com,1999:blog-29561155.post-42974200540924928382009-02-28T14:43:00.000+03:002009-02-28T14:43:00.000+03:00Прокомментируйте, пожалуйста. Как же это делается ...<I>Прокомментируйте, пожалуйста. Как же это делается в Хаскеле по трушному?</I><BR/><BR/>Не бывает абстрактных тру-способов. Бывают наиболее подходящие для определенной задачи.<BR/><BR/>Практически все варианты там уже перечислены.<BR/><BR/>Самое простое -- сделать Config.hs и забить в него все константы. Обновление конфига -- просто перегрузка модуля в repl или перекомпиляция.<BR/><BR/>Можно сделать тупой шаблон "$COMPANY_NAME" и потом его заменять.<BR/><BR/>Есть unsafePerformIO, если все-таки хочется читать из внешнего файла. Но так получится считать один раз. Обновить будет сложнее.<BR/><BR/>Можно протащить параметр.<BR/><BR/>Можно протащить его неявно (state монада, или даже implicit parameters).<BR/><BR/>Много вариантов. И все, кроме unsafePerformIO являются чисто функциональными (да и unsafePerformIO тоже чисто функционален, если вызывается один раз).<BR/><BR/>Надо понимать, что фишка хаскелла -- полная функциональная чистота. Даже IO монада функциональна чиста. Не чиста только ф-я main.<BR/><BR/>Благодаря полной чистоте уменьшается общее кол-во глюков и появляется возможность проводить мегаоптимизации программ.<BR/><BR/>Если хочется променять годы отладки на относительную легкость вставления мутабельности в любое место, то что же, ваш выбор )<BR/><BR/><I>Скажите, а он на кластер автоматически параллелится?</I><BR/><BR/>А эрланг параллелится? Автоматически?<BR/><BR/><I>А на лету код править, исправлять, обновлять, менять можно?</I><BR/><BR/>Это даже в Си можно. Хотя на эрланге, наверное, поудобнее.Vladimir Shabanovhttps://www.blogger.com/profile/14322574042735481057noreply@blogger.comtag:blogger.com,1999:blog-29561155.post-35702338613402513812009-02-27T00:47:00.000+03:002009-02-27T00:47:00.000+03:00Олег, я попробовал, хаскель действительно такой ве...Олег, я попробовал, хаскель действительно такой весь удобный, мощный. Очень приятный синтаксис (за исключением дебильных комментариев с -- и неравно /=).<BR/><BR/>Но вот годится, по-моему он на 9 из 10 для математических изысканий.<BR/>И, конечно, нет там такой паралельности, как в эрланге. Но легкие потоки есть. И есть готовые рецепты как нехитрыми путями выполнять код на многих процах и машинах.<BR/><BR/>#haskell подсказывает, что хотсваппинг кода *возможен*, но опять же, из коробки как в эрланге этого нет. Что такое хотсваппинг кода для математических теоретиков? Очередной нонсенс, который надо заткнуть в угол и обозвать понебезопаснее. :)Sergey Shepelevhttps://www.blogger.com/profile/03622566552770711788noreply@blogger.comtag:blogger.com,1999:blog-29561155.post-42906806718691064712009-02-27T00:05:00.000+03:002009-02-27T00:05:00.000+03:001) http://community.livejournal.com/ru_lambda/9789...1) http://community.livejournal.com/ru_lambda/97895.html<BR/>Прокомментируйте, пожалуйста. Как же это делается в Хаскеле по трушному?<BR/>2) Хаскель ступенью выше Ерланг. Значит, на нём можно писать не менее удобно, чем на Ерланге.<BR/>а) Скажите, а он на кластер автоматически параллелится?<BR/>б) А на лету код править, исправлять, обновлять, менять можно?Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-29561155.post-10059922566401760352009-02-14T20:18:00.000+03:002009-02-14T20:18:00.000+03:00Потому что, что здесь непонятного!!!Потому что, что здесь непонятного!!!Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-29561155.post-4525376599455434312009-01-15T21:04:00.000+03:002009-01-15T21:04:00.000+03:00Почему Haskell не является языком будущего: http:/...Почему Haskell не является языком будущего: http://lambda-the-ultimate.org/classic/message9361.htmlAnonymousnoreply@blogger.comtag:blogger.com,1999:blog-29561155.post-71771812304044155002009-01-15T18:53:00.000+03:002009-01-15T18:53:00.000+03:00Низкоуровневые программы давно пора не писать, а г...Низкоуровневые программы давно пора не писать, а генерировать из высокоуровнего описания задачи.<BR/>Как целевой язык генерации C не очень хорошо подходит - слишком сложный синтаксис. Лучше использовать prescheme или bitc.<BR/>А генератор можно писать и на Haskell :-).<BR/><BR/>У Erlangа есть хорошее свойство, которое помогает при разработке высоконагруженных систем. Он хоть и тормозной, но при высокой загрузке его производительность почти не проседает. При этом без больших усилий со стороны разработчика - все делает runtime.<BR/><BR/>Но есть класс задач, для которого Haskell пока не подходит. Это разработка систем, которые приходится модифицировать и отлаживать не останавливая. В телекоме здесь применяют Erlang, но со скрипом. IMHO, здесь могли бы рулить Lisp и Smalltalk (его среда разработки - пример такой системы), но в области высоконагруженных систем и телекома они уступают Erlangу.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-29561155.post-39109150599349254812008-12-10T16:04:00.000+03:002008-12-10T16:04:00.000+03:00Предпочел бы Хаскелл.Он просто гораздо более мощны...Предпочел бы Хаскелл.<BR/><BR/>Он просто гораздо более мощный. В кемле в принципе нет generic-операций (или ad-hoc полиморфизма), что не так удобно. Нет разделения мутабельных/чистых ф-ий (а оно хоть и непривычно, но позволяет срезать определенное кол-во глюков и вообще делает программы более чистыми). Стандартная библиотека, поставляемая с кемлом, сильно меньше стандартной хаскельной (хотя и более хорошо оттестирована). Система модулей в кемле вроде и мощная, но хаскельная гораздо удобнее (позволяет легко делать вложенные модули, раскиданные по папкам, а также очень удобно то, что, при перегрузке модуля в интерпретаторе, остальные модули, от которых он зависит, перекомпилируются автоматом). Также в хаскеле можно делать операторы из любой ф-ии и указывать им нужные приоритеты (очень удобно для EDSL). Из-за того, что хаскелл более высокоуровневый он также имеет и более высокоуровневые библиотеки (хотя бы те же ф-ии работы с монадами -- разных монад много, а ф-ии одни и те же, это как контейнеры и алгоритмы в STL). Ленивость по-умолчанию тоже иногда очень полезна. Возможность определить ф-ию в любом месте модуля (а не строго до использования) позволяет более удобно структурировать код (сначала самое важное, потом детали, а не наоборот). Ну и синтаксически Хаскелл посимпатичнее. Также теперь производительность программ на Хаскеле начинает догонять (и перегонять) кемл (все благодаря чистому коду -- в нем можно проводить очень мощные оптимизации).<BR/><BR/>Из минусов у Хаскелла -- это его чуть большая сложность по сравнению с окемлом. <BR/><BR/>Да и то, хаскелл скорее более объемный, а не более сложный. Чтобы писать на нем необязательно знать все тонкости (как в С++). Можно постепенно доучивать делали.Vladimir Shabanovhttps://www.blogger.com/profile/14322574042735481057noreply@blogger.comtag:blogger.com,1999:blog-29561155.post-82920244281358964762008-12-09T19:07:00.000+03:002008-12-09T19:07:00.000+03:00я начинал работать с ФП с хаскеля, и мне он очень ...я начинал работать с ФП с хаскеля, и мне он очень понравился, но потом стал смотреть ocaml, тоже понравился.<BR/>Что же таки вы предпочли бы при прочим равных условиях и, желателньо, почему, пусть и собъективно ? :)Unknownhttps://www.blogger.com/profile/13331857562837574631noreply@blogger.comtag:blogger.com,1999:blog-29561155.post-50848126228386888962008-12-09T18:57:00.000+03:002008-12-09T18:57:00.000+03:00ocaml не канает уже?вообще 5 баллов, мне понравило...ocaml не канает уже?<BR/>вообще 5 баллов, мне понравилось!))Unknownhttps://www.blogger.com/profile/13331857562837574631noreply@blogger.comtag:blogger.com,1999:blog-29561155.post-8182455861758400372008-10-23T18:19:00.000+04:002008-10-23T18:19:00.000+04:00Насрать на паралельную сборку мусора, сделают - мо...Насрать на паралельную сборку мусора, сделают - молодцы, не сделали - ерунда. Главное, что легкие потоки есть. pattern matching из коробки тоже фапабельно.<BR/><BR/>Рефакторинг делается на раз-два-три с помощью утилит типа rope. А с помощью утилит типа pylint, pychecker можно заранее отловить не все ошибки. На самом деле, статическая типизация просто помогает делать рефакторинг. Но жестко отсечь его может только chmod -rw. Ты же не задумываешься о том, насколько сложно написать интерпретатор хаскеля? Это уже сделано за тебя. Так же и со всеми другими утилитами. Да, авторам pylint пришлось сложнее, чем авторам чекера хаскеля. Но меня волнует то, что эти проги работают, а не сколько пота сошло с авторов.<BR/><BR/>Я всё грежу идеями DSL, но пока к сожалению, ничего не сделано. Уверен, что эрланг в этом месте наименее полезное звено. Лучше будет питон или ваш хаскель, надо признать.Sergey Shepelevhttps://www.blogger.com/profile/03622566552770711788noreply@blogger.comtag:blogger.com,1999:blog-29561155.post-5191435663617755192008-10-23T18:08:00.000+04:002008-10-23T18:08:00.000+04:00И хаскель будет использовать все имеющиеся процесс...<I>И хаскель будет использовать все имеющиеся процессоры для своих нитей или как питон - только один?</I><BR/><BR/>Да. Он пускает несколько осевых нитей, в каждой из которых крутятся легкие хаскельные. Сборщик мусора пока останавливает все нити, но народ над этим работает (сборка мусора частично ведется параллельно, хотят полностью параллельно).<BR/><BR/><I>И эрланг таки сливает по скорости или просто есть догадка об этом, потому что (подставить любой тезис) ?</I><BR/><BR/>Потому что интерпретируемый. Народ в erlang-овском мейл-листе убивался, что процессы мол параллельные там хорошо работают, а на вычислительно/алгоритмически сложных задачах эрланг тормозит.<BR/><BR/><I>Типизация это наверно скорее холивар. Мне очень нравится динамическая. Я умею с ней обращаться и проблем от этого не возникает. </I><BR/><BR/>О. Вот может ты ответишь на вопрос: как осуществляется рефакторинг кода в динамически типизированных языках? Вот мне надо поменять параметры у ф-и или структуру данных поправить. Статически типизированные языки это ловят и показывают, где еще надо поменять. А что делают в динамически типизированных?<BR/><BR/><I>Вот некоторая магическая притягательность записи программ и не менеее магическая скорость легких потоков и есть те вещи из-за которых люди бросают шикарные языки вроде питона в пользу "галимой функциональщины" (ц).</I><BR/><BR/>Легкость процессов мне особо не интересна (задачи не те). А вот меньшая глюкавость функциональных программ, алгебраические типы данных, pattern matching, вывод типов -- вот это действительно удобно. Т.е. функциональность это прикольно, но это не единственная вещь. Мне в хаскеле больше нравится мощная система типов и возможность легко создавать DSL-и, чем чистая функциональность, хотя они и взаимосвязаны.Vladimir Shabanovhttps://www.blogger.com/profile/14322574042735481057noreply@blogger.comtag:blogger.com,1999:blog-29561155.post-75642227223895438032008-10-23T14:29:00.000+04:002008-10-23T14:29:00.000+04:00Уважаемому товарищу aquagnu, цитируюА писать функц...Уважаемому товарищу aquagnu, цитирую<BR/><BR/><I>А писать функциональные программы Вы можете и на Python, но конечно же без монад, сигнатур и прочих условных ограничений</I><BR/><BR/>Посмотрите <A HREF="http://ru.wikipedia.org/wiki/%D0%A4%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%BE%D0%BD%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B8_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F" REL="nofollow">wiki ФЯП</A>. Смысл функциональщины не в условных ограничениях, а в том, что функции могут возвращать функции (это есть в Питоне, ага) и самое главное - отсутствие побочных эффектов. То есть нельзя изменить значение переменной. Последнее даёт немыслимую мощь паралеллизации. Например, эрланг может запустить 4 миллиона своих "процессов" (можете называть их потоками) за секунду. Товарищ Шабанов вот подсказывает, что в хаскеле то же самое счастье с легкими потоками.<BR/><BR/>Вот некоторая магическая притягательность записи программ и не менеее магическая скорость легких потоков и есть те вещи из-за которых люди бросают шикарные языки вроде питона в пользу "галимой функциональщины" (ц).Sergey Shepelevhttps://www.blogger.com/profile/03622566552770711788noreply@blogger.comtag:blogger.com,1999:blog-29561155.post-44956110566607405942008-10-23T14:23:00.000+04:002008-10-23T14:23:00.000+04:00Да, функциональные нити это потрясающая вещь. И ха...Да, функциональные нити это потрясающая вещь. И хаскель будет использовать все имеющиеся процессоры для своих нитей или как питон - только один? Вопрос актуален учитывая растущее количество ядер.<BR/><BR/>И эрланг таки сливает по скорости или просто есть догадка об этом, потому что (подставить любой тезис) ?<BR/><BR/>Типизация это наверно скорее холивар. Мне очень нравится динамическая. Я умею с ней обращаться и проблем от этого не возникает. Кому-то наоброт. Дай им бог здоровья.Sergey Shepelevhttps://www.blogger.com/profile/03622566552770711788noreply@blogger.comtag:blogger.com,1999:blog-29561155.post-19446927193331264222008-10-23T14:14:00.000+04:002008-10-23T14:14:00.000+04:00С параллельностью у хаскелла есть огромный плюс. О...С параллельностью у хаскелла есть огромный плюс. Он чисто функциональный, а чистые ф-ии отлично параллелятся. И что-то не уверен, что у хаскела дела хуже. Миллион нитей на нем вполне можно запустить.<BR/><BR/>По скорости эрланг сливает хаскелу, т.к. интерпретируемый. А сам хаскел уже приближается к С (опять же из-за того, что он чисто функциональный и там можно делать такие оптимизации, которые в императивных языках очень сложны).<BR/><BR/>Эрланг (как и лисп/питон) динамически типизированный, а это означает необходимость в дополнительном тестировании того, что компилер мог и так поймать. Т.е. меньшая производительность труда.<BR/><BR/>И в принципе эрланг -- просто набор идей. Никто не мешает использовать их в других языках. Есть конечно еще OTP и mnesia. Но у хаскела кол-во библиотек в последнее время растет чуть ли не в геометрической прогресии.<BR/><BR/>Так что у меня пока вывод, что надо юзать хаскелл для большинства задач и посматривать на то, что творится в области dependent types (это еще более навороченная типизация, которая может поймать еще больше ошибок, т.е. наука постепенно идет к тому, что типизация будет почти как динамическая, только "падать" проги будут уже на стадии компиляции).Vladimir Shabanovhttps://www.blogger.com/profile/14322574042735481057noreply@blogger.comtag:blogger.com,1999:blog-29561155.post-30967179030428853732008-10-23T13:36:00.000+04:002008-10-23T13:36:00.000+04:00Товарищ использует xMonad - оконный менеджер на ха...Товарищ использует xMonad - оконный менеджер на хаскеле. По-моему это вот оно и есть - самое лучшее применение хаскелю. Маленькие простые программки, использующие сишные либы там где надо и работающие/пишущиеся быстрее и приятнее.<BR/><BR/>Я сам не ковырялся, но товарищ вроде изучал вопрос и обнаружил, что с паралельностью в хаскеле дела еще хуже, чем в питоне.<BR/><BR/>Эрланг удивительно офигителен, наверно его надо продвигать. Если бы не угребищный синтаксис.<BR/><BR/>Поэтому краткий вывод такой, что нужен свой язык, красивый как питон или лисп без скобок, и быстрый/полезный как эрланг.<BR/><BR/>За статью вам спасибо.Sergey Shepelevhttps://www.blogger.com/profile/03622566552770711788noreply@blogger.comtag:blogger.com,1999:blog-29561155.post-61476457813312113922008-10-20T11:06:00.000+04:002008-10-20T11:06:00.000+04:00Что касается последнего комментария... я в таком с...Что касается последнего комментария... я в таком случае просто советую человеку не полениться, и изучить Haskell. Поверьте, не пожалеете.<BR/><I>А писать функциональные программы Вы можете и на Python, но конечно же без монад, сигнатур и прочих условных ограничений, связанных с причудами самого языка, ограниченного лишь одной парадигмой.</I><BR/>Ни в коем случае не хочу наезжать на Python, но если Вы попробуете написать что-либо на Хаскеле, вы сразу почувствуете разницу. Что касается сигнатур и структур, то я что-то не припомню таковых в Хаскеле. В SML они есть (и в Ocaml тоже, только называются немного иначе). В Хаскеле их нет и они там не нужны! Там для этого есть список экспорта и уже упомянутые type classes, которые намного мощнее и гибче, чем сигнатуры/структуры. Что же до монад, и прочих условных ограничений, связанных с причудами самого языка, опять же, если Вы изучите Хаскел и напишите на нём хоть одно более-менее серьёзное приложение, Вам станет ясно, что нет никаких ограничений, нет никаких причуд. Пока же, Ваши выступления в адрес Хаскела не обоснованы.Romanhttps://www.blogger.com/profile/03876152634032744442noreply@blogger.comtag:blogger.com,1999:blog-29561155.post-61394279785594976142008-08-06T11:56:00.000+04:002008-08-06T11:56:00.000+04:00Две поправки: судя по прочитанному, у Вас весьма п...Две поправки: судя по прочитанному, у Вас весьма посредственное знание Python, поэтому Ваше "шаг назад" это абсолютно интуитивное восприятие, похоже выросшее на ощущении, что "Python не такой как Haskell, значит он хуже".<BR/>Я в свое время посмотрел на Haskell и у меня он вызвал такое же интуитивное восприятие, как у Вас Python: мне он тоже показался шагом назад, особенно учитывая его возраст. Я считаю, что "шаг вперед" - это лаконичные языки. <B>Haskell не лаконичен по сравнению даже с Python</B>.<BR/>Мне не нравятся ни "структуры" ни "сигнатуры" и я не думаю, что они нужны в языке программирования (как в OCaml), если можно прекрасно обходиться без них.<BR/><BR/>Скажите, а Вы любите дискретную математику? И заметьте, программирование - это не математика и никогда не может ею быть.<BR/><BR/>Что касается упомянутых преимуществ. Patter matching эмулируется через декораторы, только кому оно нужно?! Разбивка функции на отдельные "предложения с паттернами" вместо одной функции с явной проверкой - спорный эстетический вопрос, многие программисты согласны со мной (погуглите!). Оставлю "за кадром" аргумент про "вкомпилированность" таких проверок (ибо это дизайн языка).<BR/><BR/>Что такое type classes? Могу только предположить. В Python очень удобная и мощная система классов и метаклассов - это коррелирует с type classes?<BR/><BR/>Лично я не нашел абсолютно ничего в Haskell, <B>что бы могло сократить время разработки и СОПРОВОЖДЕНИЯ по сравнению с Python</B> (скорее наоборот).<BR/><BR/>Не хочу никого ни в чем переубеждать, но в одном я уверен: Haskell никогда не достигнет уровня зрелости даже Python, равно как и количество инструментария для него будет на порядки меньше, чем для большинства других языков.<BR/><BR/>А писать функциональные программы Вы можете и на Python, но конечно же без монад, сигнатур и <B>прочих условных ограничений, связанных с причудами самого языка, ограниченного лишь одной парадигмой.</B>Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-29561155.post-64591587530022190282008-07-30T16:20:00.000+04:002008-07-30T16:20:00.000+04:00Кроме того, что нет статической типизации, претенз...<I>Кроме того, что нет статической типизации, претензий нет, как я погляжу.</I><BR/><BR/>Для меня это достаточная причина, чтобы отказаться от использования языка.<BR/><BR/><I>Опечатки и ошибки проверяются утилитами pylint и pycheker (это давно стало нормой).</I><BR/><BR/>Не знал о таких тулзах. Оно умеет встраиваться в интерпретатор? <BR/><BR/>Где-то слышал (от какого-то разработчика оптимизатора для питона), что питон в принципе нельзя поностью статически типизировать, т.к. в некоторых местах на всю катушку используется динамика. Т.е. проверки все равно не будут полными.<BR/><BR/><I>Это и было тем отнятием времени?</I><BR/><BR/>Если не считать части, где не хватило библиотек, то да. <BR/><BR/><I>Если да, то получается, что питон времени лишнего и не отнял.</I><BR/><BR/>Как раз питон-то и отнял. pylint/pychecker не часть питона, а внешние тулзы, о которых я, например, только сегодня и узнал.<BR/><BR/><I>Не совсем понятно, в чем именно питон был шагом назад.</I><BR/><BR/>Просто питон более низкоуровневый язык. Где у него алгебраические типы данных, pattern matching, type classes?<BR/><BR/>Если pylint/pychecker умеют встраиваться в интерпретатор и делать нормальный вывод типов, тогда может питон и можно для чего-то использовать (хотя кому он нужен без pattern matching). А при наличии хаскела смысла в питоне не вижу (только если есть технические причины, роде платформы или библиотек).Vladimir Shabanovhttps://www.blogger.com/profile/14322574042735481057noreply@blogger.comtag:blogger.com,1999:blog-29561155.post-7331161617101486782008-07-30T15:59:00.000+04:002008-07-30T15:59:00.000+04:00Я уже достаточно давно пользуюсь ion-ом (это и был...Я уже достаточно давно пользуюсь ion-ом (это и было основной причиной перехода под линукс). Еще у нас народ пользуется dwm, но мне он как-то не понравился тем, что сбоку видны окна, которые на данный момент не нужны. До xmonad я как-то так и не добрался. Попробую посмотреть.<BR/><BR/>Я сейчас еще перешел на conkeror -- emacs-подобный браузер с такими же клавиатурными сокращениями. Тоже все никак не нарадуюсь. Хотя для неподготовленного человека будет тяжко.Vladimir Shabanovhttps://www.blogger.com/profile/14322574042735481057noreply@blogger.comtag:blogger.com,1999:blog-29561155.post-4671753090454414152008-07-30T14:32:00.000+04:002008-07-30T14:32:00.000+04:00Наверняка пользуешся Linux в качестве рабочей плат...Наверняка пользуешся Linux в качестве рабочей платформы, попробуй фреймового оконного менеджера xmonad - клона dmw на haskell - полный улет, я совсем недавно открыл для себя что такое фреймовые оконные менеджеры и просто в восторге диком пребываю.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-29561155.post-11834459726923137062008-07-27T12:43:00.000+04:002008-07-27T12:43:00.000+04:00Ждал поста, чтобы поглядеть на список претензий к ...Ждал поста, чтобы поглядеть на список претензий к питону. Кроме того, что нет статической типизации, претензий нет, как я погляжу.<BR/>Опечатки и ошибки проверяются утилитами pylint и pycheker (это давно стало нормой).<BR/>То, что кто-то там библиотеку какую-то не такую написал - вина автора библиотеки, а никак не языка. Это и было тем отнятием времени? Если да, то получается, что питон времени лишнего и не отнял.<BR/>Не совсем понятно, в чем именно питон был шагом назад.<BR/><BR/>-- ysae.livejournal.comAnonymousnoreply@blogger.comtag:blogger.com,1999:blog-29561155.post-47544018958168839642008-07-21T17:08:00.001+04:002008-07-21T17:08:00.001+04:00Страшно вспомнить, сколько я их �
b90
�тлаживал, и...Страшно вспомнить, сколько я их �<br />b90<br />�тлаживал, и, все равно, раз в месяц программа таки падала <a href="http://rdd.su" title="музыку"> </a>Алексей (rewritoff)https://www.blogger.com/profile/05710769847850201699noreply@blogger.com