回复内容:
Lua,因为:
Lua 比Python 更容易编程,这里更容易编程的意思是指更容易做扩展和嵌入编程,也就是对解释器做事情,Lua 的跨语言编程模型非常简单好用,数据交互都是通过栈,而 Python 要复杂得多,作为 Python 和 C/C++混合编程的专家,我在最熟练的时候要把引用计数处理对也要核对文档,睁大眼睛仔细看好几次。 Lua 的解释器就是一个数据结构,你可以在一个进程里面造出 很多来,而且彼此是完全隔离的,这在并发、错误处理上都极大得简化了问题,而 Python 的解释器是全局的,用了 Python,涉及这部分的东西就告别并行了,因为 进入Python解释器那里串行化了,如果出现了错误,也比较难以可靠地恢复(Lua 只要保护好涉及的资源,把解释器销毁重建一个就好了) Lua 的效率比 Python 好,如果用 API 兼容的 LuaJIT 那就更好了(最快没有之一的脚本语言实现),做绘图软件的插件,这可能还是一个重要的考虑 事实上 Adobe Photoshop 就是用 Lua 做的脚本
Python 的优势在于库丰富。它的语言表现力可以打 80 分,基本合格,给生态系统拖后腿的情况不严重,但语言本身用今天的标准看并不出彩。
Lua 的优势在于语言本身实现简洁(除了 keyword 比较长):比如 coroutine,还有比较好的 closure 优化。缺点是库比较少。如果是对已有的 C 代码进行 scripting,Lua 的缺点就不算缺点。
如果是用C++/QT写绘图软件,然后要找个脚本做插件提高软件的灵活性和扩展性,那必然Lua比Python好
如果是用Python/PyQT写绘图软件,然后用C++对性能要求高的部分进行优化,那必然是Python比Lua好
python。
很多专业和开源图像处理软件都是用Python做脚本的。
python和lua 哪个适合做绘图软件的插件脚本语言? 取决于你期望用脚本语言达成什么目标。
如果你只是希望把它做为UI/Project配置文件:CMake: Given the chance to do the language over, we would have spent some time looking for a nice embedded language that already existed. 【Lua】 is the best fit that might have worked.
如果你只是打算把C/C++ API封装一下,让用户在你指定的域里做功能定制,那么选择Lua 。
有人提到 Adobe Photoshop Lightroom ,从简介上看,其实Lightroom干的无非就上面两件事情。是的,Lua在游戏行业很流行,而游戏行业用Lua做的就是第二类事情。
但是,如果你希望你的用户用这种脚本语言定制自己的插件,如果你的用户可能来自各行各业,如果你希望给你的用户足够的自由度想怎么插就怎么插,那么Lua不是一个好的选择。 出了程序员的圈子,Lua的社区并不大,而你需要的是一种能轻松与其他domain对接的编程语言,比如Python。
Maya的脚本语言就是用Python ,玩法比Lightroom多了去了。
今时今日,CommonJS Spec Wiki 可能是比Python更好的选择(Node.js是CommonJS的一个实现),理由:
Javascript有丰富的第三方库,涵盖的领域不输Python
V8/Node封装C/C++接口更容易
Javascript的语法比Python简单,与Lua很相似
还可以用HTML写UI
性能比Python好了一个数量级,接近luajit(虽然我认为作为插件语言,性能其实根本不是问题)
但不是没有代价:集成Node.js进desktop app跟简单的集成一个解释器,难度不是一个量级的。。有兴趣可以参考Node-Webkit · GitHub 或者Atom Shell · GitHub
非利益相关 :前Autodesk程序员,现投身游戏行业。 相当多的专业的三维软件和合成软件的脚本,以及VFX公司的流水线工具们,基本是选择了python,这个也不是随口胡说,是的确有根据的。不信搜搜。 图像处理,Python的全局锁(GIL)就够让人决定选Lua了 这种问题就好比什么语言是最好的语言,只能说哪一个熟练就用那一个 lua,轻。 请搜索:Adobe Photoshop Lightroom查看更多关于Python,Lua哪个适合做绘图软件的插件脚本语言?的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did89970