Форум программистов, компьютерный форум, киберфорум
Наши страницы
Lisp
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.78/32: Рейтинг темы: голосов - 32, средняя оценка - 4.78
x33x
42 / 8 / 0
Регистрация: 27.01.2016
Сообщений: 9
1

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

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

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

Как итог мне надо было написать макрос чтения, который из конструкции вида #[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
Ответы с готовыми решениями:

Почему первый Лисп называют функциональным?
Да, функции как аргументы... но, там же вроде не было заморочек с переменными и...

Firefox 3.5 стал самым популярным в мире
Браузер Firefox 3.5 от Mozilla впервые стал самым популярным в мире – он обошел...

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

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

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

200
vlisp
471 / 439 / 105
Регистрация: 10.08.2015
Сообщений: 1,489
Завершенные тесты: 1
12.05.2017, 01:09 41
В общем я разобрался, иногда это достаточно сложно... Оказывается SBCL не хочет открывать файл на запись, если тот существует и нужно дописать пару костылей, чтоб заработало
0
helter
Эксперт по математике/физике
3778 / 2801 / 304
Регистрация: 12.03.2013
Сообщений: 5,144
12.05.2017, 02:31 42
CLHS Function OPEN
http://clhs.lisp.se/Body/f_open.htm
if-exists---one of :error, :new-version, :rename, :rename-and-delete, :overwrite, :append, :supersede, or nil. The default is :new-version if the version component of filespec is :newest, or :error otherwise.
Выделение моё. Лисп заботится о наших данных и не убивает их без спроса. А SBCL следует стандарту. Явное указание именованных аргументов ― это не костыли, это нормальная практика.

И я думаю, SBCL писал что-то типа «ошибка бла-бла, файл существует».
2
vlisp
471 / 439 / 105
Регистрация: 10.08.2015
Сообщений: 1,489
Завершенные тесты: 1
12.05.2017, 10:51 43
Цитата Сообщение от helter Посмотреть сообщение
И я думаю, SBCL писал что-то типа «ошибка бла-бла, файл существует».
да, логика понятна, но дело не в том даже, что можно было бы сделать по-нормальному, то есть чтоб работало по умолчанию и не противоречило здравому смыслу, а в том что в разных реализациях сделано по разному
0
Shamil1
Модератор
2121 / 1429 / 324
Регистрация: 26.03.2015
Сообщений: 5,174
12.05.2017, 14:22 44
Цитата Сообщение от helter Посмотреть сообщение
Для минимального проекта надо писать в репле (ql:quickload "quickproject") и (quickproject:make-project).
То есть, магия? Чтобы начать работу с пакетом, нужно применить заклинание, которое я должен был выучить где-нибудь в другом месте (то есть, шансы, что я его знаю практически нулевые).
(Кстати, кнопка "Создать проект" там есть... только там дальше начинается такая же непонятная магия.)

Цитата Сообщение от helter Посмотреть сообщение
По запросам common lisp web application tutorial и commonqt tutorial кое-что гуглится.
Я кликнул первые несколько ссылок - ИМХО для новичка там ничего полезного.
0
helter
Эксперт по математике/физике
3778 / 2801 / 304
Регистрация: 12.03.2013
Сообщений: 5,144
12.05.2017, 14:59 45
Цитата Сообщение от vlisp Посмотреть сообщение
работало по умолчанию
Работает.
Цитата Сообщение от vlisp Посмотреть сообщение
не противоречило здравому смыслу
Не противоречит.
Цитата Сообщение от vlisp Посмотреть сообщение
в разных реализациях
GCL не реализует стандарт ANSI.
Цитата Сообщение от vlisp Посмотреть сообщение
в разных реализациях сделано по разному
Не относится к данному вопросу, но если стандарт какого угодно языка имеет > 1 реализации, в них всегда что-то сделано по-разному.
0
vlisp
471 / 439 / 105
Регистрация: 10.08.2015
Сообщений: 1,489
Завершенные тесты: 1
12.05.2017, 15:23 46
Цитата Сообщение от helter Посмотреть сообщение
какого угодно языка имеет > 1 реализации, в них всегда что-то сделано по-разному.
вот я про это и говорю, только в других языках все более менее соответствует стандарту, а если нет, то это считается багом. А в лиспе это назвывается "несоответствие стандарту" .

И вот еще, к тому вопросу к который никуда не ушел: а запустится ли ваша игрушка, которую почему-то никто не загорелся сделать, на другом компе? Например, на родном форуме free basic есть целый раздел, посвященный разработкам на фрибейсике, и там много интересного, и игры с симуляторами, и среды разработки, вообще много вкусного. Причем практически весь код компилируется и запускается без всяких танцев с бубнами...
0
nullxdth
1268 / 478 / 44
Регистрация: 12.03.2013
Сообщений: 2,225
12.05.2017, 15:39 47
Цитата Сообщение от vlisp Посмотреть сообщение
вот я про это и говорю, только в других языках все более менее соответствует стандарту, а если нет, то это считается багом.
С реализациями Common Lisp всё отлично. Все используемые реализации, как минимум: SBCL, Clozure CL, ECL, ABCL, ACL и LispWorks соответствуют стандарту. Взять мёртвый GCL и удивляется, почему там что-то работает, а в SBCL нет - странная позиция. Зачем вообще нынче где-то использовать GCL? Это просто не имеет смысла.

Добавлено через 2 минуты
Цитата Сообщение от vlisp Посмотреть сообщение
только в других языках все более менее соответствует стандарту
В каких?
0
helter
Эксперт по математике/физике
3778 / 2801 / 304
Регистрация: 12.03.2013
Сообщений: 5,144
12.05.2017, 15:54 48
Цитата Сообщение от Shamil1 Посмотреть сообщение
Я кликнул первые несколько ссылок - ИМХО для новичка там ничего полезного.
Вы изначально не очень ясно выразили, что вам требуется. (Я вообще не понял, для новичков в чём предназначен этот майкрософтовский туториал, в котором есть нажимание на кнопки и нет кода.) И имхо новичок в CL должен начинать не с веб-программирования. Нужно гуглить что-нибудь типа common lisp beginner tutorial. Там должно быть что-то по основам языка и основам работы в репле. А лучше — книжку почитать.

Вообще, вы вот предлагаете в качестве отправной точки какой-то майкрософтовский туториал. Если бы речь шла о сравнении продукции MS и Franz Inc., было бы ещё понятно: «Майкрософты вот накатали туториал по Visual Studio, а францевцы такого туториала по Allegro CL не накатали...». А мне (наверно, не одному) что MS, что Franz Inc. одинаково до лампочки. Мне было бы понятнее, если бы вы написали, что, дескать, для питона какие-то туториалы есть, а для лиспа таких нету. То есть чем образовательные ресурсы по лиспу невыгодно отличаются от образовательных ресурсов по популярным языкам типа питона, а не от продуктов компаний.

И мне кажется, эти страдания преувеличены. Даже если забыть об инфраструктуре, в CL есть объективные моменты, сложные для новичка: взять хотя бы отдельное пространство имён функций и его следствие ― шарпквоты. А никто и не обещал, что будет легко. Мой совет начинающим лисперам ― меньше нытья, больше дела.

Добавлено через 10 минут
Цитата Сообщение от vlisp Посмотреть сообщение
вот я про это и говорю, только в других языках все более менее соответствует стандарту, а если нет, то это считается багом. А в лиспе это назвывается "несоответствие стандарту" .
Если авторы утверждают, что их компилятор соответствует стандарту, а он ― нет, то это баг. А авторы GCL этого не утверждают.

Во-вторых, в любом стандарте есть «неопределённые поведения» и «оставляется на усмотрение реализации». А также реализации могут предоставлять расширения, о которых стандарт не говорит. Поэтому gcc и clang не тождественны друг другу. Не говоря уже о майкрософтах, у которых своя свадьба.

Вам действительно вновинку эти банальные вещи?
0
Shamil1
Модератор
2121 / 1429 / 324
Регистрация: 26.03.2015
Сообщений: 5,174
12.05.2017, 17:05 49
Цитата Сообщение от helter Посмотреть сообщение
Вы изначально не очень ясно выразили, что вам требуется.
Предположим, что студент или школьник захотел написать Программу.

Если он решит писать её на C#, то ему достаточно одной ссылки. Например, если он захочет написать MVC-приложение, то ему достаточно одной ссылки: https://www.asp.net/mvc
Там есть большая кнопка "скачайте бесплатную студию 2017". И есть ссылки на пошаговые учебники. Выполняя простые действия, он получит представление об Окружении.
И если ему надо написать программу вида "пользователь вводит число в текстовое поле, нажимает на кнопку, программа отображает в отдельном окне факториал этого числа", то у него будут возникать вопросы вида "как посчитать факториал числа", а не вопросы "как отобразить окно", "как добавить на окно кнопку" и т.д.

Если же он решит написать программу на Лиспе, то он вполне может так и не добраться до того момента, когда останется только дописать функцию вычисления факториала. Потому что вместо написания кода он будет сражаться с Окружением.

Цитата Сообщение от helter Посмотреть сообщение
Майкрософты вот накатали туториал по Visual Studio, а францевцы такого туториала по Allegro CL не накатали...
Для желающих писать на C#, есть простая и понятная Visual Studio. А если возникнут вопросы - есть простой и понятный туториал.
Для желающих писать на Lisp есть что-нибудь (кроме предложения сначала изучить пяток других программных продуктов, не имеющих отношения к Лиспу)?
1
_sg
3756 / 3548 / 242
Регистрация: 12.05.2012
Сообщений: 2,476
12.05.2017, 19:18 50
Цитата Сообщение от x33x Посмотреть сообщение
Интересный, конечно, язык Lisp. Только не понимаю почему он несильно популярный и мало известных продуктов на нём написано?
Просто есть конструктор DSL - Common Lisp (сложный и непопулярный) и языки, заимстововавшие отдельные черты Лиспа - JavaScript, C#, Python, Ruby (простые и востребованные).

Добавлено через 12 минут
Цитата Сообщение от Shamil1 Посмотреть сообщение
Для желающих писать на C#, есть простая и понятная Visual Studio.
Visual Studio нужно сравнивать с коммерческими LispWorks и Allegro Common Lisp.
0
helter
Эксперт по математике/физике
3778 / 2801 / 304
Регистрация: 12.03.2013
Сообщений: 5,144
12.05.2017, 19:23 51
Shamil1, не рекламируйте мне товары MS. Они мне даже бесплатно не нужны.

Цитата Сообщение от Shamil1 Посмотреть сообщение
Если же он решит написать программу на Лиспе, то он вполне может так и не добраться до того момента, когда останется только дописать функцию вычисления факториала.
Называется «завалился на сдаче документов». Такие пусть продолжают тыкать кнопки в товарах MS.
0
Shamil1
Модератор
2121 / 1429 / 324
Регистрация: 26.03.2015
Сообщений: 5,174
12.05.2017, 20:16 52
Цитата Сообщение от _sg Посмотреть сообщение
Visual Studio нужно сравнивать с коммерческими LispWorks и Allegro Common Lisp.
Я не сравниваю продукты, я сравниваю Окружение для двух языков программирования.

Цитата Сообщение от helter Посмотреть сообщение
Называется «завалился на сдаче документов». Такие пусть продолжают тыкать кнопки в товарах MS.
Я так понимаю, это Ваш ответ на сабж:
- Почему Лисп не стал популярным языком программирования?
- Потому что 95% "заваливаются на сдаче документов" и переходят на более дружелюбный язык программирования.
0
helter
Эксперт по математике/физике
3778 / 2801 / 304
Регистрация: 12.03.2013
Сообщений: 5,144
12.05.2017, 21:05 53
Цитата Сообщение от Shamil1 Посмотреть сообщение
- Потому что 95% "заваливаются на сдаче документов" и переходят на более дружелюбный язык программирования.
Вообще-то мой ответ был более кратким и ёмким:
Цитата Сообщение от helter Посмотреть сообщение
Потому что непопсовый.
А как по-вашему, станет ли язык популярным, если за ним не стоит корпорация, продвигающая свою ИДЕ с туториалами?

Добавлено через 20 минут
Shamil1, а с Racket, по-вашему, что не так? Вроде ИДЕ из коробки, официальных обучающих материалов тоже навалом. Или они не такие, как надо?
1
Shamil1
Модератор
2121 / 1429 / 324
Регистрация: 26.03.2015
Сообщений: 5,174
12.05.2017, 22:17 54
Цитата Сообщение от helter Посмотреть сообщение
А как по-вашему, станет ли язык популярным, если за ним не стоит корпорация, продвигающая свою ИДЕ с туториалами?
Шансов мало.
Про людей говорят: успех - это 10% таланта и 90% труда. То же самое можно сказать и про ЯП: успех ЯП - это 10% качества самого языка и 90% труда, вложенного в его окружение.

Цитата Сообщение от helter Посмотреть сообщение
а с Racket, по-вашему, что не так? Вроде ИДЕ из коробки, официальных обучающих материалов тоже навалом. Или они не такие, как надо?
Я точно не могу сказать, так как у меня мало опыта работы с Ракет. Полагаю, что не то ИДЕ и не те обучающие материалы. Они больше упор делают на теорию - принципы программирования, а нужен упор на практику - чтобы за несколько кликов мышкой можно было программу написать. Я вот, например, профессионально занимаюсь промышленным (ынтырпрайз) программированием, а свои знания алгоритмов применил, наверное, один всего раз за всё время - когда нужно было хитрую сортировку с учётом проплаченной рекламы сделать. То есть, вся теория из лисп-хасекль-книжек в 95% программ не востребована (к сожалению).
(Если я правильно понимаю, Схема/Ракет - это учебный язык программирования?)
0
helter
Эксперт по математике/физике
3778 / 2801 / 304
Регистрация: 12.03.2013
Сообщений: 5,144
12.05.2017, 23:23 55
Цитата Сообщение от Shamil1 Посмотреть сообщение
Шансов мало.
Ну вот, вы сам отвечаете на свои вопросы. Выходит, мышещёлкательное ИДЕ для CL, туториалы по щёлканью мышью и, как следствие, популярность появятся не раньше, чем за CL будет стоять большая корпорация.

Цитата Сообщение от Shamil1 Посмотреть сообщение
(Если я правильно понимаю, Схема/Ракет - это учебный язык программирования?)
Не, там всё сложнее.
0
antares0
239 / 108 / 8
Регистрация: 12.05.2015
Сообщений: 164
12.05.2017, 23:50 56
Цитата Сообщение от Shamil1 Посмотреть сообщение
Для желающих писать на C#, есть простая и понятная Visual Studio. А если возникнут вопросы - есть простой и понятный туториал.
Для желающих писать на Lisp есть что-нибудь (кроме предложения сначала изучить пяток других программных продуктов, не имеющих отношения к Лиспу)?
Есть пару лет как бесплатный и открытый Corman Lisp в стиле VS. Обзор в pdf, html.
Был и почти еще есть такой парадокс, как ABLE. Когда автор запилил инсталяшки все-в-одном под все платформы. Но за отсутствием интереса сообщества через пару лет убрал код в инфраструктуру QL. Магический однострочник вбить в REPL придется для установки и все такое
Вундерфаля на базе SBCL имени budden, который приложил много сил, что бы она просто работала из коробки.

Проблема всех этих по своему интересных штук, в том что они не востребованы активным сообществом. Которое пишет библиотеки, учебники и просто чинит баги наконец.

Добавлено через 12 минут
Цитата Сообщение от helter Посмотреть сообщение
Если бы я собирался вести коммерческую разработку под виндоус, я бы наверно, аллегро цл, купил. Думаю, у них и графика из коробки, и кнопка «создать проект» имеется.
Грфика из коробки у них скорее ради переносимости. А для комерчески ценной разработкт возможно лучше все таки прямое FFI, как ни печально.
кнопка «создать проект» имеется.
И она вместе с продуктами нажатия несколько задалбала пока проходил ихний учебник в стиле Delpi снова с нами.
Сужу по trial-ке и бете.
3
nullxdth
1268 / 478 / 44
Регистрация: 12.03.2013
Сообщений: 2,225
13.05.2017, 02:02 57
Цитата Сообщение от Shamil1 Посмотреть сообщение
Потому что 95% "заваливаются на сдаче документов" и переходят на более дружелюбный язык программирования.
Забавный вывод. По-вашему, дружелюбность ЯП определяется, утрированно, наличием IDE с кнопкой "Create new project"?

Добавлено через 3 минуты
Цитата Сообщение от Shamil1 Посмотреть сообщение
Я не сравниваю продукты, я сравниваю Окружение для двух языков программирования.
Что конкретно вы имеете ввиду под окружением? IDE, библиотеки?

Добавлено через 2 минуты
Цитата Сообщение от Shamil1 Посмотреть сообщение
Для желающих писать на Lisp есть что-нибудь (кроме предложения сначала изучить пяток других программных продуктов, не имеющих отношения к Лиспу)?
Сейчас, для эффективного программирования на Common Lisp (исключая сам язык), вам следует, в некотором роде, изучить единственный продукт - Emacs. Как если бы вам надо было изучить Visual Studio или Qt Creator для эффективного программирования на C++, скажем.

Добавлено через 2 минуты
Цитата Сообщение от Shamil1 Посмотреть сообщение
Шансов мало.
Про людей говорят: успех - это 10% таланта и 90% труда. То же самое можно сказать и про ЯП: успех ЯП - это 10% качества самого языка и 90% труда, вложенного в его окружение.
В окружение Common Lisp вложено достаточно труда для его успешного практического применения.

Добавлено через 2 минуты
Цитата Сообщение от Shamil1 Посмотреть сообщение
а нужен упор на практику - чтобы за несколько кликов мышкой можно было программу написать
ПО мышкой писать невозможно. Доказано временем. Практикой фейлов всяческих ДРАКОНов.

Добавлено через 19 минут
Цитата Сообщение от helter Посмотреть сообщение
Выходит, мышещёлкательное ИДЕ для CL, туториалы по щёлканью мышью и, как следствие, популярность появятся не раньше, чем за CL будет стоять большая корпорация.
Я почти уверен, что все эти беспонтовые фантики не особо добавят популярности. Ведь человек, не осиливший пары мануалов по настройки окружения вряд ли может по достоинству оценить функциональность Lisp. Ведь, конкретно, Common Lisp - это продвинутый инструментарий для решения комплексных проблем, реализаций сложных архитектурных решений и выразительных интерфейсов.
А если нужно реально считать факториал в формочке, то лучше Free Basic какой-нибудь взять да и все дела.

Добавлено через 40 минут
Цитата Сообщение от antares0 Посмотреть сообщение
А для комерчески ценной разработкт возможно лучше все таки прямое FFI, как ни печально.
А что конкретно в Lisp FFI кривого? Или речь о каких-то особенностях ACL?
1
vlisp
471 / 439 / 105
Регистрация: 10.08.2015
Сообщений: 1,489
Завершенные тесты: 1
13.05.2017, 02:18 58
Цитата Сообщение от nullxdth Посмотреть сообщение
Common Lisp - это продвинутый инструментарий для решения комплексных проблем, реализаций сложных архитектурных решений и выразительных интерфейсов.
Сделайте хотя б судоку
0
nullxdth
1268 / 478 / 44
Регистрация: 12.03.2013
Сообщений: 2,225
13.05.2017, 02:26 59
Вот мне больше заняться нечем, чем делать беспонтовую судоку. Я лучше в свободное время к Tk биндинг допилю. Судоку разве что в качестве сэмпла можно сделать. Когда-нибудь.
1
helter
Эксперт по математике/физике
3778 / 2801 / 304
Регистрация: 12.03.2013
Сообщений: 5,144
13.05.2017, 02:38 60
Лучший ответ Сообщение было отмечено nullxdth как решение

Решение

Цитата Сообщение от nullxdth Посмотреть сообщение
Я почти уверен, что все эти беспонтовые фантики не особо добавят популярности. Ведь человек, не осиливший пары мануалов по настройки окружения вряд ли может по достоинству оценить функциональность Lisp.
Я тоже так думаю.

Курс будущего: «Лисп для чайников в ИДЕ для чайников»

Урок 1. Кнопка «Сделать всё зашибись».
Урок 2. Списки. Функции высшего порядка. Пространство имён функций.
Урок 3. Структуры. Массивы. Хеш-таблицы. Виды циклов.
Урок 4. Ввод/вывод, потоки, файловая система.
Урок 5. Состояния, ошибки, handler-bind, unwind-protect.
Урок 6. ООП: генеричные функции, виды методов.
Урок 7. ООП: классы.
Урок 8. Пакеты. ASD-библиотеки.
Урок 9. Сокеты, треды, потоки Грея, веб-программирование...
Урок 10. Дополнительные приёмы функционального программирования.
Урок 11. CLIM.
Урок 12. Макросы I.
Урок 13. Макросы II.
Урок 14. Макросы III.
...

На втором уроке у 95% студентов взрывается мозг: «ПОЧЕМУ КНОПКА БОЛЬШЕ НЕ РАБОТАЕТ???» 4.9% студентов пересаживаются на емакс, 0.1% ― на вим.
3
13.05.2017, 02:38
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.05.2017, 02:38

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

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

Си является языком программирования низкого уровня или высокого?
у меня вопрос , си является низкий уровень или высокий уровень языка...


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

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

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