LINUX.ORG.RU

[Лиспофлейм]Реализации common lisp и пакеты


0

0

Вот не пойму.

Вы хотите написать программу, использующую сторонние библиотеки в C, вы пишите

#include <foo.h> // препроцессор вставляет сдесь содержимое foo.h

В пистоне: import foo // Создается неймспейс foo, читается код из foo.py, все переменные/функции запихиваются в этот неймспейс.

В лиспе же вообще нет единой системы. Когда я сидел под дебианом в clisp'е там было что-то типа:

(require 'common-lisp-controller)
(common-lisp-controller:clc-require 'foo)

В sbcl для установки(!!) пакетов (вернее «систем», которые определяются с помощью defsystem) используется asdf-install:

(asdf-install 'foo)
(require 'foo)

Так вот вопрос: почему реализация берет на себя установку пакетов, контроль путей к пакетам итд.? Почему установку не доверить, например, пакетному менеджеру операционной системы?

Почему везде нельзя как в emacs (идеальный вариант):

(setq load-path (append load-path '(#p"/foo/bar" #p"/foo/buz")))
(require 'bar)
(require 'buz)

Или тупо (load «/foo/bar/buz»)?

Вопрос не совсем технический, поэтому в talks

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

> «Какие языки используют лучшие программисты?»

Кстати, надо определиться, кого мы считаем лучшими программистами, хотя бы примерный список.

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

Прочитай тред получше. Я писал про системы тоже

Хотя почитаю по ссылке

dragonfly
() автор топика
Ответ на: комментарий от lester

> у Love5an поищи - он не раз писал, что С - говноязык

Хм, мы же про Торвальдса вроде говорили, а не про С?

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

> Наличие «лучших решений на других языках» больше зависит от пиара самого ЯП, от порога вхождения и доступности массам.

можно перефразирую? «это «решение» задачи лучше, потому что был применен простой и доступый язык с хорошей поддержкой».

хм. ну да, может быть. лисп тут каким боком?

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

>этого достаточно, чтоб говорить, что данный язык недотягиает до звания языка общего назначения

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

cvb
()

Тут спор затеялся. Моё мнение: Лисп не нужен не потому, что на нём мало программ, а потому, что существуют лучшие решения тех проблем, которые решает лисп. Как-то так

dragonfly
() автор топика
Ответ на: комментарий от Rastafarra

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

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

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

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

у тебя очевидно - так как язык общего назначения это не что-то абстрактное или никому ненужное

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

> я недавно смотрел набор софта и библиотек для CL -

таки большая часть была написана давно и уже заброшена


Ты наверное не так смотрел ;) Если брать весь софт на cliki.net, то там мусора не разгрести. Большая часть из него заброшена, но фишка в том, что это был просто мусор, который то и не развивался никогда, а так, был написан под настроением очередным изучающим. Хороших пакетов не так много, но они развиваються и их становиться больше.

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

> Хороших пакетов не так много, но они развиваються и их становиться больше.

есть где-то их список без мусора?

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

> а скорее относительной непопулярности

а скорее ненужности

fxd

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

> есть где-то их список без мусора?

Нет. Я такого не знаю. Разве что, смотреть какие пакеты входят в состав gentoo-lisp-overlay, там тоже не всё шедевры, но всё же то, что реально востребовано и используется другими лисперами.

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

>как можно говорить о лучших решениях и в качестве аргумента писать про «порог вхождения и доступность массам»

Вон взять ту же Джяву - её сделали простой как пень, хорошенько распиарили, промыли всем моск, так сказать, её неземными ОО-способностями и прочим, ну вот теперь пипл и думает, что лучшее решение для ънтпрайза - это j2ee. Кучи, кучи программистов потянулись изучать сию платформу (ну и язык), и мастерить на ней свои поделия для больших заказчиков. Ну и в результате такого повсеместного использования, в результате массового мыслительного процесса и родились эти сферические «лучше решения».

При этом более ОО-чистый и изящный, но при этом менее распиаренный -> распространенный Smalltalk остался за кадром, вот и «лучших решений» на нём (вам) не видно. Но кому надо, тот знает и тихо пользует.

Всё просто :)

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

>таки да. табличку-то так и не составили? ;)

Так ведь некому, лисперам очевидно что все остальные сосут, остальные слишком заняты срачем, какие там списки, вот возьми да покажи всем пример :).

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

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

не то чтобы не является языком общего назначения... он просто не нужен.

а нафиг нужен язык, на котором никто не пишет и ничего не написано? или он аки первый самолет?

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

> Лисп не нужен не потому, что на нём мало программ, а потому, что

существуют лучшие решения тех проблем, которые решает лисп


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

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

>а нафиг нужен язык, на котором никто не пишет и ничего не написано?

А о каком языке речь-то идёт? На том же CL и пишут, и достаточно чего написано

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

Я же ужо написал. Для функционального программирования можно использовать Хаскель или тот же Питон (да-да). Про метапрограммирование не интересовался

dragonfly
() автор топика
Ответ на: комментарий от yoghurt

> эти сферические «лучше решения».

не перекручивайте - таки они не сферические

Всё просто :)


все еще проще - не «чистота» языка решает удобно на нем писать или нет, а другие более приземленные факторы

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

> Для функционального программирования можно использовать Хаскель или

тот же Питон (да-да). Про метапрограммирование не интересовался


О чём вы вообще? Вот статья дающее первоначальное представление об особенностях Common Lisp: http://lisper.ru/articles/common-lisp-technologies, там не всё, но обозначены многие ключевые вещи. Давайте об этом, а не о «сферических конях»?

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

>не то чтобы не является языком общего назначения... он просто не нужен.

Ок, назови такой же фичастый аналог.

а нафиг нужен язык, на котором никто не пишет и ничего не написано? или он аки первый самолет?

Это тоже не верно, даже тут в треде есть как минимум два лиспера, значит на нем пишут, на нем написана максима, например, значит и колличество софта на нем не нулевое, к тому же существуют фирмы продающие коммерческие лиспы, и довольно давно, а значит есть спрос.

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

А о чём вы вообще? Какова ваша цель когда вы мне эту ссылку дали? Макросы - это и есть метапрограммирование. Листы, map*, dolist, функции высших порядков - это функциональное. Вы думаете, что lisp - единственный язык, который такое умеет?

dragonfly
() автор топика
Ответ на: комментарий от yoghurt

> На том же CL и пишут, и достаточно чего написано

достаточно... чего? выше обсудили не фильтруемый лисповый мусор и 3 ниши, в которых лисп сосет. я что-то про пустил?

универсальность — это такое удивительное свойство, на которое можно ментально онанировать, но пользоваться при этом другими инструментами, да?

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

> А о чём вы вообще? Какова ваша цель когда вы мне эту ссылку дали?

Что бы немного узнали, что такое Common Lisp.

Листы, map*, dolist, функции высших порядков - это функциональное.


Ну т.е. что такое ФП вы не знаете?

Вы думаете, что lisp - единственный язык, который такое умеет?


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

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

> назови такой же фичастый аналог

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

тут в треде есть как минимум два лиспера, значит на нем пишут, на нем написана максима, например, значит и колличество софта на нем не нулевое

и емакс, да. кстати вим круче ;)

я собсно и не говорю что количество софта нулевое. я говорю что лисп не нужен ;)

еще он, по совместительству, не универсален, как меня тут уверяют.

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

> универсальность — это такое удивительное свойство, на которое

можно ментально онанировать, но пользоваться при этом другими

инструментами, да?



Нет, пользоваться Common Lisp для решения большинства возникающих задач.

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

> И то он написан на emacs lisp.

этих диалектов — как грязи... только вот проку от них чуть больше чем ничего.

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

> да нужен он - спорить нет смысла

ну что ж ты так, на корню-то...

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

>3 ниши

А можете прямо сейчас перечислить? А то я вроде и читаю тут, и пишу, но трех конкретных ниш не заметил

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

> Ну т.е. что такое ФП вы не знаете?

Вы прикидываетесь больным да?

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

Зачем нужны вообще эти рестарты?

dragonfly
() автор топика
Ответ на: комментарий от yoghurt

целиком цитата выгядит так: «выше обсудили не фильтруемый лисповый мусор и 3 ниши, в которых лисп сосет».

выше обсудили: пхп (вэб), 1цэ (бух.учет) и ДЕ (окружение). там лисп сосет.

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

> Ну т.е. что такое ФП вы не знаете?

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

dragonfly
() автор топика

В лиспе же вообще нет единой системы


Радуйся. Это же позволяет программисту раскрыть свой потенциал и не ограничивает его творческие позывы

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

> Вы прикидываетесь больным да?

Нет, вы просто с самого начала настойчиво демонстрируете свою некомпетентность, при чём, не только в «лисп». Про php, мы, конечно, не говорили.

Зачем нужны вообще эти рестарты?

http://lisper.ru/pcl/beyond-exception-handling-conditions-and-restarts

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

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

В лиспе есть генераторы, карринг?

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

> Пожалуйста, пример языка без списков, и функций высших порядков,

и чтобы он был функциональным


Считаете, что язык со списками и функциями высших порядков автоматически превращается в функциональный? Я специально давал ссылку на статью, в которой рассматривались ключевые свойства Common Lisp, там нет ни слова про ФП.

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

> В лиспе есть генераторы, карринг?

Из коробки нет. При желании легко реализовать. Но генераторы то вообще не нужны, а карринг я в основном видел только в старых программах. В современном коде на Common Lisp карринг встречается очень редко.

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

> Считаете, что язык со списками и функциями высших порядков автоматически превращается в функциональный?

Не переиначивайте.

Педивикия:

Семантика:    

мультипарадигмальный: объектно-ориентированное, функциональное, процедурное программирование

То есть там наверное такие же некомпетентные писали, да?

dragonfly
() автор топика
Ответ на: комментарий от Rastafarra

> выше обсудили: пхп (вэб), 1цэ (бух.учет) и ДЕ (окружение).

там лисп сосет.


На чём основан данный потрясающий вывод?

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

> В современном коде на Common Lisp карринг встречается очень редко.

Но генераторы то вообще не нужны

Мне ваши макросы, мультиметоды итп. тоже не особо нужны, чтобы написать нормальную программу.

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

Про документацию. Про Си/питон итд книг вагон и маленькая тележка. По коммон лиспу из стоящего только pcl и cltl

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

> То есть там наверное такие же некомпетентные писали, да?

Нет, просто, что считать фп, а что нет, единой точки зрения не существует.

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

Вы думаете, что лисп в бухучете применяется? Серьёзно? Нет, он там не нужен. Не его ниша. Хотелось бы только найти, где его ниша

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