Здравствуйте, pvgoran, Вы писали:
C>>Вообще, в CL мне не понравилось полное отсутствие нормального синтаксиса C>>(LISP=Lots of Incredibly Silly Paranthesis) и нестатическая типизация. P>А, т.е. статической типизации там нет? Тогда, похоже, тезис о том, что "CL почти-во-всем лучше C++" неверен (т.к. IMHO статическая типизация — мощный и необходимый инструмент, и если его уже нет в языке, я не представляю, как его можно было бы реализовать средствами языка).
Статической типизации в языке нет, но эффективная разница со статически типизированным языком очень невелика на самом деле. Там есть возможность давать аннотации типов и существует несколько статических тайпчекеров. Хотите примеров — почитайте пост в этой ветке http://www.rsdn.ru/Forum/Message.aspx?mid=1266445&only=1
Наличие динамической типизации совсем не означает, что не может быть выполнена статическая проверка типов, что нельзя давать переменным аннотации типов, и что компилятор не определяет типы и не использует эту информацию для кодогенерации. Как я говорил, эффективная разница между статически и современными динамически типизированными языками в наше время очень невелика — мы уже не в 70-х годах двадцатого столетия, и технологии компиляции шагнули далеко вперед. Подробнее в ссылках — повторяться неохота, тему уже обсуждали раз двадцать.
Здравствуйте, fionbio, Вы писали:
F>З.Ы. Анонимно писал, т.к. было лениво регистрироваться.
Зря. Но ничего, я тебе оценочку еще и сюда поставил, чтобы в профиль попала.
P>(Сразу скажу — синтаксис defmacro не знаю.)
P>my-transform, допустим, добавляет в преобразуемый код вызовы, выводящие на экран названия (процедуры) перед каждым вызовом процедуры.
P>Так вот, получится ли в данном примере пройтись отладчиком по исходному коду, который внутри вызова my-transform?
Нажимаю на М-. по названию функции — курсор переходит в начало:
(defun-print-name summ-2 (a b)
(+ a b))
Правда иногда SlLIME глючит, но не часто и вместо перехода к определению, просто печатает функциию в окне.
ЗЫ: отладчик соотвественно подвсечивает то что надо
Здравствуйте, _Obelisk_, Вы писали:
_O_>Какую реализацию Lisp-а под Win посоветуете ? Желательно наличие возможности вызова внешних функций написанных на С++.
P.S. Он юникодный, кстати. В наше время, когда от 90% windows-юзеров имеют NT-систему (2000 или XP), видеть проблемы с кодировками довольно-таки странно
CP>Во время компиляции в CL макросы ПОЛНОСТЬ рекурсивно разворачиваются до примитивов очень низкого уровня.
А я спорил с этим чтоли? Я говорил просто про код, т.е. текстовое представление, т.е. всё развёртывание происходит в компиляторе, но программер-то видит лишь текст только. А вот про ПОЛНОСТЬЮ имхо стандарт не гарантирует этого и тот же Грэхэм утверждает что есть интерпретаторы развёртывающие макросы в рантайме, хотя это и убого по производительности, но ничему по сути не противоречит.
Здравствуйте, eao197, Вы писали:
E>Здравствуйте, CrazyPit, Вы писали:
CP>>Да интересная дискуссия, даже зарегился на RSDN, чтоб сюда запостить.
E>
E>А скажи, CrazyPit, проекты какого объема тобой на Lisp-е пишутся? Как долго проект живет/развивается/сопровождается? Какова численность команды?
Список опсорсных проектов можно посмотреть например здесь. Ну а здесь например коммерческие проекты. У меня самого пока ещё нет достаточной практики, пишу сейчас одну программулину для себя. Может попозже возьму что-нить на заказ написать попробовать на лиспе, только проблема в том, что я в основном занимаюсь вебом. А там — perl, php, для питона то долго хостинг искать а для лиспа только если свой сервак...
Здравствуйте, Курилка, Вы писали:
К>Здравствуйте, CrazyPit, Вы писали:
CP>>Во время компиляции в CL макросы ПОЛНОСТЬ рекурсивно разворачиваются до примитивов очень низкого уровня.
К>А я спорил с этим чтоли?
Простите, недопонял.
K> Я говорил просто про код, т.е. текстовое представление, т.е. всё развёртывание происходит в компиляторе, но программер-то видит лишь текст только. А вот про ПОЛНОСТЬЮ имхо стандарт не гарантирует этого и тот же Грэхэм утверждает что есть интерпретаторы развёртывающие макросы в рантайме, хотя это и убого по производительности, но ничему по сути не противоречит.
Интересно. А какие реализации разварачиваю в рантайме?
Здравствуйте, CrazyPit, Вы писали:
E>>А скажи, CrazyPit, проекты какого объема тобой на Lisp-е пишутся? Как долго проект живет/развивается/сопровождается? Какова численность команды?
CP>Список опсорсных проектов можно посмотреть например здесь. Ну а здесь например коммерческие проекты. У меня самого пока ещё нет достаточной практики, пишу сейчас одну программулину для себя. Может попозже возьму что-нить на заказ написать попробовать на лиспе, только проблема в том, что я в основном занимаюсь вебом. А там — perl, php, для питона то долго хостинг искать а для лиспа только если свой сервак...
Вообще-то я спрашивал именно про собственные проекты.
... << RSDN@Home 1.1.4 stable rev. 510>>
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, CrazyPit, Вы писали:
CP>Здравствуйте, Курилка, Вы писали:
K>> Я говорил просто про код, т.е. текстовое представление, т.е. всё развёртывание происходит в компиляторе, но программер-то видит лишь текст только. А вот про ПОЛНОСТЬЮ имхо стандарт не гарантирует этого и тот же Грэхэм утверждает что есть интерпретаторы развёртывающие макросы в рантайме, хотя это и убого по производительности, но ничему по сути не противоречит.
CP>Интересно. А какие реализации разварачиваю в рантайме?
Насколько мне помнится, упоминание таких вариантов было в On Lisp, если честно — не вижу особой целесообразности такого.
Здравствуйте, eao197, Вы писали:
E>Здравствуйте, CrazyPit, Вы писали:
E>>>А скажи, CrazyPit, проекты какого объема тобой на Lisp-е пишутся? Как долго проект живет/развивается/сопровождается? Какова численность команды?
CP>>Список опсорсных проектов можно посмотреть например здесь. Ну а здесь например коммерческие проекты. У меня самого пока ещё нет достаточной практики, пишу сейчас одну программулину для себя. Может попозже возьму что-нить на заказ написать попробовать на лиспе, только проблема в том, что я в основном занимаюсь вебом. А там — perl, php, для питона то долго хостинг искать а для лиспа только если свой сервак...
E>Вообще-то я спрашивал именно про собственные проекты.
Ну через несколько месяцев могу рассказать и о своих, только они врят-ли будут большими, я студент и работаю пока на себя.
Здравствуйте, CrazyPit, Вы писали:
CP>Нажимаю на М-. по названию функции — курсор переходит в начало: CP>(defun-print-name summ-2 (a b) CP> (+ a b))
А что делает команда M-.?
CP>Правда иногда SlLIME глючит, но не часто и вместо перехода к определению, просто печатает функциию в окне. CP>ЗЫ: отладчик соотвественно подвсечивает то что надо
Здравствуйте, CrazyPit, Вы писали:
E>>Вообще-то я спрашивал именно про собственные проекты.
CP>Ну через несколько месяцев могу рассказать и о своих, только они врят-ли будут большими, я студент и работаю пока на себя.
Понятно. Только, имхо, после такого интересного изложения собственных впечатлений от Lisp было бы здорово прочитать что-то типа:
Наша команда из такого-то количества человек в течении последних N лет занимается развитием продукта, объем которого превышает столько-то тысяч строк. За это время было выпущено столько-то основных версии и столько-то обновлений. За это время нашу команду покинули столько-то человек и пришло столько-то человек. Никто из вновь прибывших никаких проблем с изучением ранее написанного кода не встретил.
Собственно к чему это я. Да просто довелось видеть несколько систем, написанных на Prolog-е, которые активно развивались командами из одного человека в каждой. Т.е. два проекта -- два разработчика. И все было хорошо, пока эти разработчики не вынуждены были покинуть проекты по разным причинам. После чего один проект просто закрылся. А второй был полностью переписан на C++ (причем за тот же срок). Переписан из-за того, что даже если бы кто-то изучил в достаточной степени Prolog, то разобраться в том объеме Prolog-вского кода было просто не реально.
Просто я боюсь, что проекты на Lisp-е будут хорошо выполняться до тех пор, пока их делает небольшая группа увлеченных Lisp-ом разработчиков. Как только эта ситуация нарушается, проект, каким бы успешным и важным он не был, загибается или переписывается: http://people.csail.mit.edu/gregs/ll1-discuss-archive-html/msg02367.html
Собственно, ситуация с C++ становится практически такой же
... << RSDN@Home 1.1.4 stable rev. 510>>
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, pvgoran, Вы писали:
P>Здравствуйте, CrazyPit, Вы писали:
CP>>Нажимаю на М-. по названию функции — курсор переходит в начало: CP>>(defun-print-name summ-2 (a b) CP>> (+ a b))
P>А что делает команда M-.?
Переходит на определение функции по названию (по умолч. то что под курсором)
Здравствуйте, eao197, Вы писали:
E>Здравствуйте, CrazyPit, Вы писали:
E>>>Вообще-то я спрашивал именно про собственные проекты.
CP>>Ну через несколько месяцев могу рассказать и о своих, только они врят-ли будут большими, я студент и работаю пока на себя.
E>Понятно. Только, имхо, после такого интересного изложения собственных впечатлений от Lisp было бы здорово прочитать что-то типа: E>Наша команда из такого-то количества человек в течении последних N лет занимается развитием продукта, объем которого превышает столько-то тысяч строк. За это время было выпущено столько-то основных версии и столько-то обновлений. За это время нашу команду покинули столько-то человек и пришло столько-то человек. Никто из вновь прибывших никаких проблем с изучением ранее написанного кода не встретил.
Мне бы тоже очень хотелось, чтобы было побольше таких отзывов. Ибо я бы не отказался работать в конторе которая ведёт разрабоки на лиспе.
E>Собственно к чему это я. Да просто довелось видеть несколько систем, написанных на Prolog-е, которые активно развивались командами из одного человека в каждой. Т.е. два проекта -- два разработчика. И все было хорошо, пока эти разработчики не вынуждены были покинуть проекты по разным причинам. После чего один проект просто закрылся. А второй был полностью переписан на C++ (причем за тот же срок). Переписан из-за того, что даже если бы кто-то изучил в достаточной степени Prolog, то разобраться в том объеме Prolog-вского кода было просто не реально.
E>Просто я боюсь, что проекты на Lisp-е будут хорошо выполняться до тех пор, пока их делает небольшая группа увлеченных Lisp-ом разработчиков. Как только эта ситуация нарушается, проект, каким бы успешным и важным он не был, загибается или переписывается: http://people.csail.mit.edu/gregs/ll1-discuss-archive-html/msg02367.html
E>Собственно, ситуация с C++ становится практически такой же
А с Lispом ситуация наоборот. За послении несколько лет интерес к нему постоянно возростает. К тому-же появились очень эфективные (близкие к быстродействию С++) опенсорсные(что очень важно ибо лиценция на тот же franzовский CL достаточно дорога) компиляторы. Говорят, что на западе появился спрос на лисп-программистов. Я надеюсь что за Lisp только укрепит свои позиции в будующем (возможно в прошлом лисп сильно обогнал своё время, и его врямя наступает только сейчас). И один из главных козырей это DSL, но об этом здесь уже писали.
Здравствуйте, eao197, Вы писали:
E>Здравствуйте, CrazyPit, Вы писали:
E>>>Вообще-то я спрашивал именно про собственные проекты.
CP>>Ну через несколько месяцев могу рассказать и о своих, только они врят-ли будут большими, я студент и работаю пока на себя.
E>Понятно. Только, имхо, после такого интересного изложения собственных впечатлений от Lisp было бы здорово прочитать что-то типа:
E>Наша команда из такого-то количества человек в течении последних N лет занимается развитием продукта, объем которого превышает столько-то тысяч строк. За это время было выпущено столько-то основных версии и столько-то обновлений. За это время нашу команду покинули столько-то человек и пришло столько-то человек. Никто из вновь прибывших никаких проблем с изучением ранее написанного кода не встретил.
Есть дядька такой — Пол Грэхэм. Вот он очнь интересно на этот вопрос отвечал. Написал он не много ни мало — yahoo shops. У него на сайте много чего написано о применении Лиспа. Например, вот: http://www.paulgraham.com/avg.html
What were the results of this experiment? Somewhat surprisingly, it worked. We eventually had many competitors, on the order of twenty to thirty of them, but none of their software could compete with ours. We had a wysiwyg online store builder that ran on the server and yet felt like a desktop application. Our competitors had cgi scripts. And we were always far ahead of them in features. Sometimes, in desperation, competitors would try to introduce features that we didn't have. But with Lisp our development cycle was so fast that we could sometimes duplicate a new feature within a day or two of a competitor announcing it in a press release. By the time journalists covering the press release got round to calling us, we would have the new feature too.
Здравствуйте, Gaperton, Вы писали:
G>Есть дядька такой — Пол Грэхэм. Вот он очнь интересно на этот вопрос отвечал. Написал он не много ни мало — yahoo shops. У него на сайте много чего написано о применении Лиспа. Например, вот: G>http://www.paulgraham.com/avg.html G>
G>What were the results of this experiment? Somewhat surprisingly, it worked. We eventually had many competitors, on the order of twenty to thirty of them, but none of their software could compete with ours. We had a wysiwyg online store builder that ran on the server and yet felt like a desktop application. Our competitors had cgi scripts. And we were always far ahead of them in features. Sometimes, in desperation, competitors would try to introduce features that we didn't have. But with Lisp our development cycle was so fast that we could sometimes duplicate a new feature within a day or two of a competitor announcing it in a press release. By the time journalists covering the press release got round to calling us, we would have the new feature too.
Только что прочел. И мне вот это понравилось:
In January 2003, Yahoo released a new version of the editor written in C++ and Perl. It's hard to say whether the program is no longer written in Lisp, though, because to translate this program into C++ they literally had to write a Lisp interpreter: the source files of all the page-generating templates are still, as far as I know, Lisp code. (See Greenspun's Tenth Rule.)
Здравствуйте, Кодёнок, Вы писали:
Кё>Здравствуйте, _Obelisk_, Вы писали:
_O_>>Какую реализацию Lisp-а под Win посоветуете ? Желательно наличие возможности вызова внешних функций написанных на С++.
Кё>Из бесплатных только CLISP знаю. http://clisp.cons.org/
Кё>P.S. Он юникодный, кстати. В наше время, когда от 90% windows-юзеров имеют NT-систему (2000 или XP), видеть проблемы с кодировками довольно-таки странно
E>>Наша команда из такого-то количества человек в течении последних N лет занимается развитием продукта, объем которого превышает столько-то тысяч строк. За это время было выпущено столько-то основных версии и столько-то обновлений. За это время нашу команду покинули столько-то человек и пришло столько-то человек. Никто из вновь прибывших никаких проблем с изучением ранее написанного кода не встретил.
G>Есть дядька такой — Пол Грэхэм. Вот он очнь интересно на этот вопрос отвечал. Написал он не много ни мало — yahoo shops. У него на сайте много чего написано о применении Лиспа. Например, вот: G>http://www.paulgraham.com/avg.html G>
G>What were the results of this experiment? Somewhat surprisingly, it worked. We eventually had many competitors, on the order of twenty to thirty of them, but none of their software could compete with ours. We had a wysiwyg online store builder that ran on the server and yet felt like a desktop application. Our competitors had cgi scripts. And we were always far ahead of them in features. Sometimes, in desperation, competitors would try to introduce features that we didn't have. But with Lisp our development cycle was so fast that we could sometimes duplicate a new feature within a day or two of a competitor announcing it in a press release. By the time journalists covering the press release got round to calling us, we would have the new feature too.
ты вобще ссылку открывал в сообщении на которое отвечаешь?
Здравствуйте, _Obelisk_, Вы писали:
_O_>Здравствуйте, Кодёнок, Вы писали:
Кё>>Здравствуйте, _Obelisk_, Вы писали:
_O_>>>Какую реализацию Lisp-а под Win посоветуете ? Желательно наличие возможности вызова внешних функций написанных на С++.
Кё>>Из бесплатных только CLISP знаю. http://clisp.cons.org/
Кё>>P.S. Он юникодный, кстати. В наше время, когда от 90% windows-юзеров имеют NT-систему (2000 или XP), видеть проблемы с кодировками довольно-таки странно
_O_>Это я видел, хотелось бы не под cygwin.
Gaperton wrote:
> Есть дядька такой — Пол Грэхэм. Вот он очнь интересно на этот вопрос > отвечал. Написал он не много ни мало — yahoo shops. У него на сайте > много чего написано о применении Лиспа. Например, вот: > http://www.paulgraham.com/avg.html > What were the results of this experiment? Somewhat surprisingly, it > worked. We eventually had many competitors, on the order of twenty to > thirty of them, but none of their software could compete with ours. We > had a wysiwyg online store builder that ran on the server and yet felt > like a desktop application. Our competitors had cgi scripts. And we > were always far ahead of them in features. Sometimes, in desperation, > competitors would try to introduce features that we didn't have. But > with Lisp our development cycle was so fast that we could sometimes > duplicate a new feature within a day or two of a competitor announcing > it in a press release. By the time journalists covering the press > release got round to calling us, we would have the new feature too.
Да, ребята _для_ _того_ _времени_ придумали классный подход к
веб-дизайну — оно было намного лучше CGI (хуже которых что-то сложно
придумать).
Но потом пришла Java и обогнала их по фичам (Cocoon — публикация в XML,
JSP/Servlets+Struts — в создании шаблонов, Tapestry — в "компонентном"
программировании), а всякие Zope'ы/RubyOnRails/PHP обошли их по удобству
использования.
В итоге Yahoo был вынужден переписать их движок на С++ — видимо код
совсем перестал быть поддерживаемым. Я лично на себе тоже подобное
испытал поддерживая чужой код — это было хуже правки глюков в
Boost.Spirit'е под VC6