LINUX.ORG.RU

Ответ на: комментарий от yyk

>> Виндузятнегов я понимаю, а лисперов - нет. Это меня беспокоит.

> Первых понять проще, чем вторых? ;)

Мне - да. Первые хотят комфорта, и ниипет. Чего хотят вторые - не понимаю.

>> Вроде все умные люди, а так носятся с этой игрушкой.

>1. Выс забыли спросить, с чем носиться.

8(

> 2. У Вас какие игрушки?

Linux 8) Моя игрушка в данный момент - Python. Но в основном работаю на Си/ассемблере/Си++

>> Описание Common Lisp - это толстенный том (или 2?), о какой простоте речь?!

> Описание какого языка (с описанием всех библиотек, необходимых для покрытия аналогичной функциональности)

Э, нет. То, о чем я говорил - это описание именно _языка_. Причем здесь библиотеки? Примеры языков с компактным описанием - Паскаль, Оберон/Оберон-2.

>> В реальных задачах Лисп за 50 лет распространения не получил - это говорит о многом.

> Ни о чём не говорит.

Ты просто не умеешь слушать ;( Практически у всех языков есть своя ниша - вычисления у Фортрана, системное программирование у Си, скриптование у Perl, бизнес-серверы у Java. А Lisp своей ниши не имеет. Точнее, она исчезла еще до всеобщего разочарования в AI.

tailgunner ★★★★★
()
Ответ на: комментарий от bugmaker

> получение всехъ перестановок заданного множества > из произвольного числа элементов.

#!/usr/bin/perl

my @l = qw/а з д и п/;

sub permute(@) { @_ ? map { my $i = $_; map {[$_[$i], @$_]} permute(@_[0..$i-1, $i+1..$#_]); } (0..$#_) : []; }

print join(' ', @$_)."\n" foreach permute(@l);

Даже на несколько байт короче. Сервер писать неохота, но замечу, что используется "адаптированный" интерфейс к select. Ежели я возьму IO::Select и IO::Socket - то тоже получится быстрее и проще.

anonymous
()
Ответ на: комментарий от anonymous

> Но вообще говоря, концептуальная простота нафик не сдалась на практике.

Опять "за всех"? :)

> Тот же CL, при том, что он весь на себе же, нихрена не простой; а весьма простой Scheme за пределами кампусов никто не использует.

Если не лезть сразу в макры/лупы/readtable и тому подобное - совсем простой :)

> Это дело вкуса. Имхо, как раз наоборот, синтаксическая бедность затрудняет чтение. После Perl или C++ смотреть в прогу на CL - как читать по-русски без знаков препинания и заглавных букв. Для метопрограммирования это плюс, но оно всегда будет уделом подавляющего меньшинства, которое пишет библиотеки и трансляторы.

Первым предложением сам всё сказал. :) А если при выборе языка на одном из первых мест стоит "вкус" кодера -... ну, значит такой кодер :) Опять же, не использование лиспа большинством говорит о большинстве, а не о лиспе :)

> > В четвёртых, допускает весьма высокий уровень абстракции данных. Т.е. требует наименьшего числа телодвижений при описании задачи и ещё меньшего дл изменения проги если задача немного поменялась.

> И какие же абстрактные структуры данных нельзя сформулировать на C++ или Python? Ну, в плюсах синтаксис корявый - но и только; ну бедт треугольных скобочек столько же, сколько в лиспе прямых ;)

"уровень абстракции данных" != "абстрактные структуры данных" (как минимум - те себя уже огрничил - структуры ;)) Ну и речь в первую очередь о работе с этими данными, а не о них самих.

Чем лично мне "дался" лисп - наименьшим количествои ограничений на синтаксис :) Причём, именно после Python-а. А, ещё tcl был ("был" - в моей истории)

yyk ★★★★★
()
Ответ на: комментарий от yyk

>> Но вообще говоря, концептуальная простота нафик не сдалась на практике.

> Опять "за всех"? :)

Концептуальная простота полезна только для написания и отладки абстракций "начального" уровня - того, что в "нормальных" языках собственно входит в язык - управляющих конструкций и стандартной библиотеки. Этим занимается (профессионально) очень мало людей, и мне, грубо говоря, пофик, насколько сложно было написать libc, и сделал ли это один человек за месяц или 100 за год - по сравнению с трудом по ее использованию это все равно ничтожные цифры.

>> Тот же CL, при том, что он весь на себе же, нихрена не простой; а

> Если не лезть сразу в макры/лупы/readtable и тому подобное - совсем простой :)

А нах он такой "простой" нужен-то? Accumulator passing style оттачивать? Велосипеды по 10 на день строить? Нах, нах.

>> Это дело вкуса. Имхо, как раз наоборот, синтаксическая бедность затрудняет чтение.

> Первым предложением сам всё сказал. :) А если при выборе языка на одном из первых мест стоит "вкус" кодера -... ну, значит такой кодер :) Опять же, не использование лиспа большинством говорит о большинстве, а не о лиспе :)

О да, все те же "миллионы мух". Тебе никогда не приходило в голову, что надо инструмент подбирать под человека, о не наоборот (ну, в пределах одного класса)? Споры о читабельности языков - это как спор "из чего правильнее делать рукоятку стамески - из дерева или из пластмассы". Если 90% столяров привыкли к пласстмассовым - зачем тратить лес?

> "уровень абстракции данных" != "абстрактные структуры данных" (как минимум - те себя уже огрничил - структуры ;)) Ну и речь в первую очередь о работе с этими данными, а не о них самих.

Главная сила лиспа - в возможности формировать сложные структуры и их удобно обрабатывать. А большинство алгоритмов более-менее одинаково записывается при одинаковых структурах на любом языке.

> Чем лично мне "дался" лисп - наименьшим количествои ограничений на синтаксис :) Причём, именно после Python-а. А, ещё tcl был ("был" - в моей истории)

Ты чего-то с чем-то путаешь. В Лиспе как раз огромное количество ограничений на синтаксис, в нем даже префиксный или инфиксный оператор определить нельзя по-человечески, и вообще имеется ровно один синтаксический элемент - список (ну, еще quoting, да); everything is a value, даже statement-ов нету нифига (не, не то, чтобы очень надо - но это таки ограничение).

anonymous
()
Ответ на: комментарий от tailgunner

> Мне - да. Первые хотят комфорта, и ниипет. Чего хотят вторые - не понимаю.

:)))) Ну, почти того-же :) Хотя вторых кое-что всё-же... того :)

> Моя игрушка в данный момент - Python.

Когда перестанет устраивать (именно как язык) - посмотрите ещё раз на лисп :)

> Э, нет. То, о чем я говорил - это описание именно _языка_. Причем здесь библиотеки? Примеры языков с компактным описанием - Паскаль, Оберон/Оберон-2.

Э нет. Там описание 1) языка; 2) интерпретатора; 3) компилятора (частично) [или 2+3 - среды]; 4) функций, которые во многих других языках вынесены в библиотеки; 5) сразу и не вспомню :) Ах, да - организации пар, списков и прочее

> Ты просто не умеешь слушать ;( Практически у всех языков есть своя ниша - вычисления у Фортрана, системное программирование у Си, скриптование у Perl, бизнес-серверы у Java. А Lisp своей ниши не имеет. Точнее, она исчезла еще до всеобщего разочарования в AI.

На данный момент из существующих реализаций лиспа получается хороший "клей" и инструмент для макетирования (создания прототипов). На встраиваемых (ecl, newlisp, может ещё что есть) можно писать логику и для монолитных программ.

Трудно говорить об отсутсвии ниши для лиспа, ибо "лисп" - это только синтаксис. CL - уже более жёсткий стандарт. Конкретные реализации более годны для той или иной сферы, и не пригодны в других.

Я не говорю, что все _должны_ всё писать на лиспе. Я лишь предлагаю ознакомиться с языком :) От этого будет только польза.

yyk ★★★★★
()
Ответ на: комментарий от yyk

>> Моя игрушка в данный момент - Python.

> Когда перестанет устраивать (именно как язык) - посмотрите ещё раз на лисп :)

Для меня он игрушка в том смысле, что он мне нравится, хотя сам я на нем пишу немного. Но я в команде работаю, и когда я представляю, что прихожу и говорю: "С сегодняшнего дня переходим на CL", мне просто жалко ребят... Они начнут переходить, но будут меня тихо ненавидеть 8)

> из существующих реализаций лиспа получается хороший "клей" и инструмент для макетирования (создания прототипов).

Лисп может всё, вопросов нет. Но в любой области есть для него более удобная в использовании альтернатива.

> Трудно говорить об отсутсвии ниши для лиспа, ибо "лисп" - это только синтаксис. ... Конкретные реализации более годны для той или иной сферы, и не пригодны в других.

И это большая проблема, вытекающая (ИМХО) из минималистичности Лиспа. В результате имеем десятки несовместимых Лиспов, и это длится десятилетиями.

> Я лишь предлагаю ознакомиться с языком :)

С каким из многочисленных? ;) Имею (небольшой) опыт использования Guile.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

>> Как стало модным говорить о том, что С всегда лучше С++ теми, кто знает только один С.

>Да, эти достали хуже лисперов 8)

Ёжики плакали, кололись, но продолжали писать на плюсах.

dn2010 ★★★★★
()
Ответ на: комментарий от dn2010

> Ёжики плакали, кололись, но продолжали писать на плюсах.

Ёжики плакали, кололись, но продолжали хвалить Лисп. Аргумент того же уровня.

tailgunner ★★★★★
()
Ответ на: комментарий от anonymous

> Концептуальная простота полезна только для написания и отладки абстракций "начального" уровня - того, что в "нормальных" языках собственно входит в язык - управляющих конструкций и стандартной библиотеки.

Вот именно наличие разнообразных управляющих конструкций и невозможность создания своих (кроме функций) и воротит от остальных языков (большинства из них).

> А нах он такой "простой" нужен-то?

Ха, а зачем нужен C/Pascal/etc без единой библиотеки? Значит, языком одним не ограничишься...

> Споры о читабельности языков - это как спор "из чего правильнее делать рукоятку стамески - из дерева или из пластмассы". Если 90% столяров привыкли к пласстмассовым - зачем тратить лес?

Очень правильно заметил - "привыкли". Единственная "достойная" причина :)

> Главная сила лиспа - в возможности формировать сложные структуры и их удобно обрабатывать. А большинство алгоритмов более-менее одинаково записывается при одинаковых структурах на любом языке.

Брр... "описание алгоритма... на языке" зависит от ограничений языка и может быть совсем не одинаково.

> В Лиспе как раз огромное количество ограничений на синтаксис, в нем даже префиксный или инфиксный оператор определить нельзя по-человечески, и вообще имеется ровно один синтаксический элемент - список

Зыть... В лиспе _единственное_ ограничение - единица кода есть список. Фактически требуется только... обозначить границы единицы кода (где это не требуется? :). Всё! Что значит "по-человечески"? Перепешите readtable и делайте что хотите :)

Что такое statement? (забыл - давно не пользовался... ;)

yyk ★★★★★
()
Ответ на: комментарий от tailgunner

> Но в любой области есть для него более удобная в использовании альтернатива.

Согласен, заменить SQL лиспом... Не сейчас ;) И я бы не говорил "удобная" по отношению ко всем областям. Во многих просто устоялся "мэйнстрим" :(

> И это большая проблема, вытекающая (ИМХО) из минималистичности Лиспа. В результате имеем десятки несовместимых Лиспов, и это длится десятилетиями.

У этой медали, как и у любой другой, есть и вторая сторона. Но с Вашим утверждением не спорю :)

> С каким из многочисленных? ;) Имею (небольшой) опыт использования Guile.

Всё-таки более пристально взглянуть на CL... ;)

yyk ★★★★★
()
Ответ на: комментарий от yyk

> Вот именно наличие разнообразных управляющих конструкций и невозможность создания своих (кроме функций) и воротит от остальных языков (большинства из них).

А _зачем_?

>> А нах он такой "простой" нужен-то?

> Ха, а зачем нужен C/Pascal/etc без единой библиотеки? Значит, языком одним не ограничишься...

Пилять, некоторые лисперы не могут запомнить ход дискуссии на два шага назад. Еще раз, изначальный агрумент: лисп простой, и это хорошо. Контраргумент: просто он только "без ничего", а "со всем" - такой же сложный, как все остальное. И где преимущетсво?

> Очень правильно заметил - "привыкли". Единственная "достойная" причина :)

Ровно то же самое, что выше: _что_ мы получим от перехода кроме гемора в процессе перехода?

anonymous
()
Ответ на: комментарий от anonymous

> > Вот именно наличие разнообразных управляющих конструкций и невозможность создания своих (кроме функций) и воротит от остальных языков (большинства из них).

> А _зачем_?

Зачем инструкции есть? Не знаю... :) Зачем свои - чтобы было удобнее.

> Пилять, некоторые лисперы не могут запомнить ход дискуссии на два шага назад. Еще раз, изначальный агрумент: лисп простой, и это хорошо. Контраргумент: просто он только "без ничего", а "со всем" - такой же сложный, как все остальное. И где преимущетсво?

Ок. Лисп "без ничего" - проще некуда. А дальше - дальше сахар. Правда, иногда в виде монолитного куска - надо грызть, потом сладко станет :) И лисп "со всем" - это как плюсы с STL, BOOST и лысым хреном. ИМХО - проще разобраться с первым :) (могу быть и неправ)

> Ровно то же самое, что выше: _что_ мы получим от перехода кроме гемора в процессе перехода?

Вы - скорее всего ничего. Другие _могут_ получить свободу и выразительность. Но это не для "индусского" программирования.

yyk ★★★★★
()
Ответ на: комментарий от yyk

> > Ровно то же самое, что выше: _что_ мы получим от перехода кроме гемора в процессе перехода?

> Вы - скорее всего ничего. Другие _могут_ получить свободу и выразительность. Но это не для "индусского" программирования.

Вам нужны программы красивые или работающие?

У меня все больше складывается впечатление, что большинство лиспофилов не сталкивалась с "промышленным" программированием больших долгоживущих проектов большими командами, а либо студенты, либо исследователи, т.е. люди, пишушие крутые сложные программы, но в одиночку и одноразово, написал-запустил-выкинул.

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

anonymous
()
Ответ на: комментарий от anonymous

> Вам нужны программы красивые или работающие?

Смотря для чего :) Убогий интерфейс иной проги делает её практически неработающей (ибо с ней никто не работает).

> У меня все больше складывается впечатление, что большинство лиспофилов не сталкивалась с "промышленным" программированием больших долгоживущих проектов большими командами, а либо студенты, либо исследователи, т.е. люди, пишушие крутые сложные программы, но в одиночку и одноразово, написал-запустил-выкинул.

А зачем архитектору по стройке ползать? :) Да, в данный момент лисп для "промышленного кодинга" не годится по той простой причине, что вы не найдёте большую команду профессионалов. А "кодеры" почему-то лисп не осваивают - только джаву и инкарнации бэйсика. А всё остальное, что Вы написали - "от лукавого".

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

А этот бред вообще ни коим боком к языку (любому) не лежит. Если один урод написал пусть работающий но дурацкий код без комментариев и сопроводительной документации - чем вас другой язык спасёт?

Про количество профессионалов я уже упомянул. Так Вас никто и заставляет всё писать на лиспе. Вам просто предлагают ознакомиться. А если вы сейчас заведёте песню - "Нафиг мне лишняя сущность", то можете даже и накомиться - не поможет.

yyk ★★★★★
()
Ответ на: комментарий от yyk

1) про интерпретатор - речь идет о реализации самого eval'a a не его тупом вызове, я буду стоя апплодировать человеку который сможет это сделать для руби например :) 2) LISP был языком системного программирования когда фортрана и С/С++ еще в проекте не было :) 3) когда системы на С++ становятся сложными - начинают пользовать boost и прочие темплейтные подпрыгивания чтоб сделать то что в функциональных языках есть с самого начала

anonymous
()
Ответ на: комментарий от anonymous

> 2) LISP был языком системного программирования когда фортрана и С/С++ еще в проекте не было

Фортран старше Лиспа. Но ссылки на использование Лиспа в качестве языка системного программирования - в студию!

>темплейтные подпрыгивания чтоб сделать то что в функциональных языках есть с самого начала

Функциональных языков много и разных. Здесь - речь о Лиспе. В каком из многочисленных его диалектов есть аналог шаблонов со _статической_ типизацией?

tailgunner ★★★★★
()
Ответ на: комментарий от yyk

> А этот бред вообще ни коим боком к языку (любому) не лежит. Если один урод написал пусть работающий но дурацкий код без комментариев и сопроводительной документации - чем вас другой язык спасёт?

У меня есть мнение, что написать непонятный код на Java, и даже на C++ сложнее, чем на CL. Взрывчатки меньше, соглашений больше.

> Про количество профессионалов я уже упомянул. Так Вас никто и заставляет всё писать на лиспе. Вам просто предлагают ознакомиться. А если вы сейчас заведёте песню - "Нафиг мне лишняя сущность", то можете даже и накомиться - не поможет.

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

И мне так и непонятно, почему мегалиспропрограммеры, которые столь горазды пропагандировать, не соберутся и не напишут нужную-и-крутую-прогу-на-лиспе-для-всех. А то я вот, навскидку, ничего на лиспе не знаю, кроме собственно реализаций CL и модов к емаксу. Вот для чего мне - гипотетически начинающему кодеру - учить лисп? Зная плюсы (условно говоря), я могу наваять себе перделку для KDE, а на перле - гостевуху на домашнюю страничку. А на лиспе? Аддон к GNUS? Нафик надо...

anonymous
()
Ответ на: комментарий от tailgunner

> Всё это можно сказать одной фразой: "Проггеров на Лиспе слишком мало".

Дело не только в этом. Все Java программисты нормальны одинаково, все лисповые программисты безумны по-разному, почти (С) Толстой. Т.е. шансы, что средний жавист разберется в произвольном куске кода выше, чем у лисперов. Имхо.

anonymous
()
Ответ на: комментарий от anonymous

> все лисповые программисты безумны по-разному

Такое не следует говорить, если не видел хотя бы десяток-полтора Лисп-программеров _в работе_. Ты видел? Лично я не видел и одного :(

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

>>> Но лисперы и в самом деле достали ;)

>> спокойно, без паники. Бригада уже выехала.

> ну когда же он приедет, добрый доктор? 8)

он уже сдесь

>> Во-первых, он весьма прост.

> Описание Common Lisp - это толстенный том (или 2?),

а описание жабы есть в сотнях тысячь разнообразных "асилим жабу за пару лет", "жаба бля полных дауноф" итп. Будем и дальше сравнивать сложность по объёму сопутствующей мукулатуры? > Или ты имеешь в виду Маккартниевский Lisp 1.5 50-летней давности? Или Scheme?

Common Lisp. С остальными незнаком пока.

>> а потом давай сравним простоту испрользования названых на реальных задачах.

> На _каких именно_ задачах?

Ну я привёл выше пару примеров, достаточно общих ИМХО. Не нравятся - приведи свои.

> Я занимаюсь системами реального времени, куда там Лисп с его сборкой мусора воткунть?

Да фих ево знает. Я в РВ постольку поскольку, но слыхивал даже жабу туда примостить пытаюцо.

> Если задача сводится к обработке списков - тогда Лисп рулит, поскольку для этого и сделан.

Ну если уж ты сводиш задачи на "обработка списков", "обработка байтов" и тд...

> Я уже писал - всё слишком однообразно, глазу не за что зацепиться.

Ну глаз не зацепицо - значит не поцарапаецо, луче видеть будеш. Чем плохо?

> Настолько субъективно, что...

Порешай приведённое выше по перестановкам, чтобы отличить.

> При всем уважении, это сферические кони в вакууме. В реальных задачах Лисп за 50 лет распространения не получил - это говорит о многом.

А получил распространение висуалвасик. Это, да, говорит о многом. Но видимо ты услышал не то, про что это говорит.

bugmaker ★★★★☆
()
Ответ на: комментарий от bugmaker

>> ну когда же он приедет, добрый доктор? 8)

> он уже сдесь

Ты - доктор? Да ты (в лучшем случае) санитар. А скорее всего - больной, который где-то слямзил белый халат и теперь пудрит мозги честным пациентам.

>>> Во-первых, он весьма прост.

>> Описание Common Lisp - это толстенный том (или 2?),

> а описание жабы есть в сотнях тысячь разнообразных "асилим жабу за пару лет", "жаба бля полных дауноф" итп. Будем и дальше сравнивать сложность по объёму сопутствующей мукулатуры?

Причем здесь общее количество макулатуры? Сравнивался объем описаний _языка_, всего одной книги для каждого языка.

> Ну если уж ты сводиш задачи на "обработка списков", "обработка байтов" и тд...

> Ну глаз не зацепицо - значит не поцарапаецо, луче видеть будеш. Чем плохо?

> Порешай приведённое выше

> А получил распространение висуалвасик.

Набор трескучих штампов. Нечего ответить - не отвечай.

tailgunner ★★★★★
()
Ответ на: комментарий от anonymous

> Ты чего-то с чем-то путаешь. В Лиспе как раз огромное количество ограничений на синтаксис, в нем даже префиксный или инфиксный оператор определить нельзя по-человечески, и вообще имеется ровно один синтаксический элемент - список (ну, еще quoting, да); everything is a value, даже statement-ов нету нифига (не, не то, чтобы очень надо - но это таки ограничение).

какая лажа млина! Пожалста определи на любом наречии синтаксис выражовывания типо "a<b=c<d..." где abcd... число а меж ими операции сравнения, и выражовывание значение true тогда и только тогда если выполняецо условие меж любой парой значений. Вот для лиспа:

(defun cmp (x) (if (= 1 (length x)) t (and (eval (list (second x) (first x) (third x))) (cmp (rest (rest x))))))

пример юсажа:

[2]> (cmp '(2 = 2 <= 4 = 4 < 5 < 6))

T

[3]> (cmp '(2 = 2 <= 4 = 4 < 5 < 3))

NIL

bugmaker ★★★★☆
()
Ответ на: комментарий от anonymous

> Контраргумент: просто он только "без ничего", а "со всем" - такой же сложный, как все остальное. И где преимущетсво?

А ты сравни лисп "без ничево" и <чтонибудь другое> "без ничево". Очевидно, чё сложность остатков при одинаковой функциональности будет примерно одинаковая, потому что не зависит от языка.

bugmaker ★★★★☆
()
Ответ на: комментарий от tailgunner

>>> ну когда же он приедет, добрый доктор? 8)

>> он уже сдесь

> Ты - доктор? Да ты (в лучшем случае) санитар. А скорее всего - больной, который где-то слямзил белый халат и теперь пудрит мозги честным пациентам.

:D

> Причем здесь общее количество макулатуры? Сравнивался объем описаний _языка_, всего одной книги для каждого языка.

Да потому что понаписать можно всякое. Дано на этом форуме кто-то заметил, что учеблики по лиспу начинаются с примеров написания интерпретаторов, а остальных - с хеловорда. Лично я освоил лисп в минимально необходимом объёме для практического применения по паре страниц текста описания.

> Набор трескучих штампов. Нечего ответить - не отвечай.

не нравицо ответ - измени вопрос

bugmaker ★★★★☆
()
Ответ на: комментарий от bugmaker

> учеблики по лиспу начинаются с примеров написания интерпретаторов, а остальных - с хеловорда.

Мало в какие языки встроен интерпретатор их самих. И не такое уж это большое преимущество, ИМХО.

> не нравицо ответ - измени вопрос

Если бы я точно знал, какой вопрос следует задать - сам бы нашел ответ. Пока что самое полезное, что я нашел здесь - это http://rsdn.ru/forum/Message.aspx?mid=1264362&only=1

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

>> учеблики по лиспу начинаются с примеров написания интерпретаторов, а остальных - с хеловорда.

> Мало в какие языки встроен интерпретатор их самих. И не такое уж это большое преимущество, ИМХО.

так дело не в интерпретаторе (кстати в питоне вроде есь подобная возможность) а в разнице уровней учебников. И поэтому не очень хорошая идея сравнивать два тома описания лиспа с книшкой "паскаль для всех" (непомню автора, в студенческие годы листал. Там с полсотни страниц наверное)

> Пока что самое полезное, что я нашел здесь - это http://rsdn.ru/forum/Message.aspx?mid=1264362&only=1

Интересное ссылко, спасибо. Щяс прямо читаю.

bugmaker ★★★★☆
()
Ответ на: комментарий от bugmaker

> не очень хорошая идея сравнивать два тома описания лиспа с книшкой "паскаль для всех"

Сравнивают не с "Паскаль для всех", а с "Сообщение о языке программирования Паскаль" Н.Вирта, которое _стандарт языка_.

> Интересное ссылко, спасибо.

Это не мне 8)

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

>> не очень хорошая идея сравнивать два тома описания лиспа с книшкой "паскаль для всех"

> Сравнивают не с "Паскаль для всех", а с "Сообщение о языке программирования Паскаль" Н.Вирта, которое _стандарт языка_.

И зря. Подход принципиально иной. Что есть в Паскале?

функции

процедуры

константы

"тело программы"

переменные

операторы работы с переменными

массивы

множества

блоки операторов (которые меж begin и end)

операторы для работы с ими (условные, цыклы многих видов, ...)

работа с файлами (выделяю отдельно ибо слишком уж отличается)

объектов и работы с памятью там вроде нету

Что есть в лиспе?

функции

переменные

списки

операторы работы с перемеными (связывание, итд)

операторы работы с списками (car, cdr, cons, итд)

всё?

>> Интересное ссылко, спасибо.

> Это не мне 8)

тебе тоже немного. Прочитал, понравилось. Но не во всём согласен. Например, вина за столь неэффективный програмёж на всякой [ерунде] ложится ИМХО в основном на безграмотных "преподавателей", которые практики создания хотябы небольшой проги неимеют а о существовании лиспа просто не знают.

bugmaker ★★★★☆
()
Ответ на: комментарий от bugmaker

> какая лажа млина! Пожалста определи на любом наречии синтаксис выражовывания типо "a<b=c<d..."

Ну, ээ. То, что ты написал с (cmp) - это туфтень. это обычая higher order function, и инфиксными операторами тут и не пахнет.

А вот, скажем, у Haskell есть честный парсер с приоритетом операций, причем настраиваемый, и можно добавлять свои. Так что нефиг тута. А 'source filter' с 'eval' я могу и на перле и на питоне настрогать. Только вот это нафиг не нужно.

anonymous
()
Ответ на: комментарий от tailgunner

> Такое не следует говорить, если не видел хотя бы десяток-полтора Лисп-программеров _в работе_. Ты видел? Лично я не видел и одного :(

Полтора десятка лисп-программеров сразу? Это где такое?

Двух видел. Они еще и лингвисты при этом. Код их на лиспе я не читал, но перловый к внедрению непригоден - только методом "прийти с листочком, записать алгоритм со слов автора, переписать по-нормальному".

anonymous
()
Ответ на: комментарий от anonymous

> инфиксными операторами тут и не пахнет.

А =<> в приведённом примере каковы?

> честный парсер с приоритетом операций

нафих парсер если всё делаецо средствами езыка? Поищи выше, ссылко была. Как всю прогу на лиспе инфиксными/прочим записывать

bugmaker ★★★★☆
()
Ответ на: комментарий от bugmaker

> так дело не в интерпретаторе (кстати в питоне вроде есь подобная возможность) а в разнице уровней учебников.

Ну вот, скажем, один из самых известных учебников по CL - это "Practical Common Lisp". И не сказать, чтоб в нем приводились шибко сложные программы (mp3 streaming server, насколько я помню, там самый большой проект). И есть учебники по C++, в которых за одну главу пишут интерпритатор бейсика (и, я думаю, интерпретатор Scheme нифига не сложнее, а наоборот - там парсер сильно проще. Даже если делать настоящий garbage collector).

А крутые книги типа SICP - они не про Лисп, они про программирование. Вы же не пишете все подряд на MIX только потому, что на нем примеры в AoCP?

> И поэтому не очень хорошая идея сравнивать два тома описания лиспа с книшкой "паскаль для всех" (непомню автора, в студенческие годы листал. Там с полсотни страниц наверное)

Предлагается сравнить, скажем, вот это: http://www.lispworks.com/documentation/HyperSpec/Front/Contents.htm вот с этим: http://java.sun.com/docs/books/jls/third_edition/html/j3TOC.html или http://www.open-std.org/JTC1/SC22/WG14/www/docs/n1124.pdf (С99).

anonymous
()
Ответ на: комментарий от anonymous

> У меня есть мнение, что написать непонятный код на Java, и даже на C++ сложнее, чем на CL. Взрывчатки меньше, соглашений больше.

У меня есть другое мнение. Итого - два разных мнения. Дальше? :)

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

Познакомился, но "плюсов" не видишь (кое-что - не в счёт)? "Не верю" :) Ну я тоже сижу в офисе под офтопиком - судьба такая.

> И мне так и непонятно, почему мегалиспропрограммеры, которые столь горазды пропагандировать, не соберутся и не напишут нужную-и-крутую-прогу-на-лиспе-для-всех. А то я вот, навскидку, ничего на лиспе не знаю, кроме собственно реализаций CL и модов к емаксу. Вот для чего мне - гипотетически начинающему кодеру - учить лисп? Зная плюсы (условно говоря), я могу наваять себе перделку для KDE, а на перле - гостевуху на домашнюю страничку. А на лиспе? Аддон к GNUS? Нафик надо...

"Пропагандировать" - это ты к свидетелям иеговы иди. Тебе просто предлагают поглубже узнать. Авось и пригодиться.

По поводу ссылки на РСДН - трындец! Пока народу не покажешь красную тряпку - нихрена не ведётся! Т.е. самому почитать, попробовать, составить мнение - анунах. А вто кто-то скажет - "Мля, да я на этом лям заработал" - все уже в очереди. НАФИГ! Не хотите - не читайте. Не знаете "зачем" - не читатйте. Прочитали и не поняли - забудьте! А то и так в comp.lang.lisp каждый nn-й пост - как бы хорошо поменять в лиспе синтаксис и прочий бред! <<Не нужен кодеру лисп - ни разу!>>

yyk ★★★★★
()
Ответ на: комментарий от tailgunner

> Но ссылки на использование Лиспа в качестве языка системного программирования - в студию!

А погуглить на тему лисп-машин?

yyk ★★★★★
()
Ответ на: комментарий от anonymous

> http://www.intellij.net/eap/products/idea/download.jsp учше емакса. Куда как. Автокомплишен, интеншен акшенз, все дела.

Да-да и для скольки языков? А всё остальное что есть в емаксе где? А если сам язык свой заделал насколько быстро модуль с поддержкой языка ты сделаешь? Не говоря уже про другие использования емакса. А вообще как там с автоматизацией?

зы: а рефакторинг к с++ есть? :))

CrazyPit ★★★
()
Ответ на: комментарий от yyk

>> Но ссылки на использование Лиспа в качестве языка системного программирования - в студию!

>А погуглить на тему лисп-машин?

Мне не надо на эту тему гуглить - я это читал 15 лет назад. Но Лисп-машины - это слишком уж специфическое системное программирование. В самом деле - что еще может быть языком системного программирования Лисп-машины, кроме Лиспа? Интересуют ссылки на использование Лиспа для системного программирования машин с традиционной архитектурой (BitC - не предлагать, это не Лисп).

tailgunner ★★★★★
()
Ответ на: комментарий от yyk

> По поводу ссылки на РСДН - трындец! Пока народу не покажешь красную тряпку - нихрена не ведётся! Т.е. самому почитать, попробовать, составить мнение - анунах.

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

> А вто кто-то скажет - "Мля, да я на этом лям заработал" - все уже в очереди.

По ссылке как раз сказано, что не заработаешь на Лиспе, но тем не менее его надо знать (что само по себе заставляет предполагать искренность автора).

А Пол Грэм писал, как он заработал на Лиспе - и где очередь?

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

>Интересуют ссылки на использование Лиспа для системного программирования машин с традиционной архитектурой (BitC - не предлагать, это не Лисп).

1. Первые версии Лиспа работали близко к железу и были своего рода ассемблером (откуда пошли например car, cdr - по сути названия регистров одной древней машины :) 2. Common Lisp - это фактически оперционная система. Точка. Имея работающий интерпретатор можно решать любые задачи не покидая его. Вплоть до написания драйверов :). 3. BitC тоже лисп как и многие более экзотические диалекты - S-expressions и лямбда-исчисление - вот главные критерии. А типизация, объекты и прочая лабудень при необходимости добавляется макросами или добавлением встроенных функций в рантайм.

anonymous
()
Ответ на: комментарий от anonymous

> Первые версии Лиспа работали близко к железу

Какие "первые версии"? Lisp 1.5? Не исрользовали его для системного программирования, AFAIK.

> и были своего рода ассемблером

"Своего рода", я плакал. Все ЯВУ - "своего рода" ассемблеры. Для Smalltalk, Pascal, Java, Python - даже машины есть (виртуальные, правда).

> Common Lisp - это фактически оперционная система.

И Java тоже. И Smalltalk.

> Вплоть до написания драйверов :)

Не подскажешь, как там MMIO делается? DMA? Как прерываниями управлять? :-P

> BitC тоже лисп

Не Лисп это ни разу, только синтаксис похож. Но спорить не стану.

> типизация, объекты и прочая лабудень при необходимости добавляется макросами

Статическая типизаци - макросами? С этого места, пожалуйста, подробнее. Примеры есть? А то что-то мне кажется, что это то же самое, что сказать: "В Си можно добавить лямбды средствами Си" (ага, дописать написанный на Си компилятор).

tailgunner ★★★★★
()
Ответ на: комментарий от CrazyPit

По-моему, это хобби-проект в стадии клинической смерти :(

tailgunner ★★★★★
()
Ответ на: комментарий от yyk

> Познакомился, но "плюсов" не видишь (кое-что - не в счёт)? "Не верю" :) Ну я тоже сижу в офисе под офтопиком - судьба такая.

Почему? Плюсы вижу. CLOS это клево, да и "местами функциональное" программирование - это удобно. Просто нет никакой связи между теми концепциями, которые реализованы в CL, и собственно CL. Я все то же самое могу и на перле делать, в синтаксисе, который мне ближе и роднее.

А по поводу пропаганды - судя по последнему абзацу, LISP для тебя - произведение искусства, которое не ценят и лапают грязными руками. Ну, ээ, это твои проблемы.

anonymous
()
Ответ на: комментарий от anonymous

> очему? Плюсы вижу. CLOS это клево, да и "местами функциональное" программирование - это удобно.

Макры намеренно забыл? Их ты на чём будешь делать? Да и не уверен я - CLOS c MOP-ом точно на перле повторишь? CLSQL видел? И это сделаешь? (это я про readtable) И на что это всё вместе будет похоже? :)

> А по поводу пропаганды -...

Был несколько неправ - каюсь :) Хотя это был стёб с подколом: "от противного" - ну не хотят лапать как не расписывай, вот и подумал - может хоть запретный плод будет сладок?... :) А раз ты не распознал, значит затея удалась ;)

yyk ★★★★★
()
Ответ на: комментарий от tailgunner

> А Пол Грэм писал, как он заработал на Лиспе - и где очередь?

Ну, это очень уникальная ситуация - повторение невозможно :)

> Понимаешь ли, доверие спецу-практику, особенно практику в близкой тебе области, куда выше, чем к просто "Тебе просто предлагают поглубже узнать. Авось и пригодиться".

Да не об этом я. Автора статьи многое не устраивало в его работе, и он отправился на поиски решений своих проблем. А найденное его воодушевило на написание статьи. Но статья не поможет тем, кто не собирается ничего искать/иенять. А кто собирается - всё равно пойдёт своим путём, пусть и с поправкой на ветер.

Частично по-этому я чуть раньше и "окрысился": если вы не знаете, зачем вам это - вам это не надо :)

yyk ★★★★★
()
Ответ на: комментарий от yyk

> Ну, это очень уникальная ситуация - повторение невозможно :)

Всё возможно, если ты хакер уровня Пола Грэма. :)

ero-sennin ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.