LINUX.ORG.RU

Ручное управление памятью в лиспе

 


2

3

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


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

ну он не так уж и неправ. если понимать под собирательным «Лисп вообще» метаязык символьных вычислений на S-выражениях, какой-то метаЛисп то все эти диалекты Лиспа и есть различные реализации метаЛиспа.

Но, т.к. стандарта этого метаЛиспа нет, то тут говорить не о чем. Это как сказать, что C/C++/... это реализации некоего метаПроцедурногоНизукоуровневогоЯзыка. Давайте тогда сравнивать по парадигмам, тут у Лиспа очевидное преимущество, что он может реализовать любую парадигму не вводя при этом интерпретацию/компиляцию другого языка. Для C/C++ и Java/JVM это в принципе не возможно (в общем случае, некоторые вещи на шаблонах таки можно сделать).

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

Не знаю — вы придумали этот рисерч, вы и мучайтесь над тем, зачем он нужен. А нерешаемые проблемы я вам уже озвучил: нельзя добавить функциональщину в Си++ не выпуская новый Си++22 и не вводя новый язык. А в Лиспе или Форте можно.

кто хочет применять — давно применяет. кто не хочет — тоже давно старается не применять.

Ну так они ещё и попутно пытаются отрицать наличие в Лиспе уникальных возможностей и их преимуществ в определенных областях применения.

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

Покажи написанное на лиспе ядро ОС с возможностями линукса,

не созрело, прототипы недопилены. а так movitz и т.п.

СУБД с возможностями PostgreSQL,

внезапно, PostgreSQL (храни ссылку бережно, а то потом хрен найдёшь)

сцуко, у него тоже орфография эрика наггума. это заразно!!!

the project started with jeff anton, steven grady and some grad students. they started from scratch. no code was inherited from ingres. (later, i ripped off a little bit of code from ingres to implement one of the numeric types...i think i might have replaced it with posix calls before pg95.)

from the beginning until late 1989, the system was divided into two parts: one written in C, the other written in franz lisp. the line was drawn below the traffic cop, query executor and query optimizer; hence, the flow of control went back and forth from the lisp «top» half into the C «bottom» half. the interface was relatively narrow (parser, system catalogs, access method interface) and used the essentially undocumented franz lisp equivalent of JNI.

steven wrote and maintained the parser, which was always written using lex/yacc (i.e., C) but had to generate (in C!) a lisp parse tree. jeff wrote the traffic cop and (the first version of) a lot of the rest of the C software. mike hirohama joined early on and wrote stuff like the first b-tree implementation before becoming chief programmer in 1988. chinheng hong (an MS student, now at oracle) wrote the query executor in franz lisp. zelaine fong (an MS student, now at informix) wrote the query optimizer in franz lisp. lisp/C integration was still going on when philip chang and i joined the project in late 1986.

in late 1989, jeff goh wrote a postgres-specific lisp->C translator that automated most of the conversion.

веб-сервер уровня nginx и

зачем? будто в nginx есть что-то выдающееся. вот в antiweb есть что-то выдающееся.

браузер уровня Firefox.

есть Closure, но он сильно не допилен

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

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

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

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

Как минимум, ещё по производительности ВМ и наличию библиотек.

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

А вот такие вещи, как интерактивная разработка или MOP/CLOS (и ещё некоторые особенности помельче), вот они обеспечивают реальный профит, вполне себе ощутимый на фоне других языков.

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

на трёх уровнях: язык, семантика, синтаксис, абстракции; реализация, библиотеки; ide, процесс разработки, система/подсистемы/образ системы.

интерактивные, инкрементальные процессы разработки и методологии, и т.п.

ну и метауровень гибкости, да.

т.е., если кто-то «любит лизать батарейки», у него из трёх этих уровней идёт перекос во второй уровень; у кого-то со стандартными процессами перекос в третий; надеюсь перекос в первый уровень на синтаксис все уже переболели, а вот полезные семантики и абстракции и способы их организации — вот там весь секс и цимус, на уровне кода.

а дзен — в объединении нескольких уровней совместно, в эмерждментности системы из таких уровней, когда одно поддерживает другое. и он таки есть.

and we need to go deeper. на метауровень.

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

к примеру, посмотри пример: открой исходник в браузере.

кстати, любопытно, когда archimag писал свой бутылкоукладчик, ты такой вариант рассматривал?

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

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

но мне интересна твоя оценка.

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

Так на что же они тогда тратят силы?

а ты не догадываешься? каждый пишет по одной реализации, с бдж и ш

ну, про Firefox я промолчу

Так почему до сих пор не сделали лучший Firefox, на лиспе?

а я не знаю, кстати.

вот антивеб весь такой модульный, сервер, есть.

вот TeXmacs со встроенной схемой, который красивые такие картинки рисует, есть.

вот skribillo, которое на выходе из лиспа генерит latex/contex/lout и в итоге pdf или html есть.

даже dsssl с валидацией sgml схемы на Cхеме — был, да вроде издох уже.

а серьёзных, по настоящему, в хорошем смысле буйных лисперов всё это вместе проинтегрировать в одно целое — нет. wtf?

а вот ты, лично ты, ходил бы в тёплый векторный фидонет гипертекст из под Emacs 2.0 на S-выражениях, вместо Firefox-а?

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

Почему они не были написаны на лиспе?

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

и переписаны на что-то другое.

а весь мир всё равно упорно жрёт говно мейнстрима. Идиоты, наверное? Да?

да

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

Что у вас за комплексы? Луговский покусал?

секта «Свидетели Иеговы Луговского», лол

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

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

(а постргесс так вообще в 80-ых). В том момент не было свободных хороших реализаций CL, доступные реализации были медленным и требовали танцев с бубном. Писать что-либо подобное на CL в то время было нельзя в принципе

тем не менее, PostgreSQL был написан частично на franz common lisp, частично на Си. пруфлинк на мейллист по треду выше.

ещё Dylan был раскручен из Lispworks, той же командой. но одептов Dylan «сам» эрик наггум не признал, обозвал еретиками послал и предал анафеме с воплями «это не cl, и не будет cl».

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

*если кто другие примеры знает, приводите*

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

А почему они должны были его делать?

Да хотя бы для себя. Ведь Firefox — раздутый, Opera — проприетарщина и RIP, Chrome ничего не умеет. Неужели это так сложно — написать браузер на лиспе? Ведь лисп на порядки повышает производительность разработки, а лиспер одним мизинцем уделывает десяток жабабыдлокодеров! Давно бы сделали нормальный браузер — но нет, есть только недопиленная поделка Closure. Вот загдка-то, а?

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

Более менее вменяемая инфраструктура стала появляться только где-то после 2003-го года (после создания SLIME).

Но ведь прошло 10 лет, а на CL так ничего и не было написано (масштаба проектов, сделанных на нормальных языках).

А сколько проектов было сделано на Java за первые 10 лет существования языка (с 1995 по 2005) — думаю, это в комментариях не нуждается.

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

То есть, ты даже язык общего назначения от внутреннего DSL на S-выражениях не отличаешь? Зачем им там ошметки от лиспа понадобились, когда хватило бы какого-нибудь Lua отдельный вопрос.

давай в обратную сторону, от ошмётков к полноразмерному cl.

зачем нам скрипач?

вот на примере AutoLISP. я не знаю, какая там реализация лиспа из которой раскручивалось, наверняка свой велосипед.

но вот в клоне BricsCAD есть встроенная реализация ISLISP OpenLisp.

встроили её из принципа «хотим иметь реализацию AutoLISP на макросах», чтобы выполнять AutoLISP скрипты без автокада.

поэтому лисп, а не луа (там емнип под виндой реализации типа VBscript были, луа было бы не сложно запилить, если бы она там вообще дала какой-то профит) — потому что большинство «плагинов к автокаду» на лиспе. естественно, полноразмерный CL был для этого перебор, и ISLISP вполне на своём месте.

а вот чем на этом месте был бы лучше «полноразмерный CL»?

СLOS вместо ILOS, ну и так далее?

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

То есть, ты даже язык общего назначения от внутреннего DSL на S-выражениях не отличаешь?

Конечно же, я идиот и не отличаю. И Википедию тоже пишут идиоты, которые не отличают и почему-то (вот чудаки!) относят AutoLISP к семейству лиспов. Надо им будет написать, что они полные придурки и ничего не смыслят в лиспах, а вот некий metadeu5 с ЛОРа соображает лучше их.

Не единственное, ещё, как минимум, символы и макросистема

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

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

Дают, ты просто не грамотный.

Так покажи же их.

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

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

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

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

тут у Лиспа очевидное преимущество, что он может реализовать любую парадигму не вводя при этом интерпретацию/компиляцию другого языка

Но ведь это будет ad hoc, informally-specified, bug-ridden, slow implementation of half of C++/Java/whatever. Зачем это нужно?

Ну так они ещё и попутно пытаются отрицать наличие в Лиспе уникальных возможностей и их преимуществ в определенных областях применения.

Ну так покажи же их наконец!

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

не созрело, прототипы недопилены
есть Closure, но он сильно не допилен

Just as planned.

внезапно, PostgreSQL

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

будто в nginx есть что-то выдающееся

Да вот хотя бы «ability to handle more than 10,000 simultaneous connections with a low memory footprint (~2.5 MB per 10k inactive HTTP keep-alive connections).» Как тебе такое? Это уже не говоря о:

According to Netcraft's December 2012 Web Server Survey, nginx was found to be the third most widely used web server across all domains (12.07% of surveyed sites) and the second most widely used web server for all «active» sites (11.83% of surveyed sites). According to W3Techs, it is used by 14.0% of the top 1 million websites, and by 29.1% of the top 1,000 websites. According to BuiltWith, it is used on 18% of the top 10,000 websites, and its growth within the top 10k, 100k and 1 million segments is increasing.

вот в antiweb есть что-то выдающееся.

Что именно?

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

Ведь вышеописанные «фичи» «лиспов» не дают реальных преимуществ на практике по сравнению с нормальными языками.

Дают,

да напишите уже эти case studies и давайте каждому такому вопрошающему ссылку на них с пометкой «хранить бережно», как анонимус из поста выше с проблемами.

а то вопросы-то все по 10 разу задают.

напишите анкету «анонимных лисповодов», здравствуйте, я лиспер, и готов это признать. в 10 лет я попробовал лисп в *case study* применил его *описание метода*, пристрастился, и вот тут мне пофартило.

что-то подобное на planet.lisp.org есть: интервью проводят. но там случайные лисперы больше о себе, а не о кейсе и о методе.

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

а вот чем на этом месте был бы лучше «полноразмерный CL»? СLOS вместо ILOS, ну и так далее?

Я-то как раз считаю, что ничем не лучше, тот же ISLISP вполне себе полноценный Лисп, а уж CLOS там или ILOS, не суть.

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

да напишите уже эти case studies и давайте каждому такому вопрошающему ссылку на них

Но ведь их почему-то никто не написал, за много лет лиспосрачей на ЛОРе. Только не в стиле «лишп это круто, а вы быдло», а с доказательствами того, что лисп даёт реальные преимущества.

Может, потому, что таких преимуществ нет?

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

Ведь лисп на порядки повышает производительность разработки,
а лиспер одним мизинцем уделывает десяток жабабыдлокодеров!

Вы бредите.

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

Лисперов мало, зачем им тратить силы на создание систем, которые и так уже есть и работаю вполне неплохо

а это поинт.

Русский биолог Николай Владимирович Тимофеев-Ресовский, цитата из книги Даниила Гранина 'Зубр'.

- - -
- Ученый должен быть достаточно ленив,- объяснял мне Зубр.- На этот счет у англичан есть прекрасное правило: не стоит делать того, что все равно сделают немцы...
В 1934 году удалось наконец опубликовать итоги. Сперва он публиковал большую статью или даже книгу, затем, после того как проблема прояснялась, устаивалась, печатал краткую статью, которая итожила и оставалась надолго. Потому что любую работу можно изложить кратко, ежели, конечно, сам до конца ее понял. Довести до самой что ни на есть простоты - это и есть настоящая наука...
Он пришел к выводу, который многое определил: все исходное должно быть просто...
Однажды он услышал от Нильса Бора и усвоил на всю жизнь: если человек не понимает проблемы, он пишет много формул, а когда поймет в чем дело, их остается в лучшем случае две.

книгa Даниила Гранина «Зубр»

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

Но ведь их почему-то никто не написал,
за много лет лиспосрачей на ЛОРе.

Скорей всего вы просто не умеете читать. Нормальную аргументацию пропускаете, а читаете только тролей. Наверное так веселей.

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

прогрессивное человечество давно в основном перешло на проектирование снизу-вверх

Раскрой тему.

а также по-диагонали и в шахматном порядке наискосок зигзагом :))

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

Вы бредите.

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

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

Нормальную аргументацию пропускаете

Так приведи же её. Где она?

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

Конечно же, я идиот и не отличаю. И Википедию тоже пишут идиоты, которые не отличают и почему-то (вот чудаки!) относят AutoLISP к семейству лиспов.

Выше было показано, что многие диалекты лиспа не обладают макросистемой.

Да, действительно, все языки на s-exp'ах с префиксной нотацией принято относить к Лиспам. Но не любой диалект Лиспа можно отнести к языкам общего назначения. Если я завтра сделаю s-exp синтаксис для Си, он от этого Лиспом не станет, хотя в википедию, наверное попадет. А тот же Ruby или Dylan, которые от Лиспа взяли очень много не попадут, скобок же нету. Думаю, это скорее больше говорит о Википедии, чем о родстве этих языков.

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

суждение большинства местных лисп-апологетов

Что не лучшим образом характеризует часть местных anonymous, но не более того, лисп к этому не имеет отношения.

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

Не думаю, что все эти sweet-expressions получат серьезное распространение среди практикующих лисперов — нет такой необходимости.

Интересно, кстати, что об этом сказали бы все эти неосиляторы.

+1. интересно, что когда dylan одепты вылезли в comp.news.common-lisp, эрик наггум послал их в том числе из-за того, что не осилил D-выражения и Skeleton Syntax Tree.

в общем, распространения среди олдовых лисперов не получит, но может вдруг нубьё unbiased заценит.

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

Но ведь это будет ad hoc, informally-specified, bug-ridden, slow implementation of half of C++/Java/whatever. Зачем это нужно?

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

Ну так покажи же их наконец!

Что тебе ещё показать? Уже все по два раза показали и рассказали.

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

Но не любой диалект Лиспа можно отнести к языкам общего назначения.

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

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

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

У языков общего назначения тоже ограниченная область применения. Всегда ваш, Копетан.

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

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

Но ведь ООП-языки справляются с этой задачей и без помощи макросов и метапрограммирования. В чём преимущество лиспа-то?

Что тебе ещё показать? Уже все по два раза показали и рассказали.

Где? Приведи ссылку.

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

Лисперов мало, зачем им тратить силы на создание систем, которые и так уже есть и работаю вполне неплохо

Ну, хорошо. А если таких систем нет?

Например, сравнительно недавно появились такие продукты как JIRA (issue tracker уровня предприятия) и Confluence (enterprise collaboration platform). Компания Atlassian разработала их на Java и успешно продаёт. Почему же лисперы не подсуетились и не сделали подобный продукт? Ведь они бы могли это сделать быстрее и меньшим числом разработчиков (=> больше з/п у каждого из них). А более качественный и поддерживаемый код дал бы возможности развития и конкурентное преимущество.

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

Но ведь ООП-языки справляются с этой задачей и без помощи макросов и метапрограммирования. В чём преимущество лиспа-то?

Ну какие справляются-то? Если бы справлялись, то их бы не появлялось новых в таких количествах и не плодили бы новых стандартов, в которые уже 10 лет никак лямбды, да замыкания вкорячить не могут (привет Си++, привет Ява!)

Преимущество Лиспа как раз в том, что тебе не нужно ждать, пока Страус или Гослинг поймут таки что такое замыкание и как фрейм на стеке сделать. Ты пишешь 3 макроса, 2 недели их отлаживаешь (хыыыы) и у тебя все работает. Выкладываешь свою реализацию, и вуаля у всех лисперов теперь есть паттерн-матчинг, например, который будет только в Си++22 и Java 17.

Где? Приведи ссылку.

Ты объясни сначала что ты хочешь увидеть? Уникальные возможности они же преимущества я перечислил ранее.

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

Если эти readable s-expressions обогатить ещё синтаксисом из Haskell (тем же $, например), то может получиться реальный взрыв мозга для 270тыщвмесяц-школоты

там есть $.

где мне получить мои 270к?

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

Confluence

JIRA ещё более-менее, но Confluence же такое говно...

Ведь они бы могли это сделать быстрее и
меньшим числом разработчиков

Я думаю, что основные расходы компании Atlassian идут не на разработку, а маркетинг и продвижение. Ну и, естественно, инфраструктура в CL для разработки веб-приложений не так развита, как в Java.

Почему же лисперы не подсуетились и не сделали
подобный продукт?

А почему вы считаете, что если лисп превосходит другие языки, то на нём должно быть всё написано? Вот некоторые лисперы взяли и написали QPX, срубили 700 000 000 бабла (и одна большая компания даже опубликовала такой документ) - я же не требую, что бы вы мне показали аналог этой системы на Java.

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

Да вот хотя бы «ability to handle more than 10,000 simultaneous connections with a low memory footprint (~2.5 MB per 10k inactive HTTP keep-alive connections).» Как тебе такое?

ну и что? theepeedee или как там его тоже много коннекшнов держал, точную цифру не помню, но замеры в его бложике были.

2.5 Мб на 1 сайт? а вот хз, можно ли в лисповых вебсерверах так, мерять надо.

архитектура кстати в nginx — ничего особенного, обычная стейтмашина. такое макросами просто пишется.

вот в antiweb есть что-то выдающееся.

Что именно?

архитектура, модульность. каждый модуль на своём месте.

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

там есть $.

Да, я потом приметил. Молодцы создатели, ещё чуть-чуть и получится Haskelisp, и тогда мёртвые позавидуют живым.

где мне получить мои 270к?

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

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

(=> больше з/п у каждого из них)

Так вот где собака порылась - тебе бабок надо... Закрой тред, выкинь лисп из головы и никогда больше про него не вспоминай - тебе ни какой лисп бабки не принесёт в клювике. Так что свободен.

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

книгa Даниила Гранина «Зубр»

оттуда же, прекрасное:

57. Впоследствии спорили: кто Зубр – открыватель или пониматель? То есть тот, кто нашел, или тот, кто первый понял и объяснил? Пожалуй, большинство склонялось к тому, что он – пониматель, для него результат измерялся приближением к истине, а истинно то, что плодотворно. Все равно его усилия лишь ступенька на лестнице, идущей в небо. Да и можно ли мерить жизнь результатами? За суммой результатов пропадает жизнь. А жизнь больше любых результатов. Жизнь – это прежде всего любовь. Научиться можно только тому, что любишь, и понять можно только то, что любишь...

261. Подход его к научным проблемам ошарашивал еретизмом.

- Мудрый Господь учил: все сложное не нужно, а все нужное просто.

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

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

- Дай Боже все самому уметь, да не все самому делать.

- Надо не только читать, но и много думать, читая.

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

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

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

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

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

не следует.

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

Но ведь ООП-языки справляются с этой задачей и без помощи макросов и метапрограммирования. В чём преимущество лиспа-то?

в том, что в итоге в ООП языках ты остаёшься завязан на реализацию объектной системы в рантайме, а макросы отрабатывают во время компиляции (в D это называется CTFE, compile time function execution).

поэтому можно сделать любую объектную на макросах, но не на любой объектной системе можно сделать макросы.

макросы мощнее. но дело не в этом, а в том, что нужен механизм, когда весь компилятор доступен в СTFE.

назови это макросами в лиспе или шаблонами в D, не суть.

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

для примера, как это реализовано в D и в Dylan:

в D я так понимаю, есть 3 механизма: string mixin (исходник строкой, подстановка, генерация в CTFE), объектный миксин, концепты как в С++11 только правильней (ограничения сигнатуры функции в виде контрактов на вызов).

то есть, макросы принципиально возможны, и пример этого — проект Pegged на гитхабе (реализация PEG парсера на гитхабе, а не ваши извращённые фантазии, поручик, не гуглите таких картинок).

в этом проекте что происходит:
описывается PEG грамматикой синтаксис языка
далее в виде mixin это подставляется в шаблоны
которые раскрываются в CTFE, при этом доступны почти все возможности обычного компилятора
грамматика компилируется при компиляции парсера (генерация парсера + компиляция сгенерированного) в один присест, зависимости в рантайме минимальны

ну это грубо говоря way to go реализации лисп макросов в D, если кому-то не хватает стандартных трёх типов приведённых выше , но какой-то затратный : это не AST макросы, потому что весь компилятор пока в виде библиотеки не доступен. но всё к тому идёт, если dmd перепишут на D (есть 3-4 реализации «D на D» и проч, но тоже недопилены).

как это происходит в Dylan:

AST макросы, даже не AST, а SST (skeleton syntax как общая форма всех abstract токенов). поверх этого - D-выражения, шаблон с типизированными гнёздами для подстановок. и во время компиляции доступен весь компилятор, весь рантайм.

тем не менее, реализация по другому, поэтому такие AST макросы старожилам вроде наггума или den73 не нравятся.

а вот теперь напиши мне про объекты, как выглядят макросы-на- объектах. как в смоллтоке я примерно представляю (например, реализация Newspeak или Ometa), а вот как это например в каком-нибудь Nemerle2 выглядит?

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

JIRA (issue tracker уровня предприятия) и Confluence (enterprise collaboration platform). Компания Atlassian разработала их на Java и успешно продаёт. Почему же лисперы не подсуетились и не сделали подобный продукт? Ведь они бы могли это сделать быстрее и меньшим числом разработчиков (=> больше з/п у каждого из них). А более качественный и поддерживаемый код дал бы возможности развития и конкурентное преимущество.

как по мне, так и rt и для проектов наколенке и sd тоже неплох. а они вообще на перле.

и причём тут именно лисп?

почему не было факта или почему не было преимущество?

преимущество имхо есть, а факта не было потому например, что lispworks 1500$ стоит, а «яву-яву взял я нахаляву».

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

Это всё замечательно, только не понятно какой от этого профит, если вспомнить о том, что основное предназначение языка программирования - писать полезные (для пользователей!) программы?

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

JIRA ещё более-менее, но Confluence же такое говно..

JIRA как раз интересна гибкостью настраиваемых в ней процессов, но вот интересно, кто нибудь управление проектом делает в ней, или все из неё импортируют/экспортируют в гуёвую утилиту вроде вот такой?

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

Ну какие справляются-то? Если бы справлялись, то их бы не появлялось новых в таких количествах и не плодили бы новых стандартов

Но ведь это не так. С++ и Java справляются хорошо, но новые стандарты позволят справляться ещё лучше.

Ты пишешь 3 макроса, 2 недели их отлаживаешь (хыыыы) и у тебя все работает. Выкладываешь свою реализацию, и вуаля у всех лисперов теперь есть паттерн-матчинг

Но зачем это нужно? Разве это даёт какое-то преимущество? Ведь нормальные языки отлично справляются и без паттерн-матчинга.

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

Где именно?

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

Почему же лисперы не подсуетились и не сделали подобный продукт? Ведь они бы могли это сделать быстрее и меньшим числом разработчиков (=> больше з/п у каждого из них). А более качественный и поддерживаемый код дал бы возможности развития и конкурентное преимущество.

я даже подскажу где деньги лежат: в какой-то семантической вики, каком-то RDF хранилище и движке бизнес-процессов поверх всего этого (типа Runa/WFE).

дарю идею.

теоретически, можно и это сделать на лиспе. взять gnowsys-mode на базе org-mode babel из проекта GNOWSYS, и пилить семантическую вики из емакса.

сам GNOWSYS (питон, джанго) в качестве хранилища RDF можно выкинуть, и взять какое-то встроенное в lispworks или alegro cl.

но если бы не было, можно было бы попробовать какой-то бесплатный MUMPS вместо RDF хранилища. далее, запиливаем в вики бизнес-процессы в Runa/WFE и генератор бизнес-процессов BPML из вики-описания. что будет несложно, потому что вики у нас семантическая.

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

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

далее, самое главное: интегрировать это, написать инструкции, отработать workflow.

поинт в том, что редактироваться всё должно из емакса, как org-mode babel, literate programming, reproducible research.

далее, опциональные плюшки: прикрутить TeXmacs фронтэнд с красивыми картинками, например, или бекенд skribillo с генерацией pdf/html/xml/whatever на выходе из разметки в S-expr или org-mode (gnowsys-mode?) или whatever на входе.

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

затем, собственно коробку собрать и кому-нибудь ухитриться продать.

заложи расходы на lispworks (1500$) и интеграцию (план разработки) — почти все запчати уже есть только надо допилить всё вместе и интегрировать. ну продумать вопрос с генерацией BP и BPM движком.

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

посмотри например, как продают бизнес-студио: кому именно и под каким соусом. там даже есть вторичный рынок бизнес-моделей «под ключ» на этой платформе.

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

дарю идею. дьявол, конечно в деталях — но ты же конечно тоже ниасилишь собрать коробку а будешь ныть и плакаться «а вот в JIRA то в JIRA сё», «а вот в бизнес-студии из коробки», «а вот там зарплата по 270к» ???

... но настоящих буйных мало, вот и нету вожаков ...

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