Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > LISP > А зря думаете, что лиспу - место в "красной книге"


Автор: Andrey1 16.11.2004, 19:36
С повышением производительности компьютеров акцент все больше смещается в сторону интерпретируемых языков программирования. Думаю, что время лиспа не уходит, а наоборот - настает. Мода на языки типа Perl - приходит и уходит, а лиспом, как пользовались, так и пользуются. Причем пользуются не любители, а профессионалы.

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

Для лиспа - это все есть, причем даже в несколько реализациях. Достаточно назвать (X)emacs lisp и common lisp (clisp, cmu lisp, gcl, sbcl, Allegro CL, LispWorks, ...).

Ссылки по ресурсам по common lisp'у:

http://www.cliki.net/index
http://clocc.sourceforge.net/
http://www.lisp.org/alu/home

Да, и, наконец, не нада забывать, что лисп - это язык "искусственного интеллекта" :-).
Об этом очень хорошо написано тут:
http://dejrgris.ruweb.net/files/lisp1.djvu http://dejrgris.ruweb.net/files/lisp2.djvu (http://progz.ru/forum/viewtopic.php?t=3246)


Автор: Secandr 16.11.2004, 22:00
Красная книга - это не вымирающие языки, а языки по которым мало сообщений на форуме smile

Автор: sergejzr 16.11.2004, 22:04
Andrey1, очень рад, что на форуме появился любитель Лиспа smile
Пока он попал в красную книгу исключительно потому, что, как правильно сказал Secandr, сообщений мало. Может быть с Вашей помощью раздел "проснётся"?
smile

Автор: Sardar 17.11.2004, 01:26
Andrey1 ну Perl и Lisp сравнивать не нужно, у каждого свои задачи smile

Пробовал писать на Lisp'e и Haskell, сложная наука...

Автор: Andrey1 17.11.2004, 19:34
Цитата(Sardar @ 17.11.2004, 01:26)
Andrey1, ну Perl и Lisp сравнивать не нужно, у каждого свои задачи


Ну почему же... Для системных скриптов лисп можно использовать также как и Перл. А regexp'ы сейчас есть везде. А почему именно на Перле клева писать сайты, я еще не понял (если забыть про модули Перла).

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



Андрей

Автор: Sardar 17.11.2004, 20:51
Цитата(Andrey1 @ 17.11.2004, 18:34)
А почему именно на Перле клева писать сайты, я еще не понял

Ну пока никто этого не говорил, мне например легче наваять консольную прогу на PHP. Последнее время уделяю время Python, вызывает разностороние чувства... но это мощная среда.

А почему бы тебе не запостить какой нибудь не сложный но функциональный пример проги, мы бы заценили smile

Пусть это будет не быстрая сортировкав 3 строчки, а что то реальное. Я например видел игрушки на Clean(тоже функциональный язык), выглядели очень даже ничего smile

Или реши вот эту задачку: http://forum.vingrad.ru/index.php?showtopic=34156&st=0&unread=#entry258769
Думаю на функциональном языке это будет легко.

Автор: Girder 17.11.2004, 21:42
Цитата(Sardar @ 17.11.2004, 20:51)
А почему бы тебе не запостить какой нибудь не сложный но функциональный пример проги, мы бы заценили
Sardar я где то постил пример во флейме... поищи.

Писал на AutoLisp-е много, но: язык конечно мощный... гибкий... как не странно простой по своей сути... одно плохо - ТОРМОЗ.

Цитата(Andrey1 @ 16.11.2004, 19:36)
Да, и, наконец, не нада забывать, что лисп - это язык "искусственного интеллекта" :-).
Лет так 8 назад потребовалось мне начать изучать Lisp, достал книгу и в самом начале тоже прочитал енто высказывание и ходил гордился, всем расказывал smile но потом пришло разочарование... нашел ответ... по чему так пишут. Где-то в середине книги, было написанно что-то типо того smile :
Цитата
самое большое преимущество языка Lisp - это возможность рекурсивных вызовов, как следствии построения очень компактных многофункционально-сложных кодов, что определило его дальнейшее использования для ИИ
PS: Даже в то время енто уже было не актуально! Видно авторы кроме Lisp-а ни чего... не знают... smile

Автор: Sardar 17.11.2004, 22:22
Girder не совсем, главная фича функциональных языков это то, что работа функции зависит только от переданных аргументов, никакие внешние переменные не меняются, вообще функция ничего изменить не может, только вернуть какой то новый результат(список).
В результате не зависим от порядка вызовов функций, т.е. всё можно исполнять паралельно(где то в сети встречал опровержение этого утверждения). Теперь можно задать связи между функциями, которые будут реакциями нашего ИИ и понеслась smile

Автор: Girder 18.11.2004, 00:12
Sardar кто спорит... smile , но я не об этом... smile

Автор: Secandr 18.11.2004, 09:20
Цитата(Girder @ 17.11.2004, 22:42)
Писал на AutoLisp-е много, но: язык конечно мощный... гибкий... как не странно простой по своей сути... одно плохо - ТОРМОЗ

А что значит тормоз?

Автор: Ignat 19.11.2004, 13:46
Цитата(Secandr @ 16.11.2004, 22:00)
Красная книга - это не вымирающие языки, а языки по которым мало сообщений на форуме

Вымирающие языки планируется поместить в раздел "Уголок некрофила" smile

Автор: Girder 20.11.2004, 20:27
Цитата(Secandr @ 18.11.2004, 09:20)
А что значит тормоз?
Енто я про компиляторы для AutoLisp smile - из под них выходит готовое приложение... которое работает как черепаха... smile

Автор: Andrey1 19.2.2005, 16:56
Подтверждение того, что "clisp succeeds": http://www.podval.org/~sds/tool.html

Автор: Sardar 19.2.2005, 17:30
Цитата
Java Is Dead - Buried Under Its Own Hype

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

Автор: Domestic Cat 19.2.2005, 20:14
Цитата
that Java is dead as an open hardware-independent development platform.


smile smile smile

Я бы сказал так: дилетантский сайтик, обновленный полгода назад. Ну и как там Lost In the Sea of Parenthesis саксидс? smile

Автор: Andrey1 23.2.2005, 23:07
Я имел ввиду раздел "Performance". Я согласен почти со всем, что там написано и ламером себя не считаю.

Цитата(Sardar @ 19.2.2005, 17:30)
Нет плохих языков, есть глупые люди.

Есть языки под разные цели. А есть языки, которые хороши для решения почти всех типов задач. C.LISP - один из таких языков (который мне кажется наиболее продвинутым). Оказалось, что есть люди с такими же убеждениями!

Автор: LSD 27.2.2005, 20:47
У функциональных языков есть один недостаток, они требуют серьезного подхода к изучению.
Мы в институте изучали Pascal и ML, и мне волею судеб smile , приходилось писать программы и объяснять их половине нашей группы. И я могу сказать, что ML давался людям значительно тяжелее чем тот же Pascal.
Хотя лично мне ML нравится, да и вообще функциональные языки!

Автор: Гость_dem 8.3.2005, 18:58
Сам Пол Грехем рекомендует использовать.... Python, как самых близкий по идеологии к LISP. Даже не Ruby or Sheme.

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

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

Автор: Domestic Cat 8.3.2005, 19:07
Цитата
Вот тока под "обычные" задачи не применим в виду не совместимости с бронеголовием руководителей проектов. Боятся что ты слабаешь и свалишь, а поддержать этот код будет некому. Вот и набирают жабоделов либо сисишнков.


smile
Добавлено @ 19:14
Почeму-тo каждый ламeр с глубоким незнанием хотя бы той жe Javа, стремится называть ее "жабой" и думает что этo круто. Дык ламерство это, господа. Слюни и сопли по поводу лиспа можете разводить сколько угодно, но зачем ложить нa других людей - непонятно. Хотя у вас есть хороший пример - грем (с маленькой буквы).

Автор: Lisper 16.4.2005, 00:09
Ну кто сказал, что Лисп (Common Lisp) функциональный язык ?

Код

(loop  with x = 0
          for i from 0 below 5 do (setf x (+ i x)))


Сплошная императивщина smile

Про лисповские макры здесь почему-то мало говорят. Мне вот интересно, как пишущие на Java избегают стереотипно повторяющегося кода ? Без средств метапрограммирования действительно легче ?

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

Про интерпретируемые языки рядом с Лиспом говорить не стоит smile он вполне может уделывать Си (CMUCL с библиотекой разбора регулярных выражений CL-PPCRE на определенных тестах уделывает PERL), например за счет перкомпиляции запросов в маш.код на лету.

IMHO у Common Lisp проблемы социальные, а не технические, например как бороться с творчеством в большом коллективе? И решения задачи есть: можно поручить крутым лисперам писать некий спец. язык для решения задачи, а множеству кодеров с меньшей квалификацией - решать на нем конечную задачу. Им уже не надо будет сражаться с исходным языком, они будут в основном думать о предметной области.

Например некий спец. язык для отслеживания объектов в видеопотоке
Код

(track-objects ((name area)) on stream-1
                     where (> Area 50)
                     do (display-status (format nil "Object ~A has area=~A" Name Size)))


IMHO это более выразительно чем куча вызовов методов и т.п., позволяет описать задачу почти полностью декларативно.

Автор: semka 29.3.2007, 12:55
Цитата(Girder @  17.11.2004,  22:42)
Писал на AutoLisp-е много, но: язык конечно мощный... гибкий... как не странно простой по своей сути... одно плохо - ТОРМОЗ


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

Автор: cooper123 24.9.2007, 19:29
Цитата(semka @ 29.3.2007,  12:55)
Цитата(Girder @  17.11.2004,  22:42)
Писал на AutoLisp-е много, но: язык конечно мощный... гибкий... как не странно простой по своей сути... одно плохо - ТОРМОЗ


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

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

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

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

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

Автор: setq 24.9.2007, 22:32
По-моему, тоже  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)