AutoLISP过时了吗?
这个问题,得看提问的人是谁,答案是因人而异的。
autolisp是什么?
autolisp是一门编程语言,是XLISP子集,XLISP是LISP 语言的一种“方言”(实现implement)。
AutoLISP最早出现于1986年1月,是随着AutoCAD 2.18版一起发布的。在autolisp出现之前,
autocad的二次开发除了写script脚本,大概就只有c语言了。有了autolisp之后,普通的cad用户无需全面的编程技能,
通过autolisp就可以写出来自己的插件了。
到了1995年2月发布autocad r13之后1,Autodesk就把autolisp打入冷宫了,因为那个时候有vba、.net、 ObjectARX这些更时髦的技术。关于autolisp被打入冷宫的时间,还有一种说法是1992年6月发布autocad r12的时候2。
后来,第三方软件开发商Basis Software,开发了Vital-LISP,引入了包括对ActiveX的支持在内的众多功能,
提供了ide、debugger、compiler,使得AutoLISP如虎添翼。
Autodesk收购了这个软件包,改名为Visual LISP,在1997年5月发布autocad r14的时候,
把Visual LISP作为autocad插件拿出来销售。到了1999年3月发布autocad 2000版的时候,
Visual LISP已经作为内置组件出现在autocad 2000当中了。
现在使用的autolisp,实际上是visual lisp,纯粹的autolisp代码已经很难见到了,就连dassault的DraftSight
都支持vl-*系列函数了。autolisp的叫法,只是一种习惯上的沿袭罢了。
autolisp的竞品
autolisp的用途是用于autocad二次开发,也有人在尝试把它变成一个通用脚本语言3,不过,它最开始的、 最主要的用途还是autocad二次开发。
在autocad二次开发,或者说广义的cad开发当中,autolisp的竞品至少有:
- vba
- .net/C#
- ObjectARX/C++
- python
- javascript
在autocad中,以及类似于autocad的autocad-like的cad软件当中,前3种api是普遍都会提供的,
javascript目前来看是autocad独有的,python的支持也可以看做是普遍的,因为,
python也可以调用ActiveX组件,而ActiveX到目前为止还是windows的基础技术之一。
从编程语言的角度来讲,autolisp是没有什么劣势的,唯一的劣势只是生态上的劣势, 这种劣势在99%的情况下都不存在问题,因为它的定位就决定了它根本不需要什么“生态”。
vba毫无疑问是过时了的,autocad好多年以前就不再内置vba组件了,微软也早就宣布要放弃vba了。
C#/C++自然是永不过时的,至少,目前来看是不可能过时的。autolisp跟这二者也不是相互替代的关系,
它是这两者的补充,毕竟,脚本语言始终有存在的必要性,搞cad开发总不能首选lua吧?
python和javascript毫无疑问是流行的、强大的,问题在于,这两者过于通用了。 它们都有数量庞大的各种各样的库,调包是很方便很爽的,可是,你搞cad二次开发真的需要调那么多包?
结论
autolisp是否过时,取决于你是autocad用户还是软件开发商。
从软件开发商的角度来看,autolisp是过时的。Autodesk在autocad中引入JavaScript就表明了它的态度, 连自家人都想要放弃的技术,自然是过时的。
不过,这里边有个微妙的问题。
第三方软件开发商跟Autodesk,其实是有利益冲突的。Autodesk想要放弃的技术,不代表不适合第三方软件开发商。
对于autocad用户来讲,autolisp过时与否完全不重要,想要学习就应该立即开始,早学早受益。 很多人到今天还在使用autocad 2007,连这种已经发布了十六七年的老软件都能用,被支持了快40年的autolisp, 还有什么好担心的呢?
总之,cad用户是要提高效率,能提高效率的工具无所谓过时与否;Autodesk和第三方软件开发商是要赚钱, 能赚钱的技术、能赚更多钱的技术才是心头好,过时的自然是不好的,流行的当然更容易赚到钱。🤣
文章作者 Jack Hsu
上次更新 2023-12-03
许可协议 Copyright © Jack Hsu. All Rights Reserved.