From: http://www.vbdesign.net/expresso/archive/topic/857.html (for text only) See: http://www.vbdesign.net/expresso/showthread.php?s=&threadid=857 (for actual site with images and links) (Excellent ..must visit this site more -aj) -------------------------------------------------------------------------------- Autolisp, Vlisp, VBA...? (Click here to view the original thread with full colors/images) -------------------------------------------------------------------------------- Posted by: Raydancer Okay... I've been learning Autolisp for a few weeks now. I've only been on Autocad for a few months. And I'm now wondering what I SHOULD be doing... Since I'm learning from scratch, which programming language should I be learning? I'm hoping to make it easier for myself in the long run...and I'll probably end up knowing a lot of one and bits of the others...but what can help me get the most out of AutoCAD NOW? What are the differences between the langauages? Pro's and con's, etc... I'm expecting true words of wisdom here, so don't be afraid to call me grasshopper ;) -------------------------------------------------------------------------------- Posted by: Mark I think you shouldn't rule out either vlisp or VBA. After learning both I prefer VBA but there are still some things that lisp can do better. A good AutoCAD programmer should know some of each so they can choose the best language for the job. I recommend learning VBA for a couple of reasons: 1. I think it's easier to learn. There is certainly more help available. 2. What you learn can be used in other programs such as Word, Excel, Access and loads of others. Many other programs have VBA embeded. -------------------------------------------------------------------------------- Posted by: DanL I used to use Lisp and DCL all of the time, since I learned VBA I havent even touched Lisp... One major thing that VBA has over Lisp is the ease of creating Dialog/UserForms in VBA I also think that the developement enviroment in VBA makes it alot easier to use than Lisp... -------------------------------------------------------------------------------- Posted by: Raydancer What type of development environment is used in VBA? Would I have to purchase a compiler or program to us it? (if so, are there any free alternatives?) -------------------------------------------------------------------------------- Posted by: DanL With VBA prgrams like AutoCAD and Access and such include a VBA Editor. -------------------------------------------------------------------------------- Posted by: juno_101 quote: -------------------------------------------------------------------------------- Originally posted by Mark I think you shouldn't rule out either vlisp or VBA. After learning both I prefer VBA but there are still some things that lisp can do better. A good AutoCAD programmer should know some of each so they can choose the best language for the job. I recommend learning VBA for a couple of reasons: 1. I think it's easier to learn. There is certainly more help available. 2. What you learn can be used in other programs such as Word, Excel, Access and loads of others. Many other programs have VBA embeded. -------------------------------------------------------------------------------- so you do not use Lisp at all???????? I have been playing with CadVBA for about 6 mounts, and I had a very hard time understanding SelectionSets and other stuff. But with AutoLisp it makes I picked it up very easily. -------------------------------------------------------------------------------- Posted by: Rob_Kish Lately, I've been using Lisp primarily for accessing entity data from the command line. And when I need access to the ValueAtParam features accessible (only?) through VL. Lisp seems easier, since it doesn't require explicit type casting, but that can get you in trouble .. and is a bear to debug. Granted, selection sets take some getting used to, particularly after the freeform allowed in Lisp. Filters, in particular. As Mark says, there is more info available for VB(A) and there are more controls available. Another Big plus is the fact that VBA can work across multiple documents. -------------------------------------------------------------------------------- Posted by: juno_101 So I guess the task is what dictates the language. From what I understand the history of Cad compatible programming languages: -First came Auto Lisp (compatible across all versions of Cad) -then Visual Lisp (and I have no idea what the difference between AL and VL) Can you explain this to me. -then VBA (which is the new stuff, in stile) only works on Cad versions 14? 2000-2002. Correct me if I am wrong Ralank. -------------------------------------------------------------------------------- Posted by: SMadsen juno_101, do you get commissions by setting Cad = AutoCAD? :p Your line of history is correct at large. Visual Lisp was originally a clever piece of software called VitalLisp. It got AutoLISP out of the notepads and into an organized environment. It had alot of features built in such as library functions that did this and that. After being bought by Auto****, it was renamed Visual Lisp and shipped with AutoCAD. It's at most the same software as VitalLisp but got extended a bit, amputated a bit and got an interface to deal with ActiveX functionality. The latter is probably what sets Visual Lisp apart from AutoLISP in the minds of most people. Basically it means that you can work with ActiveX objects like "they" do in VBA ... although in a bit more akward way than with MS' own language. -------------------------------------------------------------------------------- Posted by: Dave Use both. Use them all. Pick the tool that fits the task and avoid forcing a tool upon a job for which it isn't the best solution. I have apps the are built with VLISP, VBA and other languages/tools as well. If you focus on using one language alone you'll find yourself in a bind sooner or later, or inevitably your career will become much more limited in direction and opportunities. That doesn't mean learn EVERYTHING, but try to keep everything you learn in the context of what it was designed to solve or accomplish and continue learning other things to compliment your previous learning. Geez. I sound like Tony Robbins. Is there a place to insert your credit card for advise on this site? Hmmmm.... -------------------------------------------------------------------------------- Posted by: Rob_Kish quote: -------------------------------------------------------------------------------- Originally posted by juno_101 ... Correct me if I am wrong Ralank. ... -------------------------------------------------------------------------------- Sorry I'm late. Nope .. not wrong. But I agree with the extensions Stig and Dave put on it. And, I agree that there are times (many!) when it * seems like trying to take a sip from a firehose * But, as has been said .. there are things that can be done, or done more easily/naturally, in one than another. Actually, that's one of the great values of a place like Expresso ... even if I don't thoroughly understand a lot of the discussions, I begin to recognize commonly occurring expressions/ideas ... which in turn makes it easier to surround the 'how to' when I need it. -------------------------------------------------------------------------------- Posted by: Kenny Ok my penny's worth. You don't have to memorise a language. You just have to understand it. You then write what you need, when you need, using the language that suits the application or part of the application. I'm like Dave, a lot of my programs used in the office use up to 3 languages. seems like trying to take a sip from a firehose I like that - the problem comes when you're trying to take a sip out of 3 hoses at the same time. You tend to get wet - very wet Why do I like Lisp? 'Cos it pisses off the VBA guys. -------------------------------------------------------------------------------- Posted by: juno_101 Thanks everyone, I get it now, except the hose analogy ;) :p -------------------------------------------------------------------------------- Posted by: Se7en I realize that I'm kinda new here (when I first found this site, I realized that I wasnt "dangerious" enough to "hang with the big boys") but I think im ready to add my two cents now. I started on AL moved on to VL and started down the dark side with VBA. ( Although I havent actualy got one of my VBA programs to work without errors, I still have faith that VBA will be a valued addition to my "tool-belt" perse (...I cant spell repertoire ) I used Vital Lisp and I use Visual Lisp. I think the improvements to the program are vast and greatly appreciated! Lisp is still a "stupid" language but since the release of Visual Lisp, it has recieved an education, and shows that IT WILL be arround for a while. (So you VBA guys ...DEAL WITH IT! :p) I use VL for all my entity modifications. "Knowledge is not the ability to 'retain and recal' 'everything', its the ability to know where to find the information when you need it!" -------------------------------------------------------------------------------- Posted by: Dave Alas, poor Kenny: "I'm like Dave..." Please. Can we all chip in just a little to help him out? Poor guy has fallen into the gutter here. It's bad enough being me, even worse to want to be me. --- As for VLISP growing up with the "improvements", well, (clearing throat, putting down beer...) While it has been let out of the closet in a manner, it still needs some decent clothing and table manners. It's still a long way from being kin to VBA in terms of UI features (IDE). I've begged and pleaded with ADN to do something (bake sale, car wash, even a porn site where the credit card proceeds would go into a kitty to pay for development improvements). Nothing. Nada. I'm afraid it is like those little bugs in the amber you buy at the museum: stuck in time for eternity. Unless we launch flaming oil buckets with catapults over the stone walls of Autodesk, their only concern is about VBA and ARX. I can't say I blame them. They have to run a business and business is built on (I hate to say it...stop me... stop me!....) "marketing". There. I said it. Now, where's my beer. I'd love to see VLISP get some improvements, but I'm convinced they won't come from Autodesk. Maybe someone else will shoot up something good and get fired up enough to charge the gates with a solution. I for one am too tired and too lazy. -------------------------------------------------------------------------------- Posted by: Ben And AutoDesk will probably buy the rights to whatever this well meaning individual does, and then include it as something they created. I started out in AutoLisp, in Notepad, just like mostly everybody else here (in this part of the garden at least) After getting involved with VBA (initially out of a strong desire to not touch DCL), I haven't really done much with Lisp, but I still fall back on it for items that are either too small to require VBA (in my eyes) or have to work in conjunction with command line functions (which Lisp still does better) I don't have anything to add that hasn't already been said, so I'll leave it at that. -------------------------------------------------------------------------------- Posted by: Randall Rath The big picture: All current AutoCAD programming languages are standing on the precipice of extinction. Visual Lisp and Lisp, VBA, VB, DCL, Delphi... Windows is dead. Long live Windows. The only question is, "Which languages will have ports to the new Windows OS?" I can guarantee that Lisp and Visual Lisp wont be one of them. Have a nice day. -------------------------------------------------------------------------------- Posted by: JoeB ok .. I'll be the bunny again.. Come on down for the $64,000.00.. And the answer is .. -------------------------------------------------------------------------------- Posted by: Ben What was the question? -------------------------------------------------------------------------------- Posted by: JoeB quote: -------------------------------------------------------------------------------- Originally posted by Randall Rath The only question is, "Which languages will have ports to the new Windows OS?" -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- Posted by: Kenny I refuse to bite. -------------------------------------------------------------------------------- Posted by: Dave COBOL! Better yet: COBOL.NET!!! Yeah! Sign me up! Actually, (oh no! Not a serious comment, please?!) AutoLISP/VLISP will remain as it is hosted by the application itself. Microsmoosh says they're commited to supporting COM in Longhorn to avoid pissing off third party partners like SAP, Symantec, ExecSoft, Autodesk and so on. That means, even if performance lags behind .NET-based services, COM-based DLL's will still function. Since ARX is basically a COM-based DLL, and since VLISP is just an ARX/DLL, it should survive. My sources seem to concur. My feeling is that VLISP will remain stuck in time; no improvements, no enhancements whatsoever. Once MS figures out what to do with VSA that'll likely replace VBA in Longhorn. Then there's WinFS and Yukon-based file services to consider.... Geez. Do these people ever stop?! Somebody, please, hide the Starbucks from them quickly! --------------------------------------------------------------------------------