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

/s/сдесь/здесь

Стыд и срам

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

Многие доказывают, что соовсем наоборот.

По мне - для функционального программирования есть Haskell, для метапрограммирования вроде тоже есть языки куда сильнее (где-то читал, пример привести не могу)

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

> Читаю и рыдаю.

?

Короче, мне пора. Приеду, почитаю

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

> В пистоне: import foo // Создается неймспейс foo, читается код из

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


Господи, ты даже Python не осилил...

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


clisp здесь не при чём, собственно Common Lisp тоже, это просто часть разработчиков Debian имеет проблемы с головой. На это стоило забить и сразу использовать asdf непосредственно.

В sbcl для установки(!!) пакетов (вернее «систем», которые

определяются с помощью defsystem) используется asdf-install:



ASDF позволяет описать как загружать лисп-систему в память и никакого отношения к установке пакетов не имеет. И SBCL здесь тоже не при чём, ибо ASDF работает практически на всех реализациях. ASDF-INSTALL - это другая система, в какой-то степени аналог CPAN, но не очень хорошая и лучше её не юзать, а использовать, например, clbuild.

Почему установку не доверить, например, пакетному менеджеру

операционной системы?



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

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


Можно. Можно по разному.

Ну и да, почувствуй большую разницу между системами (пакетами с точки зрения дистрибутива) и пакетами в Common Lisp.

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

> По мне - для функционального программирования есть Haskell,

Именно.

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

Ага. Тот же Haskell.

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

> лисп же... там все так.

Хм… http://docs.plt-scheme.org/reference/require.html#(form._((lib._scheme/base.....))

Есть ещё вариант, что вы имели именно Common Lisp, но вам было лень написать на одно слово больше, чтобы предотвратить двоякие толкования.

да... надо ли говорить что лисп как таковой совершенно ни к чему? :)


Предложите лучше. Не нужно доказывать бесполезность фич, не нужно говорить, что ими никто не пользуется. Говорите, что xxx не нужно - предлагайте решение, не уступающее ни в чём.

naryl ★★★★★
()

Про common-lisp-controller лучше забыть, это Debian-специфичная хрень. Осиль ASDF. Будет «как в emacs»:

(pushnew #p"/path/to/foo" asdf:*central-registry*)

(asdf:load-system :foo)

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

>для метапрограммирования вроде тоже есть языки куда сильнее (где-то читал, пример привести не могу)

tcl же

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

> Предложите лучше.

ну опять... лучше для чего?

для начала, по традиции, надо определить нишу лиспа как инструмента. да?

Говорите, что xxx не нужно - предлагайте решение, не уступающее ни в чём.

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

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

> для начала, по традиции, надо определить нишу лиспа как инструмента. да?

Универсальный язык программирования, язык программирования общего назначения, так подойдёт?

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

(а иногда, вероятно, даже и более) бесполезны?



Хм, о каких бесполезных фичах идёт речь?

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

> Универсальный язык программирования

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

Хм, о каких бесполезных фичах идёт речь?

ххх, написано же выше.

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

> что-то он не очень универсален, не видно засилия лисповых программ

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

ххх, написано же выше.


Что за фича «xxx»?

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

>> Универсальный язык программирования

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

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

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

> каким образом факт наличия или отсутствия «засилия лисповых программ» коррелирует с нишей языка как инструмента?

плох инструмент, если им не пользуются, не? если пользуются чем-то другим, вероятно оно «лучше».

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

ы?

Что за фича «xxx»?

тред перечитай.

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

> плох инструмент, если им не пользуются, не?

если пользуются чем-то другим, вероятно оно «лучше».


Я правильно понимаю, что лучшие языки программирования это PHP и 1C?

нет «засилия лисповых программ» --> либо лисп не универсален,

либо есть что-то лучше



Не могу проследить логическую цепочку рассуждений, она вообще есть?

тред перечитай.


Ну, дык, уже, и никак не возьму в толк, о каких всё таки бесполезных фичах шла речь? Можешь пальцем указать?

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

>плох инструмент, если им не пользуются, не? если пользуются чем-то другим, вероятно оно «лучше».

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

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

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

по лучшим решениям, созданным с его помощью

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

> Я правильно понимаю, что лучшие языки программирования это PHP и 1C?

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

решения на лиспе же, кстати, в этих нишах либо сосут либо вообще не представлены. в силу убогости/ненужности последнего, или как?

Можешь пальцем указать?

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

Rastafarra ★★★★
()
Ответ на: так чтоли? от yoghurt

> «KDE прекрасно и написано на плюсах, а вот на CL нету ни одной популярной DE -> CL - кал!!!»

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

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

> А что вы вообще понимаете под универсальностью?

нет, милейший, не так :)

что _Вы_ понимаете под универсальностью?

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

> Есть объективный набор особенностей языка, по которому можно его сравнить с другим языком

так это прекрасно! можно взглянуть на табличку сравнения языков по объективным критериям?

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

> по лучшим решениям, созданным с его помощью

Близко, но не совсем. Ведь если брать лучшие проприетарные продукты, то думается, что дело, в первую очередь, в организации работы компании. Ведь MS Office был прекрасен и был написан на C++, а MS зачем то взяла и придумала C#. Не иначе, как с жиру бесилась...

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

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

> а MS зачем то взяла и придумала C#. Не иначе, как с жиру бесилась...

они и сейчас С++ используют очень широко - но они поняли простую вещь: универсального языка нет

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


самые разные

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

> меня человек попросил предложить аналог некой ненужной фичи, которую назвал «ххх».

Моя речь была более абстрактна на самом деле. ;)

Говорите, что инструмент (в данном случае язык) xxx не нужен - предлагайте аналог, не уступающий ему ни в чём.

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

> Моя речь была более абстрактна на самом деле.

ну я утрировал же :)

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

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

любой лиспер и знаток ОС с ЛОР скажет тебе, что Торвальдс абсолютно не умеет программировать

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

>так это прекрасно! можно взглянуть на табличку сравнения языков по объективным критериям?

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

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

>надо наконец понять, что язык надо подбирать под задачу

Я это понял уже давным давно :)

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

Да

да еще и крут очень

Местами

лучшие решения написаны на других языках

(далеко) не во всех областях

либо этот язык не так уж и крут

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

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

>что _Вы_ понимаете под универсальностью?

См. там-же. Применимость ЯП к решению большинства задач.

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

> Ну так составь и разглядывай

ну хорошо. ты выше написал: «Есть объективный набор особенностей языка, по которому можно его сравнить с другим языком». хоть список дай что ли?

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

> любой лиспер и знаток ОС с ЛОР скажет тебе, что Торвальдс

абсолютно не умеет программировать


Можно ссылку на подобные высказывания лисперов? Или попрошу взять слова обратно. Торвальдс, конечно, не RMS ;), но вряд ли кто-либо будет сомневаться в его инженерных способностях.

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

> (далеко) не во всех областях

примеры будут?

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


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

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

>если говорить про написание DE - то очевидно так, в том числе и по другим задачам

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

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

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

имелись, наверное, в виду Лисперы, а не лисперы.

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

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

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

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

> то либо надо наконец понять, что язык надо подбирать под задачу,

либо этот язык не так уж и крут


Проблема Common Lisp в сообществе. С одной стороны - оно довольно маленькое. С другой - там много сумасшедших. Как результат - довольно слабая инструментальная поддержка (библиотеки, фреймворки и т.п.). Сейчас, что бы работать с CL, надо иметь при себе хороший набор напильников. Но ситуация довольно быстро меняется, просто стартовая позиция была уже очень плохой.

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

> Применимость ЯП к решению большинства задач.

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

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

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

Открой любой флейм про лисп, там это все много раз было, из очевидных это макросы и скорость и еще репл со слаймом.

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

> Но ситуация довольно быстро меняется

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

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