Moja strona WWW , Wydawnictwo HELION , Wydawnictwo Naukowe PWN SA

niedziela, 26 czerwca 2011

To LISP or not to LISP? Oto jest pytanie!

Powodem, dla którego "pojechałem Szekspirem" w tytule jest skierowany do mnie list Pana Aleksandra Nowackiego z podobnym pytaniem. Bardzo dziękuję Panu Aleksandrowi za miłe słowa i zgodę na to, aby jego pytanie upublicznić.

Pan Aleksander jest architektem z dwudziestoletnim stażem, który w ciągu kilku lat stworzył pokaźną bibliotekę procedur w języku AutoLISP (obecnie VisualLISP). W związku z koniecznością grzebania w obszernym kodzie i wprowadzaniu poprawek przy każdej nowej wersji programu AutoCAD, zastanawia się pan Aleksander, czy nie porzucić języka AutoLisp na rzecz VBA.
Moja krótka odpowiedź na to pytanie brzmi oczywiście "Nie", ale zanim przedstawię bardziej obszerną odpowiedź z moją opinią na ten temat, liczę na Państwa uwagi i komentarze. Z góry dziękuję.
Zapraszam do dyskusji na moim blogu, ale także, a może w szczególności w grupie użytkowników systemu AutoCAD:
http://communities.autodesk.com/?nd=m_gs_group&group_id=125 (trzeba być zarejestrowanym Członkiem naszej Społeczności).

Początkującym miłośnikom systemu AutoCAD przypominam wpisy na blogu i wideoprezentacje pokazujące na prostym przykładzie sposób automatyzacji tej samej rutynowej operacji za pomocą wewnętrznego języka i wbudowanego edytora VisualLISP oraz VisualBasic (VBA):
Artykuł wprowadzający: http://cadaj.blogspot.com/2010/01/od-do-z-autocad-automatyzacja.html
LISP: http://cadaj.blogspot.com/2010/02/od-do-z-autocad-automatyzacja-autolisp.html
VBA: http://cadaj.blogspot.com/2010/03/od-do-z-autocad-automatyzacja-vba.html
Pozdrawiam,
A.J.

**************
Temat: VBA kontra LISP

Panie Andrzeju,
Jestem architektem i od niemal 20 lat fanem AutoCAD'a.
Chciałbym na początku wyrazić swoje wielkie uznanie dla Pańskiego bloga,
na którym dzieli się Pan bezinteresownie swoją wiedzą. Oglądanie Pana
filmów szkoleniowych jest wielką przyjemnością, także pod względem
estetycznym (m.in. piękny język). Być może powinienem napisać po prostu
komentarz na blogu, ale jednak wydaje mi się, że temat, który mnie
nurtuje nie nadaje się na forum ogólne.

Kilka lat temu zacząłem się uczyć AutoLISP'a, co doprowadziło do

powstania dosyć obszernego programu (nakładki na AutoCAD'a), który
zapełniał liczne dziury AutoCAD'a w branży architektonicznej (obliczanie
powierzchni pomieszczeń, zarządzanie piętrami projektowanego budynku i
inne narzędzia). Program cieszy się w moim otoczeniu dużym powodzeniem,
używa go nawet cała duża firma, w której pracuję. Rozwijam ten zbiór
'lispów' już bardzo długo, ostatnio jednak mam coraz większe wątpliwości
co do sensu podtrzymywania przy życiu aplikacji napisanej w tak
prymitywnym języku. To wrażenie spowodowane jest m.in. tym, że każda
kolejna wersja AutoCAD'a wymaga ode mnie grzebania w kodzie źródłowym i
dostosowywania programu do wprowadzonych przez Autodesk zmian. Choć nie
jestem programistą, sam widzę też ograniczenia AutoLISP'a, nieraz
spotykam się z rzeczami, których się po prostu nie da zrobić.

Chciałbym Pana prosić o krótki komentarz do tego wywodu, a konkretnie, o

odpowiedź na pytanie, czy w mojej sytuacji warto nauczyć się VBA i
przepisać mój program od nowa (to kilka tysięcy linii kodu, ponad 50
oddzielnych makr, powiązanych wspólnymi zmiennymi użytkownika,
współpracującymi ze sobą itd.). Chcę powiedzieć, że jestem skłonny to
zrobić, nie wiem jednak, czy rzeczywiście AutoLISP jest juz "passe" i
lada chwila zupełnie przestanie współpracować z AutoCAD'em, oraz czy
funkcjonalność programów napisanych w VBA jest większa niż w LISP'ie.

Mam nadzieję, że Pana nie zanudziłem i że znajdzie Pan chwilę czasu, by

wskazać mi jakiś kierunek.
Będę bardzo wdzięczny.

Pozdrawiam

Aleksander Nowacki

Brak komentarzy:

Prześlij komentarz