программистское
Dec. 28th, 2005 01:12 pmГоспода программисты! В последние дни я "для души": читал об устройстве языка Perl 6, компилировал pugs, чтобы, возможно, с ним повозиться, читал документацию новой системы source control под названием darcs, взял в библиотеке второе издание известной книги Code Complete, и собираюсь посмотреть, за что ж её так хвалят (первое издание я не читал).
А что вы делали в последнее время "для души"? Расскажите о каких-нибудь интересных проектах, книгах, сайтах, файлах, чём угодно.
А что вы делали в последнее время "для души"? Расскажите о каких-нибудь интересных проектах, книгах, сайтах, файлах, чём угодно.
no subject
Date: 2005-12-28 12:55 pm (UTC)no subject
Date: 2005-12-28 01:11 pm (UTC)no subject
Date: 2005-12-28 01:24 pm (UTC)Все чуть сложнее.
Написание интерпретатора перла конечно неплохое упражнение и тест-драйв для хаскеля, но... в каком-то смысле перл почти во всем - это антихаскель.
хаотичный, с очень низким КПД, максимально противоречивый и неожиданный и при этом всем еще и ничего особенного собой не представляет :)
Не знаю, у меня, после восьми лет программирования на перле и пяти на питоне они оба вылетели просто из используемых (для соответствующих случаев) в пользу scheme и tcl - после программирования на лиспе, окамле и хаскеле.
Ну а потом, на хаскеле так просто интерпретаторы писать под конкретную задачу, что ... ;)
Чуть откровеннее - у меня просто нет ни одного довода за использование перла хоть где-то. Вот и.
no subject
Date: 2005-12-28 01:40 pm (UTC)Но из тех языков программирования, какими я пользовался в нетривиальных масштабах, для большинства задач, с которыми я сталкиваюсь, у Перла самый высокий КПД. Просто из соображений того, как быстро, удобно и качественно написать. При этом я говорю не только о маленьких скриптах на все случаи жизни, где преимущества Перла известны, но также о нормального размера программах и проектах.
Есть языки, КПД которых мне кажется большим (например, Смоллток, особенно для больших сложных проектов), но я не писал на ничего большого и серьёзного, поэтому это всё hand-waving в пользу бедных :)
На tcl я бы перл не сменил ни за что. Но это дело вкуса, конечно, как и всё остальное. А насчёт Хаскелла будем посмотреть.
no subject
Date: 2005-12-28 09:14 pm (UTC)А в больших...
Не знаю, 4 больших проекта (соразмерных с LJ) на перле поддержкой и развитием которых мне приходилось заниматься в разное время просто занимают первые 4 места худшего, что со мной происходило :) Перл просто начинает взрываться на больших объемах - полный хаос с типами и рантаймом, несуразные модули (если это вообще так можно назвать), мистически неуловимые memory leaks, невероятно сложная отладка в т.ч из-за невменяемой грамматикии и как финал всегда - жуткое месиво из хаков, костылей и регекспов.
Не знаю с чем сравнивали вы, но я, видимо, выберу перл только под угрозой применения PHP :)
Это выбирая из Tcl, Лиспов, смоллтолка, эрланга, питона, хаскеля, MLей, явы и всяких смежных с ними языков и технологий.
Конечно, перл достаточно экспрессивен и гибок, чтобы устранить многие из его недостатков, но когда 90% выразительности языка тратится на его починку, тогда как даже в случае с Tcl все это идет на расширение - это как-то не вдохновляет. перл6 дело конечно кое что исправляет и parrot - это дико клево, тк. на нем можно не использовать перл :)
А то мне при виде всех этих synopses хочется зарыться под стол - я не понимаю почему вся эта малоконсистентная синтаксическая солянка входит в описание языка, когда я на маленьких Scheme или Io могу это все сделать и так, а могу и сделать более удобно, не оставаясь при этом в неведении как это работает. И самое главное - имею возможность не иметь и не думать даже о всем этом, что самое ценное.
Ну а вообще, для действительно больших объемов кода и количества разработчиков, в качестве host-языка я бы использовал только что-то со статической (и очень жесткой) проверкой типов и развитой системой модулей. Иначе, через некоторое время, все равно за плодящимися хаками уже не разглядеть и не уследить ничего. Увы, пока что исключений я не видел.
Из динамических, разве что эрланг держится. Ну и в некоторых случаях смоллтолк (тут правда подозреваю дело не только и не столько в самом языке:).
а для разных частей системы потом, если нужно, использовать что-то domain specific.
no subject
Date: 2005-12-30 03:54 pm (UTC)no subject
Date: 2005-12-28 01:54 pm (UTC)no subject
Date: 2005-12-28 09:47 pm (UTC)лисп по недоразумению.
Единственное, что у перла юзабельного, для работы с текстом - это его регекспы. В остальном он почти непригоден для этого. Тот же Tcl по-моему гораздо удобнее будет.
Вообще же если искать идеал, то, думаю, что-нибудь APL-подобное с нормальными регекспами было бы лучше всего.
Ну или что-то ленивое со строками-списками и продвинутым матчингом :)
no subject
Date: 2005-12-29 08:07 am (UTC)no subject
Date: 2005-12-30 08:40 pm (UTC)no subject
Date: 2005-12-28 02:20 pm (UTC)no subject
Date: 2005-12-28 09:52 pm (UTC)И довольно высока вероятность, что на яве это решение будет менее dirty.
На JVM вон еще и куча языков бежит.
no subject
Date: 2005-12-29 08:09 am (UTC)