BZ>>когда я в первый раз работал за деньги, мне поручили написать одну интерактивную программу с системой меню. я сам сделал соответствующую библиотечку. было это на С, и для уменьшения размера кода я очень активно использовал препорцессор. в конце концов система подстановок в подстановки стала настолько запутанной, что я перестал в ней разбираться
E>Таких историй большинство участников форума могут привести множество. Это нормальный процесс обучения.
я тебя просто неправильно понял. что касается Пролога — то суть декларативного программирования в том и состоит, что программист описывает не шаги решения задачи, а результат, который он хочет получить. и логическое программирование — наиболее декларативное. может, он это и имел в виду?
E>* вы заостряете внимание на Хаскел. Чтож он вам нравится, он соответствуют вашим представлениям о том, как нужно программировать. Хотя на мой взгляд, попытки сравнения Хаскеля с другими языками в данном треде выглядят как "Круче Хаскел только яйца!". Показалось мне так. Обычное, думаю, дело -- один написал с одними мыслями, другой прочитал с другими мыслями;

ну это, я думаю, нет смысла комментировать. хотя нет — я старался писать о преимуществах higher-order funcs, immutable objects, lazy evaluation, type inference и других средств хаскела. когда речь идёт о скорости — я писал о C++. когда о создании скриптов — это будет, скажем, руби. если я чего-то не знаю — я так об этом и говорю. по возможностям, необходжимым для промышленного программирования, хаскел — это лучший язык из тех, что я знаю. но не потому, что это хаскел. а потому, что в нём есть такие-то и такие-то возможности. вот на уровень возмоджностей языка мне и хотелось бы перевести эту дискуссию, а не устраивать здесь свяященные войны. я например вполне поддерживаю Влада в том, что Немерле быстрее хаскела, и в свою очередь языки с нативной компиляцией вероятно быстрее байткодовых
E>* мое личное отношение к сложным вещам. Я здесь уже говорил об этом, зарабатывал кучу минусов, наживал обвинения в посредственности, но остался при своем. У людей разные способности, в том числе и по освоению/использованию сложных инструментов. Мне доводилось наблюдать это во время учебы на примерах изучения высшей математики (мат.анализ, в котором мало кто в нашей группе разбирался и еще меньшее количество людей могло применять полученные знания для решения практических задач) и Пролога (большинство вообще, представте, вообще не понимало, в чем дело). При том, есть небольшое количество индивидумов которым природой и воспитанием дадено воспринимать вещи по другому. Кто-то воспринимает математику как само собой разумеющееся, кто-то так же относится к программированию. Вот у меня, например, с программированием вообще никогда не было проблем, в том числе и с Прологом. В отличии от математики. Так вот, в программировании разные способности индивидумов так же проявляются. Кто-то хорошо программирует на Java, но плохо на C++, кто-то замечательно знает Пролог и может на нем сделать все, что угодно, а другой вообще не может понять, по каким правилам Прологовские программы работают. А раз у людей разные способности и пристрастия, то при некоторых условиях с этим приходится считаться. Например, при передаче чужого кода на сопровождение. При попытке заменить выбывшего по объективным причинам или форс-мажорным обстоятельствам человека. И здесь оказывается, что заменить Java программиста возможно. C++ программиста, в принципе, возможно. Найти адекватную замену Хаскел или Пролог программисту... Это мало реально еще и потому, что, по моим наблюдениям, те же Пролог программисты имеют очень высокий уровень, это не обычные кодеры, которым по жизни хватает один раз выученного языка и одной освоенной IDE, и работы над одинаковыми проектами. А значит, Хаскел и Пролог программисты подходят к своей работе более творчески и применяют неординарные идеи. Соответственно, удачно заменить их сможет только такой же продвинутый и неординарный человек. Так что остается всего ничего -- найти его. Ну или переписать все так, чтобы в дальнейшем ротация коллектива не была проблеммой.
вопрос "если наш язык так крут, почему же его никто не использует?" в сообществах small языков возникают куда чаще, чем здесь

есть даже статья об этом профессора Вадлера, одного из авторов Haskell и generic Java. если кратко, то дело (помимо объективных свойств самого языка) в *инфораструктуре*: библиотеках, средствах разработки, книгах, обучении и в конечном счёте подготовленных специалистах
спецы по Прологу или Немерлу — хорошие программисты не потому, что язык хорош. я вот скажем пишу на хаскеле, си и delphi, так что — мои способности каждый день меняются?

дело в том, что для изучения скажем ООП+ООД уже есть хорошо накатанная колея, этому учат с института и человек думает о программе в этих терминах на автомате, воспринимает их как нечто соверщшенно ращзумеющееся — точно так же, как умение говорить. как мне Влад говорил, "
на самом деле мир — императивен"
людей, способных изучить и эффективно применять какой-нибудь язык, для которого нет хорошо накатанных паттернов, тем более для которого нет отладчиков, библиотек и т.д. — мало и в любом случае они работают неэффективно. так что мой совет — не использовать, а джержать нос по ветру. и не думать, что лучше, чем в C++ ничего уже не сделаешь. как я уже говорил, функциональное мышление мне лично помогает лучше струтурировать сишные программы
E>А посему получается, что если вы делаете что-нибудь самостоятельно или в очень небольшой группе таких же как вы людей, то что Хаскел, что Пролог, что еще что-нибудь экзотическое -- нет разницы. Совсем другое дело -- дальнейшая судьба написанного вами кода, который вы по каким-то причинам, больше не можете сопровождать. Вот как раз мейнстримовые языки (даже такие ругаемые и проигрывающие конкурентам, как C и C++) имет здесь гораздо больший запас прочности. И большая многословность и даже проигрыше в функциональности у разработанных на мейнстримовых языках систем компенсируются вот этим вот запасом прочности.
я вас и не призываю на него перейти. вы меня наверно с кем-то перепутали