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

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

> смолток, да. Пачиму — странно, хотя тормозной он был в своё время

Именно потому что тормозной. С пиаром там, кстати, все в порядке было.

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

ну тогда список проектов в студию, раз писал. Можно без пруфлинков, просто описание решаемых задач, можно без решения. Что за задачи ты решал, какого уровня. Я вот к примеру, писал что-то типа АРМ-ов с dashboard-ами — сразу утыкаемся в ограниченность модели событий встроенного языка, отсутствие ООП, многопоточности. Компоненту на COM — имено приходилось писать, стандартная модель событий не устраивала. В другой раз приходилось оптимизировать сиволапые запросы на встроенном языке переписыванием на обычный SQL и расстановкой индексов, где надо. Потом бизнес-процессы на семёрке делал, зоопарк редкостный. На восьмёрке — чуть попроще, но проще всего получилось на жабе с ормами, когда орм отражает средства описания модели. Тогда просто экспортируем модель в нужный профиль — и вот они, заготовки слоёв и подсистем. Платформа как инструмент всё-таки довольно ограниченный — одно дело, когда надо формулу там типовую поправить или расчёт поменять, или отчётик. Другое, когда пишем нечто вроде слоя с подсистемами — и утыкаемся в ограниченность языка и платформы. А в лиспе наоборот, подход к разработке — эволюционный (ну и в смоллтоке ещё) и «платформа» принципиально понятная, прозрачная.

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

ну какие-то почти-объективные критерии вывести всё-таки можно. Нечто вроде мощности языка, поддерживаемых парадигм, базовых концепций вроде типизации и диспетчеризации вызова методов классов (vtable/generic methods/PIC в смоллтоке/метатаблицы в lua), то есть как реализовано ООП. Написать программу на фортране можно на любом языке, да. Так что писатели на этих языках выбирают объективные критерии субъективно.

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

пофиг на симпатичности, их можно и навертеть — смотри на суть. Описали модель, потом модель оказалась исполняемой. Все изменения происходят из модели, код как модель. А то что ты предлагаешь — это ad hoc программирование и вообще шаг назад.

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

к примеру, диплом был у знакомой: генерация форм на БД програмке на быдлодельфи автоматически из модели. Потом я туда в качестве бекенда адынес прикрутил — лень было всё руками рисовать по второму разу. И ничего, работало. Вот чтобы постоенный гуй был не на ста закладках, а имел представление про usability — там да, читать надо про пропорции и композиции, золотые сечения, правила Фитта и т.п. Оно программируется, при нужде — но если форм немного, можно и проще и руками прочесать.

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

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

это мы щас так меряться будем, да? :)

ну давай, почему нет... дело было в 7.7, лет эдак... 8-10 назад.

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

помню еще универсальную формочку рекурсивную склепал, которая справочники (или не только...?) показывала и умела редактировать. это про 1цэ.

если надо ООП — есть грязный хак в виде 1c++. почему нет собсно?

о, да! этих, как их... помощников(...?) научил показывать все мессаги и вопросы. сделал классиком на этом самом 1c++. бухи просто перлись :)

и?

да, без костылей никак. да, глязные хаки а-ля rainbow во всей красе. но это все известно и изучено, методы обхода есть и освоены.

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

когда пишем нечто вроде слоя с подсистемами — и утыкаемся в ограниченность языка и платформы.

1c++ — расширение языка. rainbow — как старт для расширение гуя.

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

> Вот чтобы постоенный гуй был не на ста закладках, а имел представление про usability — там да, читать надо про пропорции и композиции, золотые сечения, правила Фитта и т.п. Оно программируется, при нужде — но если форм немного, можно и проще и руками прочесать.

т.е. нет примера, как и у граждан выше. почему я не удивлен...?

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

> пофиг на симпатичности, смотри на суть.

в extjs описание не менее декларативное и куда менее страшное (именно это я имел в виду под симпатичностью).

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

>может еще что-то было, запамятовал уже... это про com.

ага, ещё загрузку из XML через MSXML вспомни. Опять же: использование готовых компонент. Где тут расширение платформы своими средствами и понимание необходимости/механизмов для расширения?

если надо ООП — есть грязный хак в виде 1c++. почему нет собсно?

потому что ты посмотри как он работает. Нерасширяемое ООП. Что-то мы можем расширить, а что-то в местах вызываемых платформой — не можем, например: модель событий, подсистемы, реализация собственно самого ООП: из нерасширяемого псевдоООП платформы в духе Visual Basic вызывается наше расширенное, правильное ООП в духе 1с++. Костыль на костыле — как в этом хотя бы модель событий расширить, не говоря уже о аспектах, слоях и концептах? Как юнит-тестирование прикрутить ? (я молчу про FuncTest — это костыль ужасный).

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

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

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

1c++ — расширение языка. rainbow — как старт для расширение гуя.

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

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

в рамках модели DOM, да. Ну-ка, изобрази пролог на extjs.

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

мы как-то от темы уклонились, да. 1. Вот ты говорил про ненужные фичи лиспа, а по-моему, есть вполне себе нужные. К примеру, почему аспекты в природе появились сначала как расширение CLOS и MOP, а не на C++ с его VTable? А потом и концепты/контексты подтянулись — сколько их реализация в C++0x заняла, или выпилили-таки, не помню уже? Значит, реализовать некоторые концепции в рамках расширения одной модели оказалось проще, чем в рамках расширения другой. 2. Другое дело, что выбор фич языка «нужных» и «ненужных» сначала кажется спонтанным и сумбурным — без понимания того, как одно связано со всем остальным. 3. Готовые нерасширяемые платформы vs. концепций и напильника (надфиль для выпиливания решётки и чайная ложечка делать подкоп) — вообще отдельная тема, про платформу, а не про язык и его фичи. 4. Мощность в чём мерять. Предлагаю в человеко-ваттах. Ватты определяются языком и платформой, а дальше умножаем на количество человеков или умножаем способности каждого отдельного человека.

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

Из числа грязных хаков: ты вот ещё TurboMD вспомни. Была такая компонента, которая вызовы базовых объектов вместо стандартной реализации через IDispatch + последовательный линейный поиск метода по номеру делала простой бинарный поиск, или B-tree, не помню. Результат — вызовы методов ускорялись в 10 раз. А кто-то после этого будет нам рассказывать про неважные фичи языка, что неважно как реализовано ООП, через vtable, generic или метатаблицы...

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

> Готовые нерасширяемые платформы vs. концепций и напильника (надфиль для выпиливания решётки и чайная ложечка делать подкоп) — вообще отдельная тема

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

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

дети малые/рабочий_класс/придумать_свое плеваться начинают от «неготовости» для Ъ ынтерпрайза (с чем собсно сложно поспорить), а взрослые дяди видят в ней Развитие.

имхо вот эти два полюса и должны были схлеснуться :)

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

> чем тебе emacs или вот acme из Plan9 не DE?

а что, в емаксе уже появился текстовый редактор...?

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

> но лисп мной воспринимается в первую очередь все же как прогрессивная

такая песочница для взрослых дядей.


Ты просто малоинформативный и с этим трудно что-то поделать.

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

> Ты просто малоинформативный и с этим трудно что-то поделать.

т.е. ты серьезно считаешь лисп конкурентом той же жабе (jvm)?

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

и не надо про клозуру. в ней вагон децких багов.

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

> т.е. ты серьезно считаешь лисп конкурентом той же жабе (jvm)?

Хм, и что, по твоему, мешает создавать «промышленные приложения корпоративного уровня» на Common Lisp? Ну и да, конкурентом не является, поскольку при выборе языков для текущего проекта (а также предыдущего) я Java даже не рассматривал.

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

>дети малые/рабочий_класс/придумать_свое плеваться начинают от «неготовости» для Ъ ынтерпрайза (с чем собсно сложно поспорить), а взрослые дяди видят в ней Развитие.

любопытно.. а чего, собсно, школота ожидает от Ъ ынтер-прайса? Что означает «готов» для школоты и для взрослых дядей? Разные глобусы? В нужном месте и виста полезна — продать блондинкам ноутбук, к примеру.

ИМХО, современный ынтер-прайс — это такое унылое УГ, что мог быть написан на чём угодно. Однако ж, не пишут вот ынтер-прайс на хацкеле, avoid success by any cost, мухахашечки. Брезгают взрослые дяди копаться в этом даже палочкой, не то что любимым совочком в чужой песочнице.

Развитие увидеть не сложно — оне уже лет 30 минимум как подают надежды. А УГ и ныне там. Чего ещё от него ждать, как не развития — есть ведь куда.

Мне кажется, это оттого, что язык повёрнут задом к обычному быдлокодеру и передом к компилятору/яйцеголовому/высоколобому, отчего у разных категорий контингентов наступает шизофазия и «разные глобусы».
Поэтому становится слышно не того, кто разумнее или полезнее — а того, кто громче, оттого что стадо апологетов больше. Третий график заруливает второй, и побеждает самое простое, массовое решение.

К примеру, про Symbolics хорошо написано. Чё там нам, кабанам, инженеры человеческих душ, мы сами своё всё будем делать от железа до софта. Правда, оно не нужно особо никому всё такое уникальное — ибо disruptive innovation в терминах «дилеммы инноватора», да и конкуренты подсуетились — медленнее всего раза в два, а дешевле — на порядок.
Вот и не выросло на этом распиаренной ынтерпрайс-технологии, ибо каждый свои «такие приборы» пытался делать уникальными, конкурентным преимуществом (те же Symbolics ЕМНИП открывали исходники, отчего клонирование Столлманом было не очень рациональным действием) — и вместо единой платформы, технологии, отрасли
получились осколки империи, руины и скунскамера, по которым ходят ценители и ковыряются в отложениях.

Но там, где яйцеголовые умеют ориентироваться и делать разумный выбор, многокритериальный, по совокупности параметров, и не падать на пятую точку от отсутствия громких buzzwords — берут и делают нужные инструменты сами, что PicoLisp вот, что вполне симпотный MBase — школота ходит стадом за очередной новомодной диковиной и ждёт, пока о ней все заговорят.
Опомнитесь, дорогие мои. Говорить будут всегда только о том, на что *уже* есть тренд — а не начало того, о чём будут говорить лет через пять-десять. Модой и течениями надо овладевать заранее, устанавливать свою моду.
Это поняли жабоводы и не осилили лиспоголовые в своё время.
Но на месте лиспа/жабы может быть тащем-то любой язычок.

Так что лисп должен стать просто модным. Тогда за ним пойдут.

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

Тогда и отношение к языку будет правильное — как к конкретному инструменту, нужному на своём месте, в своё время, а не как к новомодному фетишу.

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

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

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

> интересно, по каким критериям ты рассматривал выбор

языка для текущего проекта. И приоритеты критериев.


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

Но вот насчёт Java у меня критерий один чёткий есть - я сколько раз за неё не пытался браться, так меня жутко в сон клонит, а от спящего программиста толку мало ;)

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

>моим жирным троллингом предполагалось к этому все и свести,

так, отрок, ты всю службу к **испу сведешь!111

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


ну кто же так флеймит, пишут-не пишут. Такой флейм долго не протянет — ссылками закидают, и те, и другие. Флеймить надо задорно, с огоньком. А ну РВФС перечитывать, как грамотно флеймить надо!111

<flame>однако, если при Виталике раньше эпистемологические вопросы про выбор из многомерных критериев как-то поднимать неудобно было, то сейчас народ про сравнительные фичи с объективными критериями языка спрашивает, на полном серьёзе, у местных субъективных авторитетов. Забыли про критерий познания :(
Да, не торт нынче, не торт... </flame>

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

> Я произвожу всякие оценки на основе личных ощущений, ибо вижу, что это хорошо, а это плохо,

это хорошо — практика есть критерий познания

Но вот насчёт Java у меня критерий один чёткий есть - [..], от спящего программиста толку мало ;)

а я решил изучить таки, штука массовая, значит для проектов более двух-трёх человек волей-неволей пригодится. Прочитал вот книжку по ANT и Maven2, это страшно нудно как-то реализовано. Интересно, а если этот xml на Sexpr-ах переписать, чтобы к примеру asdf понимал процессы жизненного цикла и плагины, польза будет?

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

ещё интересно, а как у вас выбор происходит. Типа сидите вы, ощущаете или графики там чертите, и ВНЕЗАПНО приходит мысль — сегодня всё будем писать на питоне, завтра на лиспе, послезавтра брейнфак вот осилим? Вот чем выбор ограничен, и где она есть, свобода выбора. Если проект не write only, а на трёх-пяти человек, выбор он более ограничен, чем в одиночку, в рукопашную? Значит, есть своя колея ^W ниша, и она определяется чем — инструментами, процессами, квалификацией исполнителей?
Просто кажется, что в одиночку и/или командой и критерии выбора, и сам выбор немного другие будут.
Лисп — удел одиночек, или не?

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

> Кто-то просил ДЕ на Лиспе ;)

опять 25.

милейший, вы потеряли нить ;)

DE на лиспе появились (и умерли) давно.

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

> что, по твоему, мешает создавать «промышленные приложения корпоративного уровня» на Common Lisp?

ну давай начнем с низменного.

есть у меня щас задачка. писателей для нее надо штук 6 как минимум. 6-ти лисперов, которые бы взяли и в лет (~полгода с небольшими допусками) решили поставленную задачу, в пределах видимости я не наблюдаю. в отличии от.

до вопросов денег даже не дошло, да?

при выборе языков для текущего проекта (а также предыдущего) я Java даже не рассматривал

проект одного энтузиаста, который не будет развиваться и поддерживаться? да хоть на браинфаке, чего уж.

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

> любопытно.. а чего, собсно, школота ожидает от Ъ ынтер-прайса? Что означает «готов» для школоты и для взрослых дядей?

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

ИМХО, современный ынтер-прайс — это такое унылое УГ, что мог быть написан на чём угодно.

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

В своё время и с жабы надо будет слазить куда-нибудь, и встанет вопрос, куда.

судя по тому, что на ней уже есть просто дохрена разного и работающего — это будет очень не скоро...

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

> Прочитал вот книжку по ANT и Maven2, это страшно нудно как-то реализовано. Интересно, а если этот xml на Sexpr-ах переписать, чтобы к примеру asdf понимал процессы жизненного цикла и плагины, польза будет?

почитай programming in clojure — они там как раз по ходу ant пишут.

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

>однако, если при Виталике раньше эпистемологические вопросы про выбор из многомерных критериев как-то поднимать неудобно было

Боялись, что Виталька их в этом перещеголяет?

Забыли про критерий познания :(


Практика без теории - ничто.

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

> Практика без теории - ничто.

Как это прикажете понимать?

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

> писателей для нее надо штук 6 как минимум

В моей местности найти 6 Java или 6 CL-разработчиков - это задачи примерно одного класса.

в пределах видимости я не наблюдаю. в отличии от.


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

проект одного энтузиаста, который не будет

развиваться и поддерживаться?



Где за это платяти? Однако, суровый ынтерпрайз, угу.

современный «ынтер-прайс» на 90% из типовых задач.


Это не так. У любого более-менее крупного бизнеса есть огромная куча проблем, которые могут быть решены с помощью IT. Ситуация в том, что IT-отделы решать только самые тупые и просты задачи, при этом - самым тупым и простым способом. Типично - начальник IT достаточно хорошее в материальном плане место и никто не хочет подставляться. А если браться за сложные (и наиболее полезные для бизнеса) задачи - то там же большой риск провала. Поэтому сложные задачи беруться решать только под очень большим давлением. Но и их стараються свести к чему-нибудь очень тупому. Угу.

судя по тому, что на ней уже есть просто дохрена

разного и работающего



Только не надо сказок рассказывать. Если бы с жабой всё было хорошо, не возникало трудностей при разработке и т.п., то никто бы ничего другого и не предлагал. Только по факту - у.г. А пиар на высоте, да.

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

> Учитывая отношение к предмету обсуждения

есть 1.5 cl-писаря. пытались на cl пописАть (~500 строк на cl вместе с макрами), да выпилили все и переписали на более других языках. такшта отношение такое, какое cl заслуживает.

Где за это платяти? Однако, суровый ынтерпрайз, угу.

т.е. в разработке участвовал таки один человек и больше туда никто не совался?

Ситуация в том, что IT-отделы решать только самые тупые и просты задачи, при этом - самым тупым и простым способом.

мне жаль, что у вас такой отдел. честно.

Если бы с жабой всё было хорошо, не возникало трудностей при разработке и т.п.

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

лисп сюда — в ынтерпрайз — сможет вписаться только тогда, когда у него будет нормаль структурированная база библиотек (соизмеримая с жабскими Ъ ынтерпрайз либами), когда появятся простые смертные, которые смогут жанглировать этими либами (а не илитни, которые должны все все попробовать, допилить и может быть(sic!) у них что-то и получится) и будут нормальные механизмы взаимодействия с существующими системами.

до этого момента лисп — игрушка, на которую можно разве что вздрочнуть перед сном.

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

>есть 1.5 cl-писаря. пытались на cl пописАть (~500 строк на cl вместе с макрами), да выпилили все и переписали на более других языках. такшта отношение такое, какое cl заслуживает.

не приведи ТНБ судить хоть о каком языке по Rastafarra... =)

лисп сюда — в ынтерпрайз — сможет вписаться...


массово - никогда. По крайней мере - CL. Расслабься, а то ведёшь себя как при обострении геморроя

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


вздрочнул? спи спокойно

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

Ты утверждаешь что linux хуже windows? Ведь большинство виндой пользуется, винда отличный инструмент...

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

> Ты утверждаешь что linux хуже windows?

у чем-то да, в чем-то нет.

винда отличный инструмент...

инструмент для чего?

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