A bit more about the sad story of AutoLISP.
AutoLISP started as a very early version of XLISP (the original author being David Betz)
Essentially AutoDesk (The vendor of various CAD products including AutoCAD) got a copy of this larval version of XLISP from a message group online. They then inserted it into their AutoCAD software as the defacto extension language branding it AutoLISP. David never saw a cent of it and only found out after the fact when he saw it later. He would continue making the language better (XLISP) until it was a small approximation of Common Lisp just with fewer bells and whistles. So, AutoDesk's acquisition method set a bit bleaker path for their users and draftspeople. They took a larval version of Betz' project and it became their standard - never reaching what XLISP 2.0 would add.
Later a different version based on AutoLISP was added which featured some Microsoft Active X and COM support (very niche and
OS specific I know). This was rebranded
VisualLISP.Some of my favorite anti-features:
1. No array support. (Unless you borrow the arrays from the Visual Brainsick layer)
2. No variadic functions.
3. No local variables (other than using / foo bar baz in a function signature which act like &aux foo bar baz in CL)
3. No mutable lists (debatable from a FP purist standpoint)
4. No closures (historically less important, though fixed later in XLISP)
5. No splicing quote ex `(,foo bar @baz)
6. No macros.
7. Commandline commands are
string based when called from the VisualLISP side.
8. Function naming conventions dictate if they're available to the user at the REPL directly.
My favorite feature:
(
ATOMS-FAMILY) is a good pun that shows bound symbols. This makes sense as VisualLISP is both creepy and kooky, mysterious and spooky. If not all together ookie. *snap* *snap*
Culturally, users of VisualLISP are isolated.
There are a few who have seen other Lisps but most have not used any other dialect.
So they have the own way of
doing things that grew out of a different culture than your average Lisp hacker.
I only know about it because my drafting teacher in Industrial Arts thought we should all take home an illegal copy of
AutoCAD 2004 which I may or may not have. I've kept up on drafting for the most part, lots of woodworking plans and other things. I recently applied for a glass cutting position here in town and as they use AutoCAD I may dust off some VisualLISP once more.
XLISP split a few different ways, it got
OOP support at one point.
It also became embedded in today’s
Audacity via
Nyquist plugins.
Honestly, I would consider it for an extension language if something like ECL was too heavy for the scope of a project.
- Ryan