Здравствуйте, Gaperton, Вы писали:
G>Вот тут, например, недавно в форуме были попытки расширить язык С++ новыми модными фичами, которые были штатными еще в старом добром Algol 68
CPL родил BCPL.
BCPL родил C.
C родил C++.
C++ родил C#.
В CPL (середина 1960-х) были функции высшего порядка (closures) и параметрический полиморфизм(generics).
Здравствуйте, Кодёнок, Вы писали:
Кё>Здравствуйте, eao197, Вы писали:
Кё>На С++/STL тоже не сразу стали писать. Огромное количество опенсорс-проектов до сих пор пишется на Си, в стиле "эмуляции С++" и начинаются новые, но С++ занимает всё больше места.
Кё>Главная идея такая, что дальнейшее развитие самых популярных языков (С++, C#, Java) в конце концов сделает из них Лисп
Я что-то не вижу что остальные языки превращаются в лисп, да и сам лисп многое перенял из других языков, например ОО.
Вообще у лиспа та же проблема что и у Forth, слишком легко менять язык до неузнаваемости(и не совместимости).
И вообще тут сильно восхищаются лиспом, но почему то не показывают его красоту на конкретных примерах, небольших программок, я пока не вижу ничего, что давало бы гигантские преимущества по сравнению с другими языками.
Здравствуйте, VladD2, Вы писали:
C>>В итоге Yahoo был вынужден переписать их движок на С++
VD>Звучит как полный бред. Java, Zope'ы/RubyOnRails/PHP обошли Лисп и именно по этому движок переписали на С++. Что же не на асме, то? Было бы еще логичнее.
Не у всех же аллергия на C++
Вообще не понятно что именно этот движок делает.
Здравствуйте, Трурль, Вы писали:
Т>Здравствуйте, eao197, Вы писали:
E>>Я могу заявить, что изучал в университете Prolog и уже тогда понял, что крайне тяжело разобраться в чужой прологовской программе.
Т>А уж разобраться в чужой C++ программе — вообще за гранью человеческих возможностей.
Предлагаю и в твоем, и в моем утверждения поставить жирное ИМХО.
Поскольку я видел не много Prolog-овских программ. И делаю вывод на основании небольшой выборки.
В тоже время я видел и писал много C++ программ. В нормальных C++ программах нет проблем с восприятием. И таких программ тоже, к счастью, не мало.
... << RSDN@Home 1.1.4 stable rev. 510>>
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, Кодёнок, Вы писали:
Кё>Ты всё время рассуждаешь в стиле "обстоятельства не в нашу пользу, мы вынуждены выбирать другое". Речь ведь не идёт о том, чтобы вдруг все сразу взяли и перешли на Лисп, когда для него нет ни разработчиков, ни программ в ВУЗах, почти ничего существенного. Я абсолютно согласен, что начинать новый проект на Лиспе для большинства команд сейчас вообще не вариант.
Ну да, потому что проекты нужно делать здесь и сейчас. Я программированием на хлеб зарабатываю, поэтому разные резкие пируеты, вроде смены языка и технологии, могут пагубно сказаться благосостоянии моей семьи.
Кё>На С++/STL тоже не сразу стали писать.
Сразу-сразу. Как только появились доступные реализации STL, так и стали. Даже прикручивали STL к тем компиляторам, в которых его изначально не было. В Watcom C++ 10, например.
Кё>Главная идея такая, что дальнейшее развитие самых популярных языков (С++, C#, Java) в конце концов сделает из них Лисп
Я сомневаюсь, что это произойдет.
И сомневаюсь, что это целесообразно.
... << RSDN@Home 1.1.4 stable rev. 510>>
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
mihoshi,
M>Здравствуйте, VladD2, Вы писали:
VD>>что забавно шаблонов там нема, но плюсы отдыхают по полной прграмме
M> А что такое, например, параметризуемые модули, как не шаблоны?
На мой взгляд параметрический полиморфизм наиболее полный аналог шаблонов:
'a list <=> template <class T> list
('a * 'b * 'c) <=> template <class T1, class T2, class T3> tuple
('a->'a) <=> template <class TR, class T1> function <TR(*)(T1)>
('a->'b)->('c->'a)->'c->'b <=> template < ... > JAW_DROPPINGLY_BIG_BUNCH_OF_CODE
L.C.R. wrote: > Cyberax, > >> > C>Вообще, в CL мне не понравилось полное отсутствие нормального >> > синтаксиса >> > C>(LISP=Lots of Incredibly Silly Paranthesis) > > Это не проблема. Достаточно найти правильный редактор/вьюер, который > > (F1 a1 (F2 b1 (F3 c1 c2 c3)) a3 a4) > > > показывает в виде > > F1 > a1 > F2 > b1 > F3 > c1 > c2 > c3 > a3 > a4 > > > Ну или в более свёрнутом виде > > F a1 > F2 b1 > F3 c1 c2 c3 > a3 a4 > > > > И гладкое погружение в Лисп гарантировано! > > xxx: Сам давно писал для автокада — тогда и пришла мне в голову эта > хотелка, там редактор конечно подсвечивает и пары скобок и т.д. и т.п. > но всё равно трудно.
Vim примерно так и делает (если Enter ставить), но скобки оставляет.
Поищите/напишите plugin к нему — это не вопрос. Или, если Вы любитель
Emacs — поищите/напишите к нему mode.
{} Т>В CPL (середина 1960-х) были функции высшего порядка (closures) и параметрический полиморфизм(generics).
Что такое closures и когда (зачем) они нужны?
Здравствуйте, KHeLeKRoN, Вы писали:
KHL>Здравствуйте, Трурль, Вы писали:
KHL>{} Т>>В CPL (середина 1960-х) были функции высшего порядка (closures) и параметрический полиморфизм(generics). KHL>Что такое closures и когда (зачем) они нужны?
Глянь хотябы в википедию. На русский язык обычно переводят как "замыкание".
raskin,
>> Ну или в более свёрнутом виде >> >> F a1 >> F2 b1 >> F3 c1 c2 c3 >> a3 a4 >>
R>Vim примерно так и делает (если Enter ставить), но скобки оставляет. R>Поищите/напишите plugin к нему — это не вопрос. Или, если Вы любитель R>Emacs — поищите/напишите к нему mode.
Я как раз любитель Вима.
Моя рекомендация относится исключительно к новичкам (в Лиспе), которым в Лиспе нравится всё, кроме скобок. Но как следует из вышестоящих постов, по мере просветления скобки оказываются больше помогают, ежели мешают. А профи вообще оказывается без них вообще жить не могут.
Так что для новичка (я как раз он самый!) есть несколько путей:
1. Написать плагин для Вима, который делает скобки невидимыми.
2. Ускорить просветление
3. Пойти путём других функциональных языков — все дороги всё равно ведут в Рим.
FR wrote: > > Я что-то не вижу что остальные языки превращаются в лисп, да и сам лисп > многое перенял из других языков, например ОО.
Но при этом, как я помню, первым включил в официальный стандарт объекты.
VladD2 wrote:
> C>Но потом пришла Java и обогнала их по фичам (Cocoon — публикация в XML, > C>JSP/Servlets+Struts — в создании шаблонов, Tapestry — в "компонентном" > C>программировании), а всякие Zope'ы/RubyOnRails/PHP обошли их по > удобству > C>использования. > C>В итоге Yahoo был вынужден переписать их движок на С++ > Звучит как полный бред. Java, Zope'ы/RubyOnRails/PHP обошли Лисп *и > именно по этому* движок переписали на С++. Что же не на асме, то? Было > бы еще логичнее.
Нет, просто движок на Лиспе потерял свою уникальную черту — поддержку
самого быстрого цикла разработки. Вот менеджеры и решили, что вместо
того, чтобы искать по всему USA программистов на Лиспе — они лучше
перепишут все на С++ с использованием старых наработок.
Дарней wrote:
> C>А вы уверены, что Лисповцы не ходят на своих особенных "скобковых" > C>костылях? Мне вот почему-то именно так кажется. > Ну зачем к скобкам то цепляться? Это уже губановщина какая-то > получается. Главное — фичи языка, а не синтаксис.
Тогда все переходим на APL
> Тем более что скобка — это не begin, всего лишь один символ. Ее > написать нетрудно.
Читать трудно — синтаксис у Лиспа почти write-only получается. В
точности как в Перле.
Трурль wrote:
> E>Я могу заявить, что изучал в университете Prolog и уже тогда понял, > что крайне тяжело разобраться в чужой прологовской программе. > А уж разобраться в чужой C++ программе — вообще за гранью человеческих > возможностей.
Сложности возникают только тогда, когда по полной программе шаблонное
метапрограммирование используется. А остальной код обычно вполне
прилично читается, даже если был написан плохим программистом.
Здравствуйте, Cyberax, Вы писали:
C>Трурль wrote:
>> E>Я могу заявить, что изучал в университете Prolog и уже тогда понял, >> что крайне тяжело разобраться в чужой прологовской программе. >> А уж разобраться в чужой C++ программе — вообще за гранью человеческих >> возможностей.
C>Сложности возникают только тогда, когда по полной программе шаблонное C>метапрограммирование используется. А остальной код обычно вполне C>прилично читается, даже если был написан плохим программистом.
А причина, имхо, в том, что средства языка (плюсов) используются не по их назначению, в отличие от того, что макросы лиспа изначально подразумаевают такие назначения. Имхо плюсы, верней их шаблоны по сути есть ФЯ времени компиляции, хотя очень убогий с т. зр. ФЯ и жестокий для понимания, Александреску, думаю, неплохо это (возможности плюсов как ФЯ времени компиляции) продемонстрировал.
L.C.R. wrote:
> Моя рекомендация относится исключительно к новичкам (в Лиспе), которым > в Лиспе нравится всё, кроме скобок. Но как следует из вышестоящих > постов, по мере просветления скобки оказываются больше помогают, ежели > мешают. А профи вообще оказывается без них вообще жить не могут. > Так что для новичка (я как раз он самый!) есть несколько путей: > 1. Написать плагин для Вима, который делает скобки невидимыми. > 2. Ускорить просветление
Мне как человеку, испорченному тлетворным влиянием Java и C# еще нужно:
3. _Автокомплит_!!! Причем не тупо по словам, а контекстно-зависимо как
в IDEA. В Vim я такого не нашел.
4. Навигация по коду, code assist.
5. Рефакторинг.
Даже для С++ часть этого сделана в виде VisualAssist'а.