Re[6]: Metaprogramming et al
От: mihoshi Россия  
Дата: 12.07.05 08:38
Оценка: +1
Здравствуйте, Трурль, Вы писали:

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


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


Все как раз наоборот. И в этом, возможно, и кроется причина непопулярности Lisp и иже с ними.

Почитай Tao of Unix Programming. Одно из правил, упоминаемых там — "Давать mechanizm, но не навязывать policy". Т.е. дать инструмент, накладывающий минимальные ограничения на способ использования. Но там же указан и недостаток этого принципа — если пользователю дать возможность выбора policy, то это значит, что ему придется выбирать policy.
А для этого нужно нетривальное умение не только думать, но и координировать свои решения с другими программмистами.

Что сейчас является мейнстримом? "Толстые" и "негибкие" языки, которые навязывают программитсу некоторый общий стиль программирования. Да, как только программисту нужно что-то, что не укладывается в hard-coded policy, начинаются проблемы. Но, как правило, общее policy способствует созданию более предсказуемого и поддерживаемого кода. Гораздо проще понять код, в котором, скажем, классы реализованы одним способом, чем тот, в котором это сделано десятком различных способов.
Re[7]: Metaprogramming et al
От: _Obelisk_ Россия http://www.ibm.com
Дата: 12.07.05 08:48
Оценка:
Здравствуйте, FR, Вы писали:

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


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



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


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


FR>Cсылкой не поделишся?


http://sourceforge.net/project/showfiles.php?group_id=1355



Душа обязана трудиться! (с) Н.Заболоцкий.
Re[10]: Metaprogramming et al
От: raskin Россия  
Дата: 12.07.05 09:14
Оценка:
Cyberax wrote:
> L.C.R. wrote:
>
>> Моя рекомендация относится исключительно к новичкам (в Лиспе), которым
>> в Лиспе нравится всё, кроме скобок. Но как следует из вышестоящих
>> постов, по мере просветления скобки оказываются больше помогают, ежели
>> мешают. А профи вообще оказывается без них вообще жить не могут.
>> Так что для новичка (я как раз он самый!) есть несколько путей:
>> 1. Написать плагин для Вима, который делает скобки невидимыми.
>> 2. Ускорить просветление
>
> Мне как человеку, испорченному тлетворным влиянием Java и C# еще нужно:
> 3. _Автокомплит_!!! Причем не тупо по словам, а контекстно-зависимо как
> в IDEA. В Vim я такого не нашел.
> 4. Навигация по коду, code assist.
> 5. Рефакторинг.

А вот тут, конечно, всех быстро затопчут поклонники Emacs. Так как у них
Lisp родственен IDE. Потому как всюду (для Java, Pascal, C#) чуть ли не
куски компиляторов этому учат. А vim — не приспособлен хорошо к одному
языку, скорее сносно ко всем.
Posted via RSDN NNTP Server 2.0 beta
Re[7]: Metaprogramming et al
От: Трурль  
Дата: 12.07.05 09:20
Оценка: +1
Здравствуйте, eao197, Вы писали:

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


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


E>Предлагаю и в твоем, и в моем утверждения поставить жирное ИМХО.


Баш на баш.
Re[11]: Metaprogramming et al
От: L.C.R. Россия lj://_lcr_
Дата: 12.07.05 10:09
Оценка:
Здравствуйте, raskin, Вы писали:

R>Cyberax wrote:

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

R>А вот тут, конечно, всех быстро затопчут поклонники Emacs. Так как у них

R>Lisp родственен IDE. Потому как всюду (для Java, Pascal, C#) чуть ли не
R>куски компиляторов этому учат. А vim — не приспособлен хорошо к одному
R>языку, скорее сносно ко всем.

Ну для C++ вполне сносная поддержка, интеграция с gdb, ctags и всё такое. Так что здесь — нормально.

Для Lisp — — особенно рефакторинг. Поиск и замена с регэкспами помогает, но заменой увы — не является .

Возможно для Емакса с этими адвансед штучками дела обстоят получше... Знающие люди е?
quicksort =: (($:@(<#[),(=#[),$:@(>#[)) ({~ ?@#)) ^: (1<#)
Re[8]: Metaprogramming et al
От: Cyberax Марс  
Дата: 12.07.05 10:22
Оценка:
Курилка wrote:

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

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

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

> Имхо плюсы, верней их шаблоны по сути есть ФЯ времени компиляции, хотя

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

Да, он достаточно убогий. Немного улучшений к нему можно было бы
добавить — тогда он станет вполне нормальным.

ИМХО, _ОГРОМНЫЙ_ плюс С++ных шаблонов — это то что они работают над
_типами_, а не над кодом непосредственно.

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

>> Мне как человеку, испорченному тлетворным влиянием Java и C# еще нужно:

>> 3. _Автокомплит_!!! Причем не тупо по словам, а контекстно-зависимо как
>> в IDEA. В Vim я такого не нашел.
>> 4. Навигация по коду, code assist.
>> 5. Рефакторинг.
> А вот тут, конечно, всех быстро затопчут поклонники Emacs.Так как у них
> Lisp родственен IDE.

Он там внутри IDE — отстойный, очень уж диалект древний. Вдобавок,
слишком уж мне сам Emacs не нравится — а для новичков он вообще шедевр
user unfriendy интерфейса.

--
С уважением,
Alex Besogonov (alexy@izh.com)
Posted via RSDN NNTP Server 1.9
Sapienti sat!
Re[12]: Metaprogramming et al
От: raskin Россия  
Дата: 12.07.05 10:33
Оценка:
Cyberax wrote:
> raskin wrote:
>
>> > Мне как человеку, испорченному тлетворным влиянием Java и C# еще нужно:
>> > 3. _Автокомплит_!!! Причем не тупо по словам, а контекстно-зависимо как
>> > в IDEA. В Vim я такого не нашел.
>> > 4. Навигация по коду, code assist.
>> > 5. Рефакторинг.
>> А вот тут, конечно, всех быстро затопчут поклонники Emacs.Так как у них
>> Lisp родственен IDE.
>
> Он там внутри IDE — отстойный, очень уж диалект древний. Вдобавок,
> слишком уж мне сам Emacs не нравится — а для новичков он вообще шедевр
> user unfriendy интерфейса.
Не отрицаю ни того, ни другого. Потому я и пользуюсь ViM. Но
неадекватность диалекта не препятствует появлению более/менее
универсального средства. Просто любой LISP стремятся встроить как в IDE
в Emacs — вне зависимости от диалекта, всё к родственным душам податься.
А user-unfriendly — да, я тоже всё не соберусь пересесть, быть может,
под него. Но в XEmacs нормальные меню — для новичков и ненадолго, а
когда их не хватит — всё будет уже привычно.
Posted via RSDN NNTP Server 2.0 beta
Re[13]: Metaprogramming et al
От: fionbio  
Дата: 12.07.05 10:45
Оценка:
Здравствуйте, raskin, Вы писали:

R>Cyberax wrote:

>> raskin wrote:
>>
>>> > Мне как человеку, испорченному тлетворным влиянием Java и C# еще нужно:
>>> > 3. _Автокомплит_!!! Причем не тупо по словам, а контекстно-зависимо как
>>> > в IDEA. В Vim я такого не нашел.
>>> > 4. Навигация по коду, code assist.
>>> > 5. Рефакторинг.
>>> А вот тут, конечно, всех быстро затопчут поклонники Emacs.Так как у них
>>> Lisp родственен IDE.
>>
>> Он там внутри IDE — отстойный, очень уж диалект древний. Вдобавок,
>> слишком уж мне сам Emacs не нравится — а для новичков он вообще шедевр
>> user unfriendy интерфейса.
R>Не отрицаю ни того, ни другого. Потому я и пользуюсь ViM. Но
R>неадекватность диалекта не препятствует появлению более/менее
R>универсального средства. Просто любой LISP стремятся встроить как в IDE
R>в Emacs — вне зависимости от диалекта, всё к родственным душам податься.
R>А user-unfriendly — да, я тоже всё не соберусь пересесть, быть может,
R>под него. Но в XEmacs нормальные меню — для новичков и ненадолго, а
R>когда их не хватит — всё будет уже привычно.

Всем сюда
http://www.rsdn.ru/forum/?mid=1267776
Автор: fionbio
Дата: 12.07.05

Там есть мувик с IDE

Хотя на самом деле Emacs+SLIME — всё что надо содержит. Autocomplete,
navigation, etc. Даже presentations недавно экспериментальные добавили
(не то, что вы подумали). По поводу рефакторинга — какой именно рефакторинг
интересует? В Лиспе рефакторинг нужен несколько иной, чем в Java/C#/C++.
Re[13]: Metaprogramming et al
От: Cyberax Марс  
Дата: 12.07.05 10:48
Оценка:
raskin wrote:

>> Он там внутри IDE — отстойный, очень уж диалект древний. Вдобавок,

>> слишком уж мне сам Emacs не нравится — а для новичков он вообще шедевр
>> user unfriendy интерфейса.
> Не отрицаю ни того, ни другого. Потому я и пользуюсь ViM. Но
> неадекватность диалекта не препятствует появлению более/менее
> универсального средства. Просто любой LISP стремятся встроить как в IDE
> в Emacs — вне зависимости от диалекта, всё к родственным душам податься.

Ну так как результат — нормальной IDE для Lisp'а нет.

> Но в XEmacs нормальные меню — для новичков и ненадолго, а

> когда их не хватит — всё будет уже привычно.

Агащаз. Я помню, пытался с налету разобраться с XEmacs'ом еще в 90-е
года. Не получилось — даже менюшки ничем не помогли, пришлось 150
страничный мануал читать.

--
С уважением,
Alex Besogonov (alexy@izh.com)
Posted via RSDN NNTP Server 1.9
Sapienti sat!
Re[14]: Metaprogramming et al
От: raskin Россия  
Дата: 12.07.05 10:58
Оценка:
Cyberax wrote:
> raskin wrote:
>
>> > Он там внутри IDE — отстойный, очень уж диалект древний. Вдобавок,
>> > слишком уж мне сам Emacs не нравится — а для новичков он вообще шедевр
>> > user unfriendy интерфейса.
>> Не отрицаю ни того, ни другого. Потому я и пользуюсь ViM. Но
>> неадекватность диалекта не препятствует появлению более/менее
>> универсального средства. Просто любой LISP стремятся встроить как в IDE
>> в Emacs — вне зависимости от диалекта, всё к родственным душам податься.
>
> Ну так как результат — нормальной IDE для Lisp'а нет.
OpenSource — если Emacs не считать. Из коммерческих, причём free for
personal use, непрерывно упоминают LispWorks.
>
>> Но в XEmacs нормальные меню — для новичков и ненадолго, а
>> когда их не хватит — всё будет уже привычно.
>
> Агащаз. Я помню, пытался с налету разобраться с XEmacs'ом еще в 90-е
> года. Не получилось — даже менюшки ничем не помогли, пришлось 150
> страничный мануал читать.
А что надо было? Сейчас я посмотрел — на поверхности меню 90% того, что
я использую наизусть в ViM.
Posted via RSDN NNTP Server 2.0 beta
Re[14]: Metaprogramming et al
От: fionbio  
Дата: 12.07.05 11:00
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Ну так как результат — нормальной IDE для Lisp'а нет.


http://depni.sinp.msu.ru/~ivan_iv/lisp/dsl-in-lisp.mov
Re[11]: Metaprogramming et al
От: VladD2 Российская Империя www.nemerle.org
Дата: 12.07.05 12:46
Оценка: +1
Здравствуйте, FR, Вы писали:

FR>Не у всех же аллергия на C++


Причем тут алергия? Надо быть полным идиотом чтобы в следствии того что Лисп был обойден скажем Явой переписать код на С++. Ну, с какого боку тут взялся С++?
... << RSDN@Home 1.1.4 beta 7 rev. 466>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[11]: Metaprogramming et al
От: VladD2 Российская Империя www.nemerle.org
Дата: 12.07.05 12:46
Оценка: 1 (1) +1 :))) :)
Здравствуйте, Cyberax, Вы писали:

C>Нет, просто движок на Лиспе потерял свою уникальную черту — поддержку

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

Ты действительно не видишь алогизма в своих размышлениях? Если для них быстрый цикл был важен, то почему они не сменили язык на тот который обладает более быстрым циклом? Это ведь полная бессмыслица исходя из этих сообрежения выбрать С++. Уж у него то цикл только длиннее.


Сдается мне, что причина была банальнее. К управлению проектом пришел фанат плюсов который нашел фатальный недостаток в продутке. Ну, вы знаете какой.
... << RSDN@Home 1.1.4 beta 7 rev. 466>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[7]: Metaprogramming et al
От: VladD2 Российская Империя www.nemerle.org
Дата: 12.07.05 12:46
Оценка:
Здравствуйте, mihoshi, Вы писали:

M> А что такое, например, параметризуемые модули, как не шаблоны?


Система вывода типов позволяет писать полиморфный код просто не указывая типов.
... << RSDN@Home 1.1.4 beta 7 rev. 466>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[12]: Metaprogramming et al
От: Cyberax Марс  
Дата: 12.07.05 13:10
Оценка:
VladD2 wrote:

> C>Нет, просто движок на Лиспе потерял свою уникальную черту — поддержку

> C>самого быстрого цикла разработки. Вот менеджеры и решили, что вместо
> C>того, чтобы искать по всему USA программистов на Лиспе — они лучше
> C>перепишут все на С++ с использованием старых наработок.
> Ты действительно не видишь алогизма в своих размышлениях? Если для них
> быстрый цикл был важен, то почему они не сменили язык на тот который
> обладает более быстрым циклом? Это ведь полная бессмыслица исходя из
> этих сообрежения выбрать С++. Уж у него то цикл только длиннее.

Почему же? Все логично — уровень гибкости существующих шаблонов им
оказался достаточен, и гнаться за новыми фичами стало ненужно.

--
С уважением,
Alex Besogonov (alexy@izh.com)
Posted via RSDN NNTP Server 1.9
Sapienti sat!
Re[14]: Metaprogramming et al
От: CrazyPit  
Дата: 12.07.05 13:17
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>raskin wrote:


>>> Он там внутри IDE — отстойный, очень уж диалект древний. Вдобавок,

>>> слишком уж мне сам Emacs не нравится — а для новичков он вообще шедевр
>>> user unfriendy интерфейса.
>> Не отрицаю ни того, ни другого. Потому я и пользуюсь ViM. Но
>> неадекватность диалекта не препятствует появлению более/менее
>> универсального средства. Просто любой LISP стремятся встроить как в IDE
>> в Emacs — вне зависимости от диалекта, всё к родственным душам податься.

C>Ну так как результат — нормальной IDE для Lisp'а нет.



Но всё-таки emacs+SLIME вполне тянет на нормальную IDE, автокомплит вполне контекстозависимый (зависит от пакета) и очень удобный + стандартный автокомплит по словам. Подсказка к функциям. Простенький броузер класоов. Интеграция с документацией. Xref — можно быстро узнать какие функции вызвает данная функция и какие функции вызывают её, какие функции изменяют голбальную переменную и.т.д.. Навигация по коду. Раскрытие макросов на-лету. Интеграция с дебугером + "инспектор" объектов. И конечно очень удобное редактирование S-exprов. Плюс ещё много всяких удобных фич.

И кстати вот хороший пример lisp-программы. При всех своих наворотах и поддержке большинства реализаций Common Lisp SLIME — это всего 17,5К строк Common Lisp кода и 12K строк Emacs Lisp кода, всего около мегабайта сорцов.
Re[13]: Metaprogramming et al
От: Кодёнок  
Дата: 12.07.05 13:18
Оценка: +3
Здравствуйте, Cyberax, Вы писали:

C>Почему же? Все логично — уровень гибкости существующих шаблонов им

C>оказался достаточен, и гнаться за новыми фичами стало ненужно.

Логично, это "Я выбрал новый BMW, потому что он всех обогнал".

А "Я выбрал Фольксваген, потому что новый BMW всех обогнал" — нелогично. У вас так и получается, выбрали С++ потому что (???) Java, php всех обогнали
Re[2]: Metaprogramming et al
От: Сергей Туленцев Россия http://software.tulentsev.com
Дата: 12.07.05 13:30
Оценка:
Здравствуйте, CrazyPit, Вы писали:

CP>Да интересная дискуссия, даже зарегился на RSDN, чтоб сюда запостить.

CP>С Лиспом я знаком года 2-3, с тех пор как плотно начал юзать емакс, но именно CL, ну и схемой, заинтересовался только в конце прошлого года. Сначала прочитал, правда не до конца, первый том "Мир Лиспа", как то мне не очень понравилось и я забил, так что не советую вам её читать, очень скучно плюс только в том, что про Common Lisp это единственная книга на русском. Потом, когда появилась в инете Practical Common Lisp, и я его прочитал, да ещё открыл для себя SLIME, всё стало намного интереснее. Язык ИМХО самый навороченный из всех, и причина этому именно макросы в сочетании с простым представлением программ и данных. Чего стоят те же макросы loop & format.

Заинтересованный, я полез в инет и добыл: emacs-21.3, slime-1.2.1, Allegro CL 6.2, clisp-2.33.2
Пытался подружить парочку emacs + slim. Максимум, что мне удалось, это вызов консоли Аллегро по M-x slime. Но, думаю, эффект должен быть немного другой. Не поделишься ли опытом настройки?
--
Re[14]: Metaprogramming et al
От: VladD2 Российская Империя www.nemerle.org
Дата: 12.07.05 13:39
Оценка: :)
Здравствуйте, Кодёнок, Вы писали:

Кё>Логично, это "Я выбрал новый BMW, потому что он всех обогнал".


Кё>А "Я выбрал Фольксваген, потому что новый BMW всех обогнал" — нелогично. У вас так и получается, выбрали С++ потому что (???) Java, php всех обогнали


Сдается мне, что когда в разговоре появляется С++, то для очень многих логично только то, что хвалит С++.
... << RSDN@Home 1.2.0 alpha rev. 549>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.