Re[3]: Metaprogramming et al
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 12.07.05 13:40
Оценка:
Здравствуйте, Сергей Туленцев, Вы писали:

СТ>Заинтересованный, я полез в инет и добыл: emacs-21.3, slime-1.2.1, Allegro CL 6.2, clisp-2.33.2


Эка, народ как пробрало!
А давайте через два месяца у тех, кто с Lisp-ом благодоря этому топику познакомился, спросим: как оно, вообще?
... << RSDN@Home 1.1.4 stable rev. 510>>


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[3]: Metaprogramming et al
От: CrazyPit  
Дата: 12.07.05 13:52
Оценка: 4 (2)
Здравствуйте, Сергей Туленцев, Вы писали:

СТ>Здравствуйте, CrazyPit, Вы писали:


CP>>Да интересная дискуссия, даже зарегился на RSDN, чтоб сюда запостить.

CP>>С Лиспом я знаком года 2-3, с тех пор как плотно начал юзать емакс, но именно CL, ну и схемой, заинтересовался только в конце прошлого года. Сначала прочитал, правда не до конца, первый том "Мир Лиспа", как то мне не очень понравилось и я забил, так что не советую вам её читать, очень скучно плюс только в том, что про Common Lisp это единственная книга на русском. Потом, когда появилась в инете Practical Common Lisp, и я его прочитал, да ещё открыл для себя SLIME, всё стало намного интереснее. Язык ИМХО самый навороченный из всех, и причина этому именно макросы в сочетании с простым представлением программ и данных. Чего стоят те же макросы loop & format.

СТ>Заинтересованный, я полез в инет и добыл: emacs-21.3, slime-1.2.1, Allegro CL 6.2, clisp-2.33.2

СТ>Пытался подружить парочку emacs + slim. Максимум, что мне удалось, это вызов консоли Аллегро по M-x slime. Но, думаю, эффект должен быть немного другой. Не поделишься ли опытом настройки?

Ну вопервых при редактировании лиспа должен стоять slime-mode(M-x slime-mode) у меня это автоматически настроено. Потом лучше чтобы был отключен ILisp, но у тебя он скорее всего не установлен.
Вот часть моих емаксовских конфигов, относящихся к Common Lisp:

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;  LISP ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;; Functions ;;;;;;;;;;

(defun se:move-past-close-and-just-one-space ()
  "Move past next `)' and ensure just one space after it."
  (interactive)
  (up-list)
  (just-one-space))


(defun mb:unwrap-next-sexp (&optional kill-n-sexps)
  "Convert (x ...) to ..."
  (interactive "P")
  (forward-sexp)
  (backward-delete-char 1)
  (backward-up-list)
  (delete-char 1)
  (let ((start-region-to-kill (point)))
    (kill-sexp kill-n-sexps)
    (down-list)
    (delete-region start-region-to-kill (1- (point)))
    (backward-up-list))
  (lisp-indent-line))

;;;;;;;;;; Common Lisp ;;;;;;;;;;
(add-to-list 'load-path "/home/cp/arc/lisp/slime-cvs/slime")
(require 'slime)

;;;;; Functions ;;;;;
(defun cliki:start-slime ()
  (unless (slime-connected-p)
    (save-excursion (slime))))


;;;;; SLIME Setup ;;;;;



(slime-setup)
(slime-setup :autodoc t)
(set-variable 'slime-net-coding-system 'iso-latin-1-unix)


;(set-variable inferior-lisp-program "/home/cp/arc/lisp/acl62_trial/alisp")
;(set-variable inferior-lisp-program "clisp")
(setf inferior-lisp-program "lisp")


;;;;; Documentaion ;;;;;
(load "/usr/share/emacs/21.4/site-lisp/ilisp/extra/cltl2.el" )
(setf common-lisp-hyperspec-root "file:/usr/share/doc/hyperspec/")
(setf cltl2-root-url "file:///usr/share/doc/cltl/")

;;;;; Key bindings ;;;;;

(global-set-key "\C-cs" 'slime-selector)

(add-hook 'slime-connected-hook 'slime-ensure-typeout-frame)

(add-hook 'slime-mode-hook
      (lambda ()
        (define-key slime-mode-map  "^C^D^C" 'cltl2-lookup)
        (define-key slime-mode-map "^C^R" 'slime-compile-region)
        (define-key slime-mode-map  "^C^Dc"  'cltl2-lookup)
        (define-key slime-mode-map "\333" 'slime-arglist)
        (define-key slime-mode-map [(?\()] 'insert-parentheses)
        (define-key slime-mode-map [(?\))] 'se:move-past-close-and-just-one-space)
        (define-key slime-mode-map [(return)] 'newline-and-indent)
        (define-key slime-mode-map "\335" 'move-past-close-and-reindent)        
        (define-key slime-mode-map [(control ?\=)] (lambda () (interactive) (insert "(")))
        (define-key slime-mode-map [(control ?\\)] (lambda () (interactive) (insert ")")))
        
        ))



ЗЫ: обязательно прочитай всё доку по SLIME. И ещё поиищи статьи на cliki.net по slime и редактированию лиспа в Emacs
Re[3]: Metaprogramming et al
От: fionbio  
Дата: 12.07.05 14:22
Оценка:
Здравствуйте, Сергей Туленцев, Вы писали:

СТ>Здравствуйте, CrazyPit, Вы писали:


CP>>Да интересная дискуссия, даже зарегился на RSDN, чтоб сюда запостить.

CP>>С Лиспом я знаком года 2-3, с тех пор как плотно начал юзать емакс, но именно CL, ну и схемой, заинтересовался только в конце прошлого года. Сначала прочитал, правда не до конца, первый том "Мир Лиспа", как то мне не очень понравилось и я забил, так что не советую вам её читать, очень скучно плюс только в том, что про Common Lisp это единственная книга на русском. Потом, когда появилась в инете Practical Common Lisp, и я его прочитал, да ещё открыл для себя SLIME, всё стало намного интереснее. Язык ИМХО самый навороченный из всех, и причина этому именно макросы в сочетании с простым представлением программ и данных. Чего стоят те же макросы loop & format.

СТ>Заинтересованный, я полез в инет и добыл: emacs-21.3, slime-1.2.1, Allegro CL 6.2, clisp-2.33.2

СТ>Пытался подружить парочку emacs + slim. Максимум, что мне удалось, это вызов консоли Аллегро по M-x slime.
CT>Но, думаю, эффект должен быть немного другой. Не поделишься ли опытом настройки?

http://www.gigamonkeys.com/book/
Тут всё что надо in order to get started про SLIME написано, рекомендую.
Re[4]: Metaprogramming et al
От: Сергей Туленцев Россия http://software.tulentsev.com
Дата: 12.07.05 15:11
Оценка:
Здравствуйте, CrazyPit, Вы писали:


CP>Вот часть моих емаксовских конфигов, относящихся к Common Lisp:



CP>;;;;;;;;;; Common Lisp ;;;;;;;;;;

CP>(add-to-list 'load-path "/home/cp/arc/lisp/slime-cvs/slime")
CP>(require 'slime)

CP>;(set-variable inferior-lisp-program "/home/cp/arc/lisp/acl62_trial/alisp")

CP>;(set-variable inferior-lisp-program "clisp")
CP>(setf inferior-lisp-program "lisp")

У тебя всё это дело, я так понял, на линуксе (или ином *nix клоне)?
Я к нему так и не привык, поэтому хочу настроить виндовую версию. Вижу в этом твоем конфиге закомменченные Allegro CL и clisp. Не работают? А тот, что текущий — это некий стандартный лисп (если есть такой)?

CP>ЗЫ: обязательно прочитай всё доку по SLIME. И ещё поиищи статьи на cliki.net по slime и редактированию лиспа в Emacs

Тридцать раз прочитал те четыре коротеньких абзаца про getting SLIME up and running. Не помогло. К тому же долго искал мифический файл .emacs. Оказалось, что home directory под виндой — это корень диска С.
cliki.net на момент написания был совсем как мертвый. Ошибка 502.
--
Re[4]: Metaprogramming et al
От: Сергей Туленцев Россия http://software.tulentsev.com
Дата: 12.07.05 15:11
Оценка:
Здравствуйте, fionbio, Вы писали:

F>Здравствуйте, Сергей Туленцев, Вы писали:



F>http://www.gigamonkeys.com/book/

F>Тут всё что надо in order to get started про SLIME написано, рекомендую.
Эт я нашел в самую первую очередь. Но только там рассказывается про Lisp in a Box пакет, который под винду пока не работает. А переходить на линукс не хочецца.
--
Re[4]: Metaprogramming et al
От: Сергей Туленцев Россия http://software.tulentsev.com
Дата: 12.07.05 15:11
Оценка: :)
Здравствуйте, eao197, Вы писали:

E>Здравствуйте, Сергей Туленцев, Вы писали:


СТ>>Заинтересованный, я полез в инет и добыл: emacs-21.3, slime-1.2.1, Allegro CL 6.2, clisp-2.33.2


E>Эка, народ как пробрало!

E>А давайте через два месяца у тех, кто с Lisp-ом благодоря этому топику познакомился, спросим: как оно, вообще?
Обязательно расскажу.
--
Re[3]: Metaprogramming et al
От: Курилка Россия http://kirya.narod.ru/
Дата: 12.07.05 15:15
Оценка: 2 (1)
Здравствуйте, Сергей Туленцев, Вы писали:

СТ>Здравствуйте, CrazyPit, Вы писали:


CP>>Да интересная дискуссия, даже зарегился на RSDN, чтоб сюда запостить.

CP>>С Лиспом я знаком года 2-3, с тех пор как плотно начал юзать емакс, но именно CL, ну и схемой, заинтересовался только в конце прошлого года. Сначала прочитал, правда не до конца, первый том "Мир Лиспа", как то мне не очень понравилось и я забил, так что не советую вам её читать, очень скучно плюс только в том, что про Common Lisp это единственная книга на русском. Потом, когда появилась в инете Practical Common Lisp, и я его прочитал, да ещё открыл для себя SLIME, всё стало намного интереснее. Язык ИМХО самый навороченный из всех, и причина этому именно макросы в сочетании с простым представлением программ и данных. Чего стоят те же макросы loop & format.

СТ>Заинтересованный, я полез в инет и добыл: emacs-21.3, slime-1.2.1, Allegro CL 6.2, clisp-2.33.2

СТ>Пытался подружить парочку emacs + slim. Максимум, что мне удалось, это вызов консоли Аллегро по M-x slime. Но, думаю, эффект должен быть немного другой. Не поделишься ли опытом настройки?

Советую попробовать вот это
Re[5]: Metaprogramming et al
От: Курилка Россия http://kirya.narod.ru/
Дата: 12.07.05 15:21
Оценка: 1 (1)
Здравствуйте, Сергей Туленцев, Вы писали:

СТ>Здравствуйте, fionbio, Вы писали:


F>>Здравствуйте, Сергей Туленцев, Вы писали:



F>>http://www.gigamonkeys.com/book/

F>>Тут всё что надо in order to get started про SLIME написано, рекомендую.
СТ>Эт я нашел в самую первую очередь. Но только там рассказывается про Lisp in a Box пакет, который под винду пока не работает. А переходить на линукс не хочецца.

А вот это что???
Re[7]: Metaprogramming et al
От: Gaperton http://gaperton.livejournal.com
Дата: 12.07.05 16:13
Оценка: +1
Здравствуйте, eao197, Вы писали:

E>Здравствуйте, Gaperton, Вы писали:


E>>> Поэтому я и ответил так, как думаю -- в настоящий момент, для большинства команд, ведущих разработку на C++, смена языка реализации на Lisp просто не реальна. И постарался объяснить, почему я так думаю.

G>>Для текущего проекта смена языка реализации нереальна, это и так всем понятно. Для новых проектов это вполне может иметь смысл, почему нет? Это первое, и второе — кто-то заставляет сразу писать на незнакомой платформе критичный проект? Боже упаси. Стратегия перехода на новую платформу предполагает существенно более сложный сценарий, и это, как я думал, не является предметом дискуссии.

E>Вот здесь и кроется основное несовпадение наших мнений. Вот ты говоришь: "Для новых проектов это вполне может иметь смысл, почему нет?" Но у меня есть вопрос: "А почему да?"


Ответ на этот вопрос один — потому, что средство Х (предположительно) позволяет тебе вести разработку с меньшими затратами. Выяснить, так ли это на самом деле для тебя, можно только пробуя. Плюс, у тебя есть мнение тех людей, кто уже попробовал. Есть другие варианты?

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

Ты ведь не пробовал Лисп, так? Так о чем ты вообще говоришь? Что ты можешь конструктивного сказать в этой дискуссии? Я не понимаю.

E>Мало того, что у меня вообще есть бОльшие сомнения на счет целесообразности смены C++ на что-то другое. Так еще и есть бОльшие сомнения, что переход на Lisp приведет к упрощению, удешевлению и повышению качества разработки. При этом я исхожу из двух статистических фактов:

E>- язык Lisp менее распространен, чем C++/Java/C#/Python/Ruby. В качестве доказательства используем количество проектов на этих языках на SourceForge.net: Re[4]: Объем синтаксиса C#, Delphi 7, Java 2, ... (48 Kb)
Автор: Oleg A. Bachin
Дата: 07.07.05
;

Статистика проектов на sourceforge не имеет никакого отношения к "к упрощению, удешевлению и повышению качества разработки". Это косвенный показатель распространенности средства Х, не более того. Мне на распространенность плевать с высокой колокольни, разговор не о ней. Кстати, должен тебе напомнить, что распространенность приводят в языковых дискуссиях как последний "аргумент", когда по существу уже говорить нечего.

E>- для языка Lisp гораздо меньше готовых специалистов. А так же гораздо меньше доступных в продаже книг, по которым этих специалистов можно готовить.

Дело не в количестве книг, а в их качестве. По лиспу более чем достаточно замечательных книг, и он, в отличии от С++, давно и успешно используется как первый язык при обучении студентов в большом числе вузов. Что касательно количества специалистов — то это единственное, что ты можешь сказать по существу вопроса, и я тебе уже писал, что да, это некоторая проблема, но она не является фатальным showstopper-ом.

E>Ну и добавить сюда можно еще и небольшую реплику по поводу следующего абзаца:


G>>Но если говорить о смене платформы — то и это вполне возможно. Только начинать надо с микропрототипов для proof of the concept. А потом (если все в порядке) с маленьких некритичных проектов. Потом (если итоги их внедрения и экстплуатации положительны), внедрять новую платформу шире, с учетом накопленного опыта. Только осторожно, никакой спешки, риски надо контроллировать.


E>Имхо, когда компания выпускает несколько упешных продуктов и в живет за счет их тиражирования (в той или иной мере), то такой плавный переход на новую технологию может сильно затянуться. Я представляю для своих условий этот процесс и думаю, что только переход на создание новых продуктов сразу на Lisp стал бы возможен не раньше, чем через два-три года. А ведь остался бы багаж существующих проектов на C++/Java -- переписывать их на Lisp точно бы никто не стал. Даже при выходе следующей major версии какого-то продукта не факт, что оказалось бы дешевле делать ее с нуля на Lisp. А включение унаследованного C++/Java кода через какие-то переходники в Lisp код так же не кажется мне хорошим решением.


Абсолютно та же проблема существует и при переходе на С#, Java, you name it. Могу заметить, что с этой проблемой сталкивались еще в 70 годы, когда переходили с Ассемблеров на языки высокого уровня. Замечу, что сейчас мало кто пишет на ассемблере, так что история говорит нам о том, что проблема решаема. Так что ничего особенно страшного в этом нет.
Re[5]: Metaprogramming et al
От: CrazyPit  
Дата: 12.07.05 16:24
Оценка:
Здравствуйте, Сергей Туленцев, Вы писали:

СТ>Здравствуйте, CrazyPit, Вы писали:



CP>>Вот часть моих емаксовских конфигов, относящихся к Common Lisp:



CP>>;;;;;;;;;; Common Lisp ;;;;;;;;;;

CP>>(add-to-list 'load-path "/home/cp/arc/lisp/slime-cvs/slime")
CP>>(require 'slime)

CP>>;(set-variable inferior-lisp-program "/home/cp/arc/lisp/acl62_trial/alisp")

CP>>;(set-variable inferior-lisp-program "clisp")
CP>>(setf inferior-lisp-program "lisp")

СТ> У тебя всё это дело, я так понял, на линуксе (или ином *nix клоне)?

СТ> Я к нему так и не привык, поэтому хочу настроить виндовую версию. Вижу в этом твоем конфиге закомменченные Allegro CL и clisp. Не работают? А тот, что текущий — это некий стандартный лисп (если есть такой)?

lisp — это по умолчанию — cmucl (но он только под юниксы). А закомментированны потому, что эта переменная устанавливает лисп по умолчанию, а так и clisp и ACL работают прекрасно. В принципе я думаю нет сильной разнице в насторойке емакса по видой и под юниксами. А slime-mode то работает или нет?
Re[6]: Metaprogramming et al
От: Сергей Туленцев Россия http://software.tulentsev.com
Дата: 12.07.05 17:27
Оценка:
Здравствуйте, CrazyPit, Вы писали:

CP>Здравствуйте, Сергей Туленцев, Вы писали:



СТ>> У тебя всё это дело, я так понял, на линуксе (или ином *nix клоне)?

СТ>> Я к нему так и не привык, поэтому хочу настроить виндовую версию. Вижу в этом твоем конфиге закомменченные Allegro CL и clisp. Не работают? А тот, что текущий — это некий стандартный лисп (если есть такой)?

CP>lisp — это по умолчанию — cmucl (но он только под юниксы). А закомментированны потому, что эта переменная устанавливает лисп по умолчанию, а так и clisp и ACL работают прекрасно. В принципе я думаю нет сильной разнице в насторойке емакса по видой и под юниксами. А slime-mode то работает или нет?

Ну, пишет "slime-mode enabled". На этом весь эффект и заканчивается. Щас закачаю Lisp in a box, посмотрю этого зверя.
--
Re[14]: Metaprogramming et al
От: Gaperton http://gaperton.livejournal.com
Дата: 12.07.05 19:28
Оценка: :)))
Здравствуйте, Кодёнок, Вы писали:

Кё>Здравствуйте, Cyberax, Вы писали:


C>>Почему же? Все логично — уровень гибкости существующих шаблонов им

C>>оказался достаточен, и гнаться за новыми фичами стало ненужно.

Кё>Логично, это "Я выбрал новый BMW, потому что он всех обогнал".


Кё>А "Я выбрал Фольксваген, потому что новый BMW всех обогнал" — нелогично. У вас так и получается, выбрали С++ потому что (???) Java, php всех обогнали


Не, все несколько сложнее. Java c PHP всех обогнали, поэтому Лисп ацтой, а писать надо на С++, местами транслируя в него Лисповый код посредством самописной Лисп-машины. Ночью летим, ночью!
Re[15]: Metaprogramming et al
От: Cyberax Марс  
Дата: 12.07.05 19:44
Оценка: 1 (1) +1 -1
Gaperton wrote:

> C>>Почему же? Все логично — уровень гибкости существующих шаблонов им

> C>>оказался достаточен, и гнаться за новыми фичами стало ненужно.
> Кё>Логично, это "Я выбрал новый BMW, потому что он всех обогнал".
> Кё>А "Я выбрал Фольксваген, потому что новый BMW всех обогнал" —
> нелогично. У вас так и получается, выбрали С++ потому что (???) Java,
> php всех обогнали
> Не, все несколько сложнее. Java c PHP всех обогнали, *поэтому *Лисп
> ацтой, а писать надо на С++, местами транслируя в него Лисповый код
> посредством самописной Лисп-машины. Ночью летим, ночью!

Не так: "Эта куча Лиспового кода уже давно не дает нам никаких
конкурентных преимуществ, а после .COM-коллапса мы уже не можем держать
штат из 30 лаурятов премии Тьюринга для его поддержки. Так что пора его
по кусочкам переписать, а у нас тут как раз крутые С++-программисты из
отдела поиска есть.".

--
С уважением,
Alex Besogonov (alexy@izh.com)
Posted via RSDN NNTP Server 1.9
Sapienti sat!
Re[8]: Metaprogramming et al
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 12.07.05 19:58
Оценка: 1 (1)
Здравствуйте, Gaperton, Вы писали:

E>>Вот здесь и кроется основное несовпадение наших мнений. Вот ты говоришь: "Для новых проектов это вполне может иметь смысл, почему нет?" Но у меня есть вопрос: "А почему да?"


G>Ответ на этот вопрос один — потому, что средство Х (предположительно) позволяет тебе вести разработку с меньшими затратами.


Это в данной дискусии доказано не было.

G> Выяснить, так ли это на самом деле для тебя, можно только пробуя. Плюс, у тебя есть мнение тех людей, кто уже попробовал. Есть другие варианты?


Есть. Есть и противоположные мнения. Причем людей, которые пробовали Lisp.

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


G>Что ты можешь конструктивного сказать в этой дискуссии? Я не понимаю.


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

А если серьезно, то после прочтения всех положительных отзывов я не могу никак понять одной вещи: если Lisp так хорош, то почему же он не мейнстрим? Ну не могу я понять. И аргументов, которые бы доказывали, что Lisp хорош не вижу. Только восторженные отзывы.

Вот, например, есть язык Ruby, который лично мне очень симпатичен. Это практически полностью Open-Source проект, который на протяжении 12 лет развивается на чистом энтузиазме. И сейчас он более популярен и распространен, чем Lisp с его 40-летней историей, наличием продвинутых коммерческих дистрибутивов и, как я понял, официального стандарта. Тоже самое можно сказать и про Perl, и про Python.

Но почему же Lisp в таком подполье находится? Это имеет какие-то объяснения?

G>Статистика проектов на sourceforge не имеет никакого отношения к "к упрощению, удешевлению и повышению качества разработки". Это косвенный показатель распространенности средства Х, не более того.


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

G> Мне на распространенность плевать с высокой колокольни, разговор не о ней. Кстати, должен тебе напомнить, что распространенность приводят в языковых дискуссиях как последний "аргумент", когда по существу уже говорить нечего.


А у меня шкурный интерес. У нас в компании сейчас ведутся разработки на Java и C++. При открытии нового проекта стоит выбор, на чем его реализовывать. И здесь аргумент о том, что Java в большей степени мейнстрим является весьма серьезным, т.к. проекты начинаются не на один релиз, а с расчетом на длительный жизненый цикл. Поэтому приходится принимать в расчет то, как может изменится ситуация в ближайшие несколько лет. И если здесь такой распространенный и проверенный жизнью C++ зачастую проигрывает, то можно ли вообще заводить речь о такой экзотике, как Lisp?

G>Дело не в количестве книг, а в их качестве. По лиспу более чем достаточно замечательных книг, и он, в отличии от С++, давно и успешно используется как первый язык при обучении студентов в большом числе вузов.


Первым языком у многих из моего поколения был Бейсик, затем Паскаль, затем C. Но практически никто из них на этих языках никогда не программировал. Так что аргумент о том, что Lisp используется в качестве первого языка для меня серьезным не является.

G> Что касательно количества специалистов — то это единственное, что ты можешь сказать по существу вопроса, и я тебе уже писал, что да, это некоторая проблема, но она не является фатальным showstopper-ом.


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

G>Абсолютно та же проблема существует и при переходе на С#, Java, you name it. Могу заметить, что с этой проблемой сталкивались еще в 70 годы, когда переходили с Ассемблеров на языки высокого уровня. Замечу, что сейчас мало кто пишет на ассемблере, так что история говорит нам о том, что проблема решаема. Так что ничего особенно страшного в этом нет.


Я готов принять этот аргумент, если будет действительно показано, что программирование на Lisp проще и надежнее, чем на C++ или, скажем, Java/C#, при массовом применении. Пока были высказаны личные мнения и впечатления. И приводились ссылки на такие же цитаты и статьи. Но в этом море положительных отзывов меня смущает вот что: имхо, личный профессиональный уровень высказавшихся гораздо выше среднего. Поэтому нет ничего удивительного, когда продвинутый специалист находит удобный для себя инструмен и с его помощью достигает производительности на порядок больше, чем окружающие. Только ведь фокус в том, что тоже самое происходит с любым языком/технологией. Для меня ближе C++, для VladD2 и AndrewVK -- C#/.Net. Для тебя -- Lisp. Но ведь проблема в том, насколько удобно этим инструментом будет пользоваться не таким фанатично увлеченным программированием коллегам.

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

Поэтому, когда сторонник Lisp-а противопоставляет Lisp созданию инструментов для C++ (которым среднего уровня специалисты в состоянии пользоваться), мне интересно, насколько же Lisp будет применим в реальных условиях.
... << RSDN@Home 1.1.4 stable rev. 510>>


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[7]: Metaprogramming et al
От: CrazyPit  
Дата: 12.07.05 20:36
Оценка:
Здравствуйте, Сергей Туленцев, Вы писали:

СТ>Здравствуйте, CrazyPit, Вы писали:


CP>>Здравствуйте, Сергей Туленцев, Вы писали:



СТ>>> У тебя всё это дело, я так понял, на линуксе (или ином *nix клоне)?

СТ>>> Я к нему так и не привык, поэтому хочу настроить виндовую версию. Вижу в этом твоем конфиге закомменченные Allegro CL и clisp. Не работают? А тот, что текущий — это некий стандартный лисп (если есть такой)?

CP>>lisp — это по умолчанию — cmucl (но он только под юниксы). А закомментированны потому, что эта переменная устанавливает лисп по умолчанию, а так и clisp и ACL работают прекрасно. В принципе я думаю нет сильной разнице в насторойке емакса по видой и под юниксами. А slime-mode то работает или нет?

СТ>Ну, пишет "slime-mode enabled". На этом весь эффект и заканчивается. Щас закачаю Lisp in a box, посмотрю этого зверя.

У тебя должно появиться меню SLIME, через него можно вызвать часть функций. Остальное читай в документации на сайте SLIME.
Re[9]: Metaprogramming et al
От: CrazyPit  
Дата: 12.07.05 20:44
Оценка: 23 (2)
Здравствуйте, eao197, Вы писали:


E>Конструктивного мало чего. Но, имхо, здесь вокруг Lisp-а создали такую бочку меда, что мне захотелось выступить в качестве ложки дегтя


E>А если серьезно, то после прочтения всех положительных отзывов я не могу никак понять одной вещи: если Lisp так хорош, то почему же он не мейнстрим? Ну не могу я понять. И аргументов, которые бы доказывали, что Lisp хорош не вижу. Только восторженные отзывы.


ИМХО главные проблемы лиспа, это не технические а социальные проблеммы, туманная история этого языка, которая повлекла за собой множество мифов. Вот интересная ссылка на эту тему — так и называется "Социальные проблемы лиспа"
Re[10]: Metaprogramming et al
От: L.C.R. Россия lj://_lcr_
Дата: 12.07.05 21:27
Оценка:
CrazyPit,

CP>ИМХО главные проблемы лиспа, это не технические а социальные проблеммы, туманная история этого языка, которая повлекла за собой множество мифов. Вот интересная ссылка на эту тему — так и называется "Социальные проблемы лиспа"


Поправка: http://c2.com/cgi/wiki?SocialProblemsOfLisp
quicksort =: (($:@(<#[),(=#[),$:@(>#[)) ({~ ?@#)) ^: (1<#)
Re[9]: Metaprogramming et al
От: Дарней Россия  
Дата: 13.07.05 03:54
Оценка: 1 (1)
Здравствуйте, eao197, Вы писали:

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


К качествам собственно языков это не имеет никакого отношения.
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[10]: Metaprogramming et al
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 13.07.05 04:48
Оценка:
Здравствуйте, CrazyPit, Вы писали:

E>>А если серьезно, то после прочтения всех положительных отзывов я не могу никак понять одной вещи: если Lisp так хорош, то почему же он не мейнстрим? Ну не могу я понять. И аргументов, которые бы доказывали, что Lisp хорош не вижу. Только восторженные отзывы.


CP>ИМХО главные проблемы лиспа, это не технические а социальные проблеммы, туманная история этого языка, которая повлекла за собой множество мифов. Вот интересная ссылка на эту тему — так и называется "Социальные проблемы лиспа"


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

But, people who like to experiment will tend more towards Lisp than say C.NET or Java. Lisp's tendency to attract "experimentors" is one of its social problems. Different languages tend to attract different kinds of personality flaws.


По-видимому, и объясняет все. Lisp -- это язык для хакеров. Если проект делает пара-тройка хорошо взаимодействующих между собой "изобретателей велосипедов", то Lisp, вероятно, дает им огромные преимущества. Но останется ли проект на плаву, если эта команда распадется или будет разбавлена людьми с другим восприятем мира -- это еще очень большой вопрос. И мне кажется, на основании собственного опыта по изобретению велосипедов, что в большинстве случаев проект будет обречен.

Отсюда у меня складывается мнение, что Lisp хорош для прорыва, для выпуска небольшими командами за короткое время принципиально новых продуктов. Об этом как раз и Пол Грэхэм говорит. Но ситуация меняется на диаметрально противоположную, когда этот проект переходит в стадию сопровождения. И когда этим сопровождением занимаютс уже совсем другие люди. Имхо, это и подтвердилось в истории с Yahoo Shop.
... << RSDN@Home 1.1.4 stable rev. 510>>


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[7]: Metaprogramming et al
От: Трурль  
Дата: 13.07.05 04:53
Оценка:
Здравствуйте, mihoshi, Вы писали:

Хм, policy говорите. А вот это видели?
(L|DEFUN, ISOMORPHIC, (L|TREE1, TREE2),
  (L|COND, 
    (L|(L|ATOM, TREE1), (L|ATOM, TREE2)),
    (L|(L|ATOM, TREE2), NIL),
    (L|T, (L|AND,
      (L|ISOMORPHIC, (L|CAR, TREE1), 
                     (L|CAR, TREE2)),
      (L|ISOMORPHIC, (L|CDR, TREE1), 
                     (L|CDR, TREE2))
))))
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.