Re[6]: Metaprogramming et al
От: mihoshi Россия  
Дата: 12.07.05 05:54
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>что забавно шаблонов там нема, но плюсы отдыхают по полной прграмме


А что такое, например, параметризуемые модули, как не шаблоны?
Re[5]: Metaprogramming et al
От: Трурль  
Дата: 12.07.05 06:33
Оценка: 1 (1) :))
Здравствуйте, eao197, Вы писали:


E>Я могу заявить, что изучал в университете Prolog и уже тогда понял, что крайне тяжело разобраться в чужой прологовской программе.


А уж разобраться в чужой C++ программе — вообще за гранью человеческих возможностей.
Re[4]: Metaprogramming et al
От: Трурль  
Дата: 12.07.05 06:49
Оценка: :))
Здравствуйте, Gaperton, Вы писали:

G>Вот тут, например, недавно в форуме были попытки расширить язык С++ новыми модными фичами, которые были штатными еще в старом добром Algol 68


CPL родил BCPL.
BCPL родил C.
C родил C++.
C++ родил C#.
В CPL (середина 1960-х) были функции высшего порядка (closures) и параметрический полиморфизм(generics).
Re[8]: Metaprogramming et al
От: FR  
Дата: 12.07.05 06:52
Оценка: 1 (1) +3
Здравствуйте, Кодёнок, Вы писали:

Кё>Здравствуйте, eao197, Вы писали:



Кё>На С++/STL тоже не сразу стали писать. Огромное количество опенсорс-проектов до сих пор пишется на Си, в стиле "эмуляции С++" и начинаются новые, но С++ занимает всё больше места.


Кё>Главная идея такая, что дальнейшее развитие самых популярных языков (С++, C#, Java) в конце концов сделает из них Лисп


Я что-то не вижу что остальные языки превращаются в лисп, да и сам лисп многое перенял из других языков, например ОО.
Вообще у лиспа та же проблема что и у Forth, слишком легко менять язык до неузнаваемости(и не совместимости).

И вообще тут сильно восхищаются лиспом, но почему то не показывают его красоту на конкретных примерах, небольших программок, я пока не вижу ничего, что давало бы гигантские преимущества по сравнению с другими языками.
Re[10]: Metaprogramming et al
От: FR  
Дата: 12.07.05 06:52
Оценка:
Здравствуйте, VladD2, Вы писали:

C>>В итоге Yahoo был вынужден переписать их движок на С++


VD>Звучит как полный бред. Java, Zope'ы/RubyOnRails/PHP обошли Лисп и именно по этому движок переписали на С++. Что же не на асме, то? Было бы еще логичнее.


Не у всех же аллергия на C++
Вообще не понятно что именно этот движок делает.
Re[6]: Metaprogramming et al
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 12.07.05 07:01
Оценка:
Здравствуйте, Трурль, Вы писали:

Т>Здравствуйте, eao197, Вы писали:



E>>Я могу заявить, что изучал в университете Prolog и уже тогда понял, что крайне тяжело разобраться в чужой прологовской программе.


Т>А уж разобраться в чужой C++ программе — вообще за гранью человеческих возможностей.


Предлагаю и в твоем, и в моем утверждения поставить жирное ИМХО.
Поскольку я видел не много Prolog-овских программ. И делаю вывод на основании небольшой выборки.
В тоже время я видел и писал много C++ программ. В нормальных C++ программах нет проблем с восприятием. И таких программ тоже, к счастью, не мало.
... << RSDN@Home 1.1.4 stable rev. 510>>


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[8]: Metaprogramming et al
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 12.07.05 07:01
Оценка: 1 (1) +1
Здравствуйте, Кодёнок, Вы писали:

Кё>Ты всё время рассуждаешь в стиле "обстоятельства не в нашу пользу, мы вынуждены выбирать другое". Речь ведь не идёт о том, чтобы вдруг все сразу взяли и перешли на Лисп, когда для него нет ни разработчиков, ни программ в ВУЗах, почти ничего существенного. Я абсолютно согласен, что начинать новый проект на Лиспе для большинства команд сейчас вообще не вариант.


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

Кё>На С++/STL тоже не сразу стали писать.


Сразу-сразу. Как только появились доступные реализации STL, так и стали. Даже прикручивали STL к тем компиляторам, в которых его изначально не было. В Watcom C++ 10, например.

Кё>Главная идея такая, что дальнейшее развитие самых популярных языков (С++, C#, Java) в конце концов сделает из них Лисп


Я сомневаюсь, что это произойдет.
И сомневаюсь, что это целесообразно.
... << RSDN@Home 1.1.4 stable rev. 510>>


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[7]: Metaprogramming et al
От: L.C.R. Россия lj://_lcr_
Дата: 12.07.05 07:01
Оценка: +1
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
quicksort =: (($:@(<#[),(=#[),$:@(>#[)) ({~ ?@#)) ^: (1<#)
Re[7]: Metaprogramming et al
От: raskin Россия  
Дата: 12.07.05 07:07
Оценка:
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.
Posted via RSDN NNTP Server 2.0 beta
Re[5]: Metaprogramming et al
От: _Obelisk_ Россия http://www.ibm.com
Дата: 12.07.05 07:30
Оценка:
Здравствуйте, Кодёнок, Вы писали:


Кё>Он НЕ требует cygwin. Там есть чисто Win32-версия.


Ага, уже нашел. Спасибо.



Душа обязана трудиться! (с) Н.Заболоцкий.
Re[6]: Metaprogramming et al
От: FR  
Дата: 12.07.05 07:43
Оценка:
Здравствуйте, _Obelisk_, Вы писали:

_O_>Здравствуйте, Кодёнок, Вы писали:



Кё>>Он НЕ требует cygwin. Там есть чисто Win32-версия.


_O_>Ага, уже нашел. Спасибо.


Cсылкой не поделишся?
Re[5]: Metaprogramming et al
От: KHeLeKRoN Россия  
Дата: 12.07.05 07:54
Оценка:
Здравствуйте, Трурль, Вы писали:

{}
Т>В CPL (середина 1960-х) были функции высшего порядка (closures) и параметрический полиморфизм(generics).
Что такое closures и когда (зачем) они нужны?
And solder won't keep me together (c)
Re[6]: Metaprogramming et al
От: Курилка Россия http://kirya.narod.ru/
Дата: 12.07.05 07:58
Оценка:
Здравствуйте, KHeLeKRoN, Вы писали:

KHL>Здравствуйте, Трурль, Вы писали:


KHL>{}

Т>>В CPL (середина 1960-х) были функции высшего порядка (closures) и параметрический полиморфизм(generics).
KHL>Что такое closures и когда (зачем) они нужны?

Глянь хотябы в википедию. На русский язык обычно переводят как "замыкание".
Re[8]: Metaprogramming et al
От: L.C.R. Россия lj://_lcr_
Дата: 12.07.05 08:13
Оценка: :)
raskin,

>> Ну или в более свёрнутом виде

>>
>> F a1
>> F2 b1
>> F3 c1 c2 c3
>> a3 a4
>>

R>Vim примерно так и делает (если Enter ставить), но скобки оставляет.

R>Поищите/напишите plugin к нему — это не вопрос. Или, если Вы любитель
R>Emacs — поищите/напишите к нему mode.

Я как раз любитель Вима.

Моя рекомендация относится исключительно к новичкам (в Лиспе), которым в Лиспе нравится всё, кроме скобок. Но как следует из вышестоящих постов, по мере просветления скобки оказываются больше помогают, ежели мешают. А профи вообще оказывается без них вообще жить не могут.

Так что для новичка (я как раз он самый!) есть несколько путей:
1. Написать плагин для Вима, который делает скобки невидимыми.
2. Ускорить просветление
3. Пойти путём других функциональных языков — все дороги всё равно ведут в Рим.
quicksort =: (($:@(<#[),(=#[),$:@(>#[)) ({~ ?@#)) ^: (1<#)
Re[9]: Metaprogramming et al
От: raskin Россия  
Дата: 12.07.05 08:19
Оценка:
FR wrote:
>
> Я что-то не вижу что остальные языки превращаются в лисп, да и сам лисп
> многое перенял из других языков, например ОО.
Но при этом, как я помню, первым включил в официальный стандарт объекты.
Posted via RSDN NNTP Server 2.0 beta
Re[10]: Metaprogramming et al
От: Cyberax Марс  
Дата: 12.07.05 08:25
Оценка: +1
VladD2 wrote:

> C>Но потом пришла Java и обогнала их по фичам (Cocoon — публикация в XML,

> C>JSP/Servlets+Struts — в создании шаблонов, Tapestry — в "компонентном"
> C>программировании), а всякие Zope'ы/RubyOnRails/PHP обошли их по
> удобству
> C>использования.
> C>В итоге Yahoo был вынужден переписать их движок на С++
> Звучит как полный бред. Java, Zope'ы/RubyOnRails/PHP обошли Лисп *и
> именно по этому* движок переписали на С++. Что же не на асме, то? Было
> бы еще логичнее.

Нет, просто движок на Лиспе потерял свою уникальную черту — поддержку
самого быстрого цикла разработки. Вот менеджеры и решили, что вместо
того, чтобы искать по всему USA программистов на Лиспе — они лучше
перепишут все на С++ с использованием старых наработок.

--
С уважением,
Alex Besogonov (alexy@izh.com)
Posted via RSDN NNTP Server 1.9
Sapienti sat!
Re[6]: Metaprogramming et al
От: Cyberax Марс  
Дата: 12.07.05 08:27
Оценка: -1
Дарней wrote:

> C>А вы уверены, что Лисповцы не ходят на своих особенных "скобковых"

> C>костылях? Мне вот почему-то именно так кажется.
> Ну зачем к скобкам то цепляться? Это уже губановщина какая-то
> получается. Главное — фичи языка, а не синтаксис.

Тогда все переходим на APL

> Тем более что скобка — это не begin, всего лишь один символ. Ее

> написать нетрудно.

Читать трудно — синтаксис у Лиспа почти write-only получается. В
точности как в Перле.

--
С уважением,
Alex Besogonov (alexy@izh.com)
Posted via RSDN NNTP Server 1.9
Sapienti sat!
Re[6]: Metaprogramming et al
От: Cyberax Марс  
Дата: 12.07.05 08:29
Оценка:
Трурль wrote:

> E>Я могу заявить, что изучал в университете Prolog и уже тогда понял,

> что крайне тяжело разобраться в чужой прологовской программе.
> А уж разобраться в чужой C++ программе — вообще за гранью человеческих
> возможностей.

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

--
С уважением,
Alex Besogonov (alexy@izh.com)
Posted via RSDN NNTP Server 1.9
Sapienti sat!
Re[7]: Metaprogramming et al
От: Курилка Россия http://kirya.narod.ru/
Дата: 12.07.05 08:36
Оценка: +2
Здравствуйте, Cyberax, Вы писали:

C>Трурль wrote:


>> E>Я могу заявить, что изучал в университете Prolog и уже тогда понял,

>> что крайне тяжело разобраться в чужой прологовской программе.
>> А уж разобраться в чужой C++ программе — вообще за гранью человеческих
>> возможностей.

C>Сложности возникают только тогда, когда по полной программе шаблонное

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

А причина, имхо, в том, что средства языка (плюсов) используются не по их назначению, в отличие от того, что макросы лиспа изначально подразумаевают такие назначения. Имхо плюсы, верней их шаблоны по сути есть ФЯ времени компиляции, хотя очень убогий с т. зр. ФЯ и жестокий для понимания, Александреску, думаю, неплохо это (возможности плюсов как ФЯ времени компиляции) продемонстрировал.
Re[9]: Metaprogramming et al
От: Cyberax Марс  
Дата: 12.07.05 08:37
Оценка: :)
L.C.R. wrote:

> Моя рекомендация относится исключительно к новичкам (в Лиспе), которым

> в Лиспе нравится всё, кроме скобок. Но как следует из вышестоящих
> постов, по мере просветления скобки оказываются больше помогают, ежели
> мешают. А профи вообще оказывается без них вообще жить не могут.
> Так что для новичка (я как раз он самый!) есть несколько путей:
> 1. Написать плагин для Вима, который делает скобки невидимыми.
> 2. Ускорить просветление

Мне как человеку, испорченному тлетворным влиянием Java и C# еще нужно:
3. _Автокомплит_!!! Причем не тупо по словам, а контекстно-зависимо как
в IDEA. В Vim я такого не нашел.
4. Навигация по коду, code assist.
5. Рефакторинг.

Даже для С++ часть этого сделана в виде VisualAssist'а.

--
С уважением,
Alex Besogonov (alexy@izh.com)
Posted via RSDN NNTP Server 1.9
Sapienti sat!
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.