Тема: VBA vs LISP

Может хто рассказать стоит ли вообще браться за VBA?
Или лучше продолжать возиться с автолиспом?
Тут вот автор книги "The Visual LISP
Developers Bible" пишет :
"Visual LISP could be improved to make
it an even more powerful development platform, but it seems Autodesk is more interested
in other technologies such as VBA, ObjectARX and XML, than ugly old LISP".
Я вот тоже думаю, все же VBA имеет то приемущество что
он идет ищо и под экселем и.т.п. и окошки всякие на нем проще делать. А вот как под автокадом, мощнее он лиспа?

Re: VBA vs LISP

> tar
Предлагаю не возиться с Лиспом , а   изучать его.

Re: VBA vs LISP

> Эдуард
Весьма согласен. Особенно если учесть, что теперь VLISP поддерживает (пусть и с оговорками) объектную модель AutoCAD'а. А ставить в один ряд VBA и ObjectARX, как это делает автор книги, мне кажется ну никак нельзя.
Можно еще рассмотреть вариант VBA + LISP.
Это мое личное, ни на что не претендующее мнение...
______________
Удачи.

Re: VBA vs LISP

ObjectARX действительно ни счем в один ряд ставить нельзя. ObjectARX - это круче всего, но и сложнее всего, в чем собственно ничего удивительного нет.
А вот если говорить о связке LISP+"что-то" (причем "что-то" это не ObjectARX), то скорее всего - LISP+DELPHI.
На счет же того, что "с Лиспом надо не возиться, а изучать", то утверждение формально справедливое, но очень попахивает уходом от прямого ответа.

Re: VBA vs LISP

Можно еще рассмотреть вариант VBA + LISP.

ИМХО лучший вариант, если не залазить очень глубоко в дебри. VBA основан на объектной модели, знание которой весьма полезно при использовании vla- функций. Только вот при совместной работе программ на VBA и программ на LISP передача аргументов не так проста, как хотелось бы. :((

Re: VBA vs LISP

> VK
Мне кажется передавать параметры достаточно просто.
Можно через реестр или лучше через с. переменные USERS и др. как это сделано сдесь
http://afralisp.com/vl/vl-vba1.htm
и сдесь
http://afralisp.com/books.htm

Re: VBA vs LISP

Угу... А можно еще и через отдельный файл.

Re: VBA vs LISP

А я перешел с LISP на VBA, пройдя по пути VB. И очень доволен. LISP-программки использую как вспомогательные для загрузки и запуска макроса VBA.

Re: VBA vs LISP

> Leonid
VBA - это не язык это просто басик - а лисп - это вещь крутая. Обидно что Autodesk не уделяет должного внимания в этой области. Где-то в нете читал что компилятор кажися Зета-лиспа стоит порядка 4 штук баксов, для неперспективного языка вряд ли стали производить такие компилеры! Да взять хотя бы проги на лиспе - две-три строчки, а на басике нужно десятка два! Правда многие пишут на лиспе как на басике - но это уже второй вопрос.

Re: VBA vs LISP

tar
Ваш вопрос из области: "Хочу купить машину, какая лучше?"
Опишите конкретные задачи - будут конкретные ответы.
Ну, а если Вы боитесь просто попробовать VBA и хотите, чтобы за Вас кто-нибудь дал ответ - это уже ко врачу...

Re: VBA vs LISP

> Который против басиков
Да при чем тут количество строчек? Разве от этого зависит скорость программирования? Есть еще, правда, такая штука как снобизм...Не могу отказать себе в удовольствии и не процитировать одного из корифеев - Дана Эпплмана:
"Думаю,программисты Visua Basic комплексовали перед своими коллегами, работавшими на C++, которые которые нередко задирали нос и говорили: VB - не настоящий объектно-ориентированный язык... Услышав это, бедный программист VB удалялся в свою каморку и за час выдавал больше кода, чем программист C++ мог написать за целую неделю"

> tar
Конечно, VBA не всемогущ, но очень удобен и способен на многое.А если сравнивать его с языком высокого уровня, с LISP'ом, то на мой взгляд в VBA
меньше подводных камней. А это дорогого стоит.

Re: VBA vs LISP

> Leonid
Ха ! Говорите о количестве строчек в лиспе и тут же приводите опус "корифея" что за час на VB пишут больше кода, чем на С++?! Это смотря кто пишет! С++ могучий язык, а басик это просто басик - он прост в освоении, и те которые не любят напрягаться изучают именно его - а потом пытаются сравнивать сей примитив с более продвинутыми вещами вещами! И обижаются и начинают топать ногами когда им на это указывают. И кстати говоря VB - язык высокого уровня (это касательно вашего поста для tar)

Re: VBA vs LISP

> Который
против басиков
Я пишу на лиспе. За соседним столом сидит человек который пишет на VBA. Когда я пользуюсь его программами у меня не возникает рвотного рефлекса. А если нет разницы ...
Словом мне как пользователю по барабану на чём сделана  пограмма если она сделана качественно.

Re: VBA vs LISP

> Alexander
а если этот рефлекс возникает?

Re: VBA vs LISP

> [Re:] Который против басиков
Ощущение, что теряется смысл дискуссии, выхолащивается.
Человек спросил - стоит, или не стоит использовать VBA для программирования под AutoCAD? A не спрашивал какие языки лучше вообще.И не интересовался рвотными рефлексами программистов...Еще раз повторю:  по-моему стоит!
Удачи.

Re: VBA vs LISP

> Leonid
Я с вами абсолютно согласен в плане "Программировать в Автокаде необходимо!" Только для этой цели использовать лисп C++ Delphi. Большинство задач решается на лиспе. А для "тяжелой артилерии" использовать C++ или Delphi.

Re: VBA vs LISP

> Который против басиков
А VBA чем помешает? Засорит мозги, или как? Я, грешным делом, не хотел уже возвращаться к этой теме, но тут как раз подвернулась ситуация из, так называемой, жизни.Одна из работающих на моей машине программ(чужой ЛИСП) слишком тянет одеяло на себя, меняет установки чертежа и не хочет возвращать их в исходное состояние.Я решил исправить положение и написал пару макросов VBA, запускающихся в ответ на события beginlisp and endlisp соответственно.С точки зрения  языка можно было, конечно, применить ЛИСП, но...
С точки зрения технологии, я должен был подумать об именном пространстве, о многодокументном режиме, кроме того, применение реакторов в ЛИСПЕ процесс более муторный, чем в VBA. По-моему, выбран был вариант оптимальный.Что касается
Delphi судить не берусь, я с ним никогда не работал, а применять здесь C++ и ObjectARX это, согласитесь, перебор,
стрельба из пушки по муравьям.

Re: VBA vs LISP

Сравните количество постов в разделе VBA и Delphi!

Re: VBA vs LISP

> Leonid
где не справляется лисп можно использовать Visual Lisp, вообщем все это дело вкуса, привычек и предпочтений, согласен, дальше спорить смысла нет.

Re: VBA vs LISP

> [Re:] Nebelung
Сравнил.Впечатляет.Спасибо.

Re: VBA vs LISP

Еще лучше сравните количество постов в разделе LISP с любым другим

Re: VBA vs LISP

> [Re:] Который против басиков
"И ты прав, о мой друг"

Re: VBA vs LISP

Поклонникам Бейсика:
А вот на Лиспе (не только Авто-, а на любом Лиспе) можно сделать так:

(set 'a '((op x y) (op (op x x) x (op y y) y)))
(a + 3.1 4.7)

Результатом будет (x + x) + x + (y + y) + y = 23.4 :)
А по сути, список-данные был обработан списком-программой, да ещё при этом символ операции сложения, знак +, был передан в качестве параметра ! Это так же красиво и мощно, как в профессиональных растровых редакторах (например, Фотошоп) возможность маскировать пикселы растра другим же растром (каналом маски).
А ещё в Лиспе много функций для функционального программирования, которых нет, не было и никогда не будет в Бейсике.
Вот пример работы функции (read):

(set (read "varname") 8.99)

В результате в именном пространстве Лиспа появится символ varname, которому присвоено число 8.99 ! Для тех, кто в танке: имя переменной (а можно и функции) можно динамически сформировать во время исполнения программы, а не только во время написания её текста, как в Бейсике. Тело функции (что-то вроде "((op x y) (op (op x x) x (op y y) y))" из первого примера) можно тоже сфабриковать чисто программно в виде строковой переменной и преобразовать функцией (read) в символы (то есть, по сути, интерпретировать нужный кусок кода по своей воле !).
Вот, смотрите:

(set 'a (read "((op x y) (op (op x x) x (op y y) y))"))
(a + 3.1 4.7)

А теперь, знатоки Бейсика, внимание, вопрос: что есть в Бейсике такого, чего в принципе нет в Лиспе ?

Re: VBA vs LISP

По затронутой теме см. главу 9 из книги "САПР на базе AutoCAD. Как это делается":
http://www.kurganobl.ru/cad/book.jsp?id … ;tn=main#b
Примеры  Maxim T (2004-06-27 22:44:11)  очень хорошие. Демонстрируют преимущества не только над Basic, но и над другими "нефункциональными" языками.
>Что есть в Бейсике такого, чего в принципе нет в Лиспе ?
В Basic как языке нет ничего "такого". В конкретных реализациях - есть. Например, из VBA можно вызвать функцию из обычной DLL (не COM). Но этим как раз и не пользуются

Re: VBA vs LISP

Я не понимаю, почему поклонники лиспа приходят в бешенство при упоминании VB. Он что у Вас хлеб отнимает. Нужно будет поискать в интернете форум психиатров и спросить у них как этот диагноз называется. По моему поклонники VB меньше брюзжат в отношении лиспа.
P.S.  Я пишу на лиспе.