Форум программистов, компьютерный форум, киберфорум
Наши страницы

Lisp

Войти
Регистрация
Восстановить пароль
 
 
x33x
42 / 8 / 0
Регистрация: 27.01.2016
Сообщений: 9
#1

Почему Лисп не стал популярным языком программирования? - Lisp

10.05.2017, 10:01. Просмотров 4928. Ответов 197
Метки нет (Все метки)

Спасибо большое за помощь!

Как итог мне надо было написать макрос чтения, который из конструкции вида #[1 11] делал список (2 3 5 7 11), при этом если начальное или конечное значение во входных данных отрицательное, то должно выводиться nil.
Макрос вроде получился (во всяком случае проверки по значениям #[1 11]; #[-7 11]; #[1 -7] выдают то, что мне требовалось).

Ещё раз спасибо!

З.Ы. Интересный, конечно, язык Lisp. Только не понимаю почему он несильно популярный и мало известных продуктов на нём написано?
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.05.2017, 10:01
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Почему Лисп не стал популярным языком программирования? (Lisp):

Firefox 3.5 стал самым популярным в мире - Безопасность
Браузер Firefox 3.5 от Mozilla впервые стал самым популярным в мире – он обошел по доле на мировом рынке Internet Explorer 7 от компании...

Нужно определиться с языком программирования - .NET
Доброй ночи, друзья! Помогите, пожалуйста, определиться с выбором языка программирования! Нужен функциональный (возможность кодить...

Нужно определиться с языком программирования - C++
Доброй ночи, друзья! Помогите, пожалуйста, определиться с выбором языка программирования! Нужен функциональный (возможность кодить...

Является ли html языком программирования? - HTML, CSS
Собственно вопрос в заголовке озвучен. Насколько я помню, когда меня учили языком программирования это не называли. А теперь полазил по...

Разве является Delphi языком программирования? - Delphi
Когда учился, нам четко втемяшили, что Delphi это среда разработки, использующая язык Pascal. А тут вот наткнулся на статью:...

Является ли Delphi современным алгоритмическим языком программирования? - Delphi
Здравствуйте! Скажите пожалуйста, является ли Delphi современным алгоритмическим языком программирования?

197
Catstail
Модератор
23040 / 11407 / 1859
Регистрация: 12.02.2012
Сообщений: 18,668
10.05.2017, 19:57 #16
Почему Лисп не стал мейнстримовым? Можно назвать много причин... Например: Лисп хорош для сложных рекурсивных алгоритмов, а первые программы на ЭВМ носили чисто вычислительный характер. Сформировались поколения программистов, которые только вычисляли. А вычисления - не сильная сторона Лиспа. Потом эти поколения стали задавать тон. Императивный стиль стал стандартом де факто. Помню, лет 30 назад от рекурсии шарахались, как чёрт от ладана. Является ли императивный стиль более близким нашему мышлению, чем логический и функциональный? Не знаю, как проверить, когда все поголовно "инфицированы императивщиной"? В общем корни вопроса - в изучении мышления.
3
vlisp
388 / 354 / 69
Регистрация: 10.08.2015
Сообщений: 1,060
Завершенные тесты: 1
11.05.2017, 01:23 #17
Давайте подведем итоги:
1) нет никакого лиспа, а есть разрозненное семейство языков, напоминающих классический лисп, но им не являющееся.
2) Более того, если понимать под лиспом Common LISP, то нужно отталкиваться от реализаций, а не от самого языка и большинство бесплатных реализаций не имеют из коробки функционала для работы с графическим интерфейсом (уже это ставит под вопрос утверждение про "язык общего назначения")
3) Отсутствие информации. Откройте CLHS и вы не найдете ничего, что вам поможет написать даже элементарную игрушку типа тетриса или судоку. Более того, нет ни одной нормальной книги по лиспу, где разбирались бы вопросы прикладного программирования. Есть pcl, но он как раз только добавляет отчаяния... Такое чувство, и я уже об этом говорил, что их писали люди далекие от реальности, погруженные в свои никому непонятные проблемы. Эти проблемы называются back-end. back-end - это удел скриптовых языков. Без front-end, язык никогда не станет популярным.
4) Отсутствие среды разработки. Не знаю, чем нужно было думать, чтоб не создать нормальное бесплатное средство разработки, как например Лазарус, CodeBlocks, SharpDevelop и т.д. Ну вот есть компилятор digital mars c++ кто-то помнит о нем?
5) Отсутствие библиотек. Библиотеки в CL как и в с++ - сферический конь в вакууме. Они вроде есть, но их нужно скачать, установить...
6) Как итог 3, 4, 5 пунктов. Это какой-то садомазохизм мне кажется. компилятор качай отсюда, среду качай оттуда, библиотеки вообще сам ищи... потом еще попробуй это настрой... Такой конструктор для новичков - адская боль, а никак не скобочный синтаксис
7) Вся инфа по библиотекам на английском, как говорят хочешь жить, умей вертеться.
8) Есть диалекты, в которых уже реализованы танцы с бубном. например, clojure или newlisp используют java. Как по мне это жульничество. Да и с CL они несовместимы.
9) Отсутствие энтузиазмов. Длительное игнорирование конъюнктуры рынка, сделало CL аутсайдером в современном мире разработки ПО. Впрочем он никогда и не претендовал на лидирующие роли. Недавно лисп выдворили из престижного американского университета, хотя питон, как по мне, - тот же геморрой. Отсутствие библиотек из коробки никак не добавляет энтузиазизма.
10) Касаемо HomeLisp, здесь целый букет радости и боли для новичка. Тут можно создавать диалоги прям из коробки, "ничего не подключая". НО:
-- отсутствие нормального репозитория
-- отсутствие нормального IDE
-- отсутствие нормальной справки
-- бардак в папке с примерами
-- бардак в папке с библиотеками, как по мне, наименование библиотек разными именами не оправдано. Зачем каждый раз менять в коде название библиотеки?
-- отсутствие возможности загружать несколько библиотек на старте.
делают жизнь новичка наполненной яркими красками...

Для сравнения первую программу в Лазарус можно написать где-то через полчаса после того как вы узнали о его существовании. Почти тоже самое с SharpDevelop. С Лиспом так не получится, так как лисп это боль и разочарование.

Насчет профдеформации... Профдеформация - это состояние при котором программист мыслит приобретенными штампами, стереотипами и логическими моделями. Яркий пример - "формошлепство" Многие программисты не умеют создавать графический интерфейс пользователя. Я встречал профессиональных разработчиков, которые специально делали интерфейс неудобным, потом переделывали его и ставили это себе в заслугу. На самом деле формошлепство - это не так просто. Более того, это не преподают в университетах, так что научиться можно только сравнивая. Именно поэтому формошлепство считается работой низкого уровня... Конечно, лучше же в консоли за 50-60 строк.

Здесь я часто встречаю ситуацию, когда люди путают программный код и программный продукт. Но это далеко не эквивалентные вещи. Разработка простых логических игр - отличный способ попрактиковаться в программировании. Конечно должна быть какая-то основа, но надо четко понимать, зачем изучают те или иные вещи. Просто сравните ветки лиспа и ветку си шарпа. А куда деваются те, кто клянчат решения в ветках QB, TP, LISP, С++. А посмотрите как выглядят сайты, где можно, скачать запчасти для лиспа. Когда на них заходишь ощущаешь себя пришельцем из будущего...

Можно конечно возразить в духе "но у лиспа ж есть мощные макросы". Да. Но кому интересен back-end который крутится на серверах не пойми где... Да и часто вы пользуетесь макросами?

Цитата Сообщение от nullxdth Посмотреть сообщение
А почему именно такое ограничение?
Просто такая игра на c++ будет весить максимум 5 мб, так что двойная фора.

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

зызы. catstail, если вам не безразлично, какое мнение о вашем детище может возникнуть у новичка, наведите порядок в папке с примерами. Особенно, там где вызываются диалоги, потому что, ну, так нельзя, при всем уважении... если создаете диалог, его надо уничтожить, если открываете диалог, дайте пользователю его закрыть... уберите хлам и каталогизируйте примеры по темам и наполните их комментариями. Папка с примерами - это одно из самых важных составляющих программного продукта. Это вещь от которой загораются глаза и роятся идеи...
0
helter
Эксперт по математике/физике
3678 / 2705 / 277
Регистрация: 12.03.2013
Сообщений: 4,969
11.05.2017, 04:08 #18
Цитата Сообщение от vlisp Посмотреть сообщение
Давайте подведем итоги: ...
Окей.
0
nullxdth
1267 / 477 / 43
Регистрация: 12.03.2013
Сообщений: 2,223
11.05.2017, 10:06 #19
Цитата Сообщение от vlisp Посмотреть сообщение
нет никакого лиспа, а есть разрозненное семейство языков, напоминающих классический лисп, но им не являющееся.
Что такое классический Lisp? Перволисп от Маккарти?
Цитата Сообщение от vlisp Посмотреть сообщение
Более того, если понимать под лиспом Common LISP, то нужно отталкиваться от реализаций, а не от самого языка
Как раз таки наоборот, одна из сильный сторон CL - это стандарт. В связи с этим многие библиотеки делаются переносимыми между реализациями и платформами.
Цитата Сообщение от vlisp Посмотреть сообщение
большинство бесплатных реализаций не имеют из коробки функционала для работы с графическим интерфейсом (уже это ставит под вопрос утверждение про "язык общего назначения")
Конечно не имеют. UI - библиотечный вопрос, не языковой.

Добавлено через 3 минуты
Цитата Сообщение от vlisp Посмотреть сообщение
Отсутствие информации.
Информации более чем достаточно.
Цитата Сообщение от vlisp Посмотреть сообщение
Откройте CLHS и вы не найдете ничего, что вам поможет написать даже элементарную игрушку типа тетриса или судоку.
Хм. А вы хотели в справочнике созданному на основе стандарта языка найти пример реализации тетриса или судоку?

Добавлено через 1 минуту
Цитата Сообщение от vlisp Посмотреть сообщение
Более того, нет ни одной нормальной книги по лиспу, где разбирались бы вопросы прикладного программирования.
PCL, PAIP. Прикладнее некуда

Добавлено через 3 минуты
Цитата Сообщение от vlisp Посмотреть сообщение
Есть pcl, но он как раз только добавляет отчаяния... Такое чувство, и я уже об этом говорил, что их писали люди далекие от реальности, погруженные в свои никому непонятные проблемы.
Что значит непонятные? Какая практика в PCL тебе не понятна? Проблемы описанные в PCL типовые и абсолютно ясные. Зейбель как раз таки приземлённый практик. Если я не ошибаюсь, он долгое время писал на Java.

Добавлено через 2 минуты
Цитата Сообщение от vlisp Посмотреть сообщение
Эти проблемы называются back-end. back-end - это удел скриптовых языков.


Добавлено через 1 минуту
Цитата Сообщение от vlisp Посмотреть сообщение
Отсутствие среды разработки.
Это не правда. Emacs + slime непревзойдён.

Добавлено через 2 минуты
Цитата Сообщение от vlisp Посмотреть сообщение
Отсутствие библиотек. Библиотеки в CL как и в с++ - сферический конь в вакууме. Они вроде есть, но их нужно скачать, установить...
Quicklisp. В отличие от C++, Lisp сообщество (а точнее Xach), сделали таки централизованный package manager, с которым все согласны

Добавлено через 3 минуты
Цитата Сообщение от vlisp Посмотреть сообщение
Длительное игнорирование конъюнктуры рынка, сделало CL аутсайдером в современном мире разработки ПО.
Никто ничего не игнорирует. Просто Lisp-еров немного. Всё не успеть.

Добавлено через 2 минуты
Цитата Сообщение от vlisp Посмотреть сообщение
Отсутствие библиотек из коробки никак не добавляет энтузиазизма.
Это ты о Python что-ли? Там библиотек поставляемых в коробке больше, чем библиотек в Quicklisp

Добавлено через 3 минуты
Цитата Сообщение от vlisp Посмотреть сообщение
Яркий пример - "формошлепство" Многие программисты не умеют создавать графический интерфейс пользователя.
Тут я согласен. Писать UI - задача не простая. Справедливости ради, самая интересная часть - UX дизайн. Формошлёпством обычно называют непосредственно реализацию, что на самом деле не всегда интересно.
3
Shamil1
Модератор
1822 / 1185 / 225
Регистрация: 26.03.2015
Сообщений: 4,356
11.05.2017, 11:48 #20
Цитата Сообщение от nullxdth Посмотреть сообщение
Это не правда. Emacs + slime непревзойдён.
Нужна такая IDE, чтобы запустил инсталятор, пару раз кликнул Ок - и всё установилось.
Потом открыл Справку или у спросил у гугла "как создать виндоуз приложение", а там написано по шагам "в меню Файл выберете пункт Новый Проект, в открывшемся окне..." и так далее.
Иначе это не для новичков.

Цитата Сообщение от nullxdth Посмотреть сообщение
Информации более чем достаточно.
Предположим, я ничего не знаю про Лисп. Где мне найти инструкции (подробные и с картинками), как создать простое приложение с пользовательским интерфейсом? (настольное или веб)
Что-нибудь типа https://docs.microsoft.com/en-us/asp...etting-started
1
vlisp
388 / 354 / 69
Регистрация: 10.08.2015
Сообщений: 1,060
Завершенные тесты: 1
11.05.2017, 12:21 #21
Цитата Сообщение от nullxdth Посмотреть сообщение
Это не правда. Emacs + slime непревзойдён.
Во-первых, его нечем превосходить
Во, во-вторых
- cкачать и установить sbcl
- cкачать и установить emacs
- cкачать и установить slime
- cкачать и установить quicklisp
- cкачать и установить cl-opengl
- cкачать и установить ...
не слишком ли много телодвижений?
1
helter
Эксперт по математике/физике
3678 / 2705 / 277
Регистрация: 12.03.2013
Сообщений: 4,969
11.05.2017, 15:31 #22
Цитата Сообщение от Shamil1 Посмотреть сообщение
Нужна такая IDE, чтобы запустил инсталятор, пару раз кликнул Ок - и всё установилось.
Иногда пилят такое. Раньше был LispBox, теперь Portacle. Упаковка из настроенного емакса с лиспом и некоторыми библиотеками. Правда, кнопочки «создать проект» там нет. Для минимального проекта надо писать в репле (ql:quickload "quickproject") и (quickproject:make-project). Но это ничего, мы же все любим консоли. А фреймворк caveman2 ЕМНИП создаёт довольно большу рыбу веб-проекта, можно сразу начинать по чуть-чуть кодить и смотреть, что получается.

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

Цитата Сообщение от Shamil1 Посмотреть сообщение
Предположим, я ничего не знаю про Лисп. Где мне найти инструкции (подробные и с картинками), как создать простое приложение с пользовательским интерфейсом? (настольное или веб)
Мм... В гугле? По запросам common lisp web application tutorial и commonqt tutorial кое-что гуглится. Но обычно такие туториалы предполагают хотя бы начальное знакомство с лиспом, что логично. А CommonQt предполагает ещё и знакомство с Qt,что печально, но тоже логично. Вообще, я не уверен, что начальные туториалы по какому-нибудь питону начинают с PyQt или даже Tkinter. Люди как-то понимают, что одно дело ― язык, а другое ― графика, которая представляет собой внешние тулкиты, привязанные через FFI.

Если бы я собирался вести коммерческую разработку под виндоус, я бы наверно, аллегро цл, купил. Думаю, у них и графика из коробки, и кнопка «создать проект» имеется.
3
Catstail
Модератор
23040 / 11407 / 1859
Регистрация: 12.02.2012
Сообщений: 18,668
11.05.2017, 16:19 #23
Цитата Сообщение от vlisp Посмотреть сообщение
отсутствие нормальной справки
- ну это Вы сильно погорячились. Справка есть. Не хуже, чем HyperSpec (с учетом того, что HomeLisp реализует подмножество CL)

Цитата Сообщение от vlisp Посмотреть сообщение
бардак в папке с библиотеками, как по мне, наименование библиотек разными именами не оправдано. Зачем каждый раз менять в коде название библиотеки?
- актуальна одна версия библиотеки (последняя). Остальные можно удалить.

Цитата Сообщение от vlisp Посмотреть сообщение
отсутствие нормального IDE
- а чем IDE HomeLisp, по большому счету, уступает IDE LispWorks (к примеру)? Все основные функции (с учетом соотнесения масштабов Common Lisp - HomeLisp) имеются. Только экранного дизайнера у LW нет. Никакого. Поэтому замечание "отсутствие нормального IDE" можно отнести скорее к другим реализациям. Да и само понятие "нормальное IDE" - есть нечетко определенное оценочное суждение.

А с остальными замечаниями можно согласиться - спасибо за критику.
1
_sg
3642 / 3440 / 229
Регистрация: 12.05.2012
Сообщений: 2,392
11.05.2017, 16:24 #24
http://zeniv.linux.org.uk/~ober/clb/
1
Catstail
Модератор
23040 / 11407 / 1859
Регистрация: 12.02.2012
Сообщений: 18,668
11.05.2017, 16:25 #25
Цитата Сообщение от vlisp Посмотреть сообщение
Папка с примерами - это одно из самых важных составляющих программного продукта. Это вещь от которой загораются глаза и роятся идеи...
- признаю справедливость этого замечания. Но я-то привык начинать с документации. А в документации все описано подробно и с примерами: здесь и здесь.
1
_sg
3642 / 3440 / 229
Регистрация: 12.05.2012
Сообщений: 2,392
11.05.2017, 17:44 #26
Цитата Сообщение от helter Посмотреть сообщение
Раньше был LispBox, теперь Portacle
+ LispStick! http://www.iqool.de/lispstick.html

Добавлено через 11 минут
+ http://quickdocs.org

Добавлено через 1 час 4 минуты
+ Lisp Cabinet http://lispcabinet.sourceforge.net
3
Lambdik
1033 / 927 / 104
Регистрация: 04.11.2012
Сообщений: 961
Записей в блоге: 2
11.05.2017, 19:06 #27
Цитата Сообщение от x33x Посмотреть сообщение
З.Ы. Интересный, конечно, язык Lisp. Только не понимаю почему он несильно популярный и мало известных продуктов на нём написано?
Скажу то что думаю. Лисп "отстал" из-за ООП. Хоть он в лиспе и есть, но тут динамическая типизация. А статическая вроде как лучше подходит. Таким образом если всё равно "рулит" ООП, то лучше создать новый язык специально под эту парадигму, что и было проделано. Зато лисп хорошо подходит для науки, математики, аналитики, диффуров, такое.
1
rdt
185 / 152 / 17
Регистрация: 18.12.2015
Сообщений: 178
11.05.2017, 21:56 #28
Хотел было написать, что, благодаря quicklisp, библиотеки ставятся с полпинка, так ведь нет. У меня, почему-то, не заработал ltk; не установился cltcl; начал требовать кучу dll-ок cl-cffi-gtk. Сразу признаюсь, что я не пытался разобраться: пытаюсь ставить, запускаю учебный пример, не работает, иду дальше. Полагаю, что если бы я проверял это под Linux и SBCL, то что-нибудь заработало, но у меня WinXP и CCL.

Зато, вот, bordeaux-threads и bt-semaphore поставились без проблем и удивили простотой использования. Да, документация на английском, но там всего где-то страница текста.

Что касается размера дистрибутива, то я бы побоялся поставить программу с функциональностью “Hello, World!” и размером 20 МБ – а, вдруг, троян в комплекте? Но, если подходить рационально (трояну столько места не потребовалось бы), то между, к примеру, 4 КБ и 20 МБ разница всего 20 МБ – сущая мелочь для современных компьютеров.

Не по теме:

P.S. Лучшая, известная мне, программа для решения судоку – SimpleSudoku, которую, явно, не час писали, занимает всего 800 КБ в архиве. Наверно, если взять свежую версию Delphi и создать пустую форму, то будет, уже, больше мегабайта. К сожалению, сейчас сделать вменяемого размера exe-шник довольно проблематично (конкретно для Delphi есть библиотека KOL, но, для удобства её использования, надо использовать Delphi не старше 7 версии).

0
vlisp
388 / 354 / 69
Регистрация: 10.08.2015
Сообщений: 1,060
Завершенные тесты: 1
11.05.2017, 22:08 #29
Цитата Сообщение от Catstail Посмотреть сообщение
ну это Вы сильно погорячились
наоборот, я стараюсь не касаться этой темы, ведь это дело вкуса. Но в качестве примера я могу посоветовать посмотреть CLHS из комплекта поставки LispIDE. там есть и содержание, и индекс и поиск, это весьма удобно. Вообще при разработке справочной системы следует придерживаться некоторых правил. Например наличие содержания is strongly recommended. Первый пункт справки - страничка приветствия, где пользователю рассказывают как разработчики рады и благодарны пользователю за выбор его продукта... второе - что нового в новой версии "этого" замечательного продукта" Затем лицензионное соглашение. Дальше руководство пользователя и наконец справочник по функциям. У вас же как-то это все слеплено, как будто это книга, но справочная система - это не книга. Дальше больше, ну ладно я нашел раздел про создание диалогов, и даже с примерами кода, я не понимаю что значат эти слова, но я беру код, копирую его вставляю в "ИДЭ", загружаю код и получаю диалог, УРА! Но проблема в том, что диалог нельзя убрать с экрана, а "ИДЭ" просто перестает реагировать... и ничего не остается делать, как открывать диспетчер задач и убивать процесс, матерясь в монитор, это в лучшем случае... А все потому что в справке не написано то, о чем я писал выше... Для новичка - это как пощечина.

Кстати, вроде в sbcl исправили багу, из-за которой LispIDE его не воспринимала, но возникла другая проблема, Почему-то sbcl не умеет открывать сразу несколько файлов... Баги - тоже не способствуют популярности... а так как обратной связи мало. то это как замкнутый круг
0
helter
Эксперт по математике/физике
3678 / 2705 / 277
Регистрация: 12.03.2013
Сообщений: 4,969
11.05.2017, 22:09 #30
Цитата Сообщение от rdt Посмотреть сообщение
У меня, почему-то, не заработал ltk; не установился cltcl;
Цитата Сообщение от rdt Посмотреть сообщение
WinXP
Наивный вопрос: а tcl/tk в системе имелись и сами по себе работали?
0
11.05.2017, 22:09
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.05.2017, 22:09
Привет! Вот еще темы с ответами:

Си является языком программирования низкого уровня или высокого? - C (СИ)
у меня вопрос , си является низкий уровень или высокий уровень языка программирования ?

Почему Qt стал платным? - C++ Qt
Привет. Только что посмотрел, появились платные версии Qt (хотя раньше вроде были). Сейчас Qt управляет Digia? Очень жаль, так скоро и...

Почему стал ссылатся на gosredirector - Удаление вирусов
Всем привет, у меня сейчас все сетевые программы стали ссылатся на gosredirector и вот даже не знаю как избавится от этого, все...

Почему я не стал фанатом Хаскел - Haskell
Чуть было не стал. С подачи уважаемого _Ivana очень даже заинтересовался. Это ж надо какой искусственный интеллект! Ему говоришь два...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
30
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru