LINUX.ORG.RU

Преимущества лиспа на наглядных примерах


0

0

В литературе по лиспу довольно часто (обычно в предисловии) расписывают как крут лисп - позволяет "создавать язык программирования под конкретную задачу", существенно облегчает доработку имеющегося кода и т. д. А нет ли где-нибудь набора конкретных примеров, иллюстрирующих все эти преимущества? В стиле "вот задача, на c/python/что-то ещё она решается вот так, а на лиспе вот так"?

Хочется понять, действительно ли лисп так крут как его расписывают и стоит ли на его изучение тратить время...

★★

В Си нет натуральных дробей и больших чисел. Есть библиотека gmp, но то ли дело естественным образом два числа сложить, и совсем другое - вызывать для этого функцию. Плюс в никакой printf ещё и не влезет.

В Лиспе самая кошерная система исключений (трёхуровневая).

В Лиспе есть встроенный eval: можно взять строку с кодом и выполнить его на ходу.

В Лиспе одна из самых кошерных систем ООП. Для объектной части поддерживается метаобъектный протокол, обеспечивающий интроспекцию в самом полном виде. Для остальной части языка стандартизированной интроспекции нет, но свой функционал всё равно присутствует, и унифицированный доступ к нему осуществляется через библиотечку.

В Лиспе очень мало синтаксиса, практически все конструкции строятся по одинаковому принципу (мешаем, мешаем, мешаем, в начало ставим вызов функции, и всё заворачиваем в скобочки :). В природе наиболее устойчивыми являются системы с наименьшей энтропией.

Для Лиспа есть свободный оптимизирующий компилятор с 30-летней историей разработки. Код получается медленнее сишного, но не на много.

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

> В природе наиболее устойчивыми являются системы с наименьшей энтропией.

сомневаюсь, что это применимо к программированию.

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

>В Лиспе есть встроенный eval: можно взять строку с кодом и выполнить его на ходу

то же самое можно сказать и про javascript...

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

> Применимо ко всему.

хорошо, если говорить об энтропии в программировании, то нужно учитывать человеческий фактор.

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

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

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

Если посмотреть на то, что у меня установлено на ноутбуке, то можно прийти к выводу, что

а) на яве и плюсах ничего в реальном мире не пишут;

б) все самые часто используемые вещи написаны на Лиспе;

Пункт "б" подтверждается фактом, что половина установленных в системе библиотек являются лисповыми :)

Наличие в мире очередного куска говна^W^W^W ещё одной торренто-качалки, написанной на популярном в массах языке, лично меня не колышет абсолютно.

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

>Применимо ко всему.

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

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

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

С точки зрения обычного человека программирование - это фантастика. Скобки - вопрос времени. Спросите у любого лиспера, видет ли он скобки? Ну да, вижу. Если их много или мало или не там стоят, т.е. синтаксическая ошибка.

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

> Смотря как посмотреть - все в природе стремится к увеличению энтропии - к хаосу, чтобы как можно больше иметь путей для достижения любого состояния - увеличение свободы, а это прямо противоположно твоему утверждению :)

Энтропия - количество пространства, по которому распределено определённое количество энергии. Если в языке А те же возможности, что и в языке Б размазанны на в 5 раз более объёмный синтаксис, то язык А хуже Б в 5 раз.

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

Смишно. На Лиспе-то много писали? :)

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

> с точки зрения обычного человека

Обычный человек своим ходом идёт из программирования вдаль.

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

> какие задачи решаете на лиспе, если не секрет?

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

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

> Если посмотреть на то, что у меня установлено на ноутбуке, то можно прийти к выводу, что
> а) на яве и плюсах ничего в реальном мире не пишут;
> б) все самые часто используемые вещи написаны на Лиспе; 

Ты всё-же прикрутил GRUB к Emacs???

one_more_hokum ★★★
()

Да к скобкам как раз быстро привыкаешь. Главное - правильные отступы и все ок.

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

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

>Энтропия - количество пространства, по которому распределено определённое количество энергии.

Это какое-то узкое определение причем о котором лично я никогда не слышал :) Энтропия в общем понимании - это мера неупорядоченности.

>Смишно. На Лиспе-то много писали? :)


Нет - потому что для меня в системном программировании он неприменим - ему там вообще нечего делать :)

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

> Это какое-то узкое определение причем о котором лично я никогда не слышал :) Энтропия в общем понимании - это мера неупорядоченности.

Да ладно, это термин из термодинамики. Обратная величина от энтальпии.

> Нет - потому что для меня в системном программировании он неприменим - ему там вообще нечего делать :)

Отлично. Какие тогда претензии к Лиспу, если вы с ним не работаете? :)

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

К лиспу - никаких :) В основном к людям которые серьезно ? заявляют
>Код получается медленнее сишного, но не на много.

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

>К лиспу - никаких :) В основном к людям которые серьезно ? заявляют

>>Код получается медленнее сишного, но не на много.

А что вас так удивляет?

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

>Если посмотреть на то, что у меня установлено на ноутбуке

а если посмотреть, что стоит у других?

>а) на яве и плюсах ничего в реальном мире не пишут;

нет, сынок, кеды - это фантастика =D

>б) все самые часто используемые вещи написаны на Лиспе;

примеры

>Пункт "б" подтверждается фактом, что половина установленных в системе библиотек являются лисповыми :)

список в студию

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

> а если посмотреть, что стоит у других?

Судя по скриншотам в галерее, половина ЛОРовцев - гламурные пидорасы. Ты хочешь, чтобы я тоже был таким? Я - нет.

> примеры

Emacs, у меня там почти всё.

> список в студию

http://www.cliki.net/index - у меня оттуда дофига чего. И не только оттуда.

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

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

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

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

И при чем тут преимущества языка к количеству прог установленных где-либо? Вон сколько мочи под видом пива в наших магазинах продают. Да вот это далеко не лучшее пиво и вообще не пиво.

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

Так это всего лишь средство выделиться из толпы ? Хех. А чем это отличается принципиально от гламурной пидарасни :)

imhotep
()

вот, кстати, один вопрос у меня есть к топикстартеру. а что такого страшного случится, если время на изучение ты таки потратишь, а пользы будет ноль? скажем иначе - на что такое полезное ты бы потратил это время в противном случае?

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

Какие-то странные выводы делают аналитики с ЛОР...

У меня Лисп начался со знакомства с Емаксом, потом просто подобрал себе подходящее окружение. Емакс привлёк свой мощью, недоступной в других редакторах.

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

>Какие-то странные выводы делают

Это не выводы - это ты открытым текстом об этом говоришь.

>У меня Лисп начался со знакомства с Емаксом, потом просто подобрал себе подходящее окружение.


Замечательно. Но зачем же тебе ВСЕ на лиспе ? :) Например сам увлекаюсь низкоуровневым программированием но никогда не понимал вот это
http://www.menuetos.net/

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

> Это не выводы - это ты открытым текстом об этом говоришь.

Где я это говорю?

> Замечательно. Но зачем же тебе ВСЕ на лиспе ? :)

А на чём надо?

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

> Да ты невменяем :) Прочитай свое же сообщение снизу вверх.

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

Так доступнее?

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

>Профита с них всё равно никакого.
>Так доступнее?


Тогда вали с unix - так доступнее ? Это же говнософт на говоноязыке по твоему определению. Разговоры об элитарности каких-то языков - это вообще узколобость.

imhotep
()

ИМХО абсолютно не крут, хотя интересен как "нечто другое". После изучения и extended-хелловорлдов надоел достаточно быстро.

mannaz
()
Ответ на: комментарий от val-amart

Да их все можно прочитать, по Коммон Лиспу литературы ведь мало :) PCL - хорошая книжка.

mv ★★★★★
()
Ответ на: комментарий от val-amart

будешь читать - про ошибки пиши в список рассылки или сам исправляй по ходу чтения :-)

ott ★★★★★
()

> Хочется понять, действительно ли лисп так крут как его расписывают и стоит ли на его изучение тратить время...

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

Шучу...

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

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

Си как риз ниразу не свобода с просто кучей ограничений.

ЗЫ мб пора уже придумать низкоуровневый скорее императивный, чем функ. язык взамен Си?

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

> ЗЫ мб пора уже придумать низкоуровневый скорее императивный, чем функ. язык взамен Си?

Попробовали уже - Cyclone. Умер маленьким :(

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

>Попробовали уже - Cyclone. Умер маленьким :(

да что вы заладили - умер, умер. нужен - берите, дорабатывайте, используйте

точно так же касательно BitC - ну забил на него Шапиро, ну так и что? спецификация что ли закрытая? или идеи патентованные?

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