• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Python,Lua 哪个适合做绘图软件的插件脚本语言?

python 搞代码 4年前 (2022-01-09) 40次浏览 已收录 0个评论
文章目录[隐藏]

回复内容:

Lua,因为:

  1. Lua 比Python 更容易编程,这里更容易编程的意思是指更容易做扩展和嵌入编程,也就是对解释器做事情,Lua 的跨语言编程模型非常简单好用,数据交互都是通过栈,而 Python 要复杂得多,作为 Python 和 C/C++混合编程的专家,我在最熟练的时候要把引用本文来源gaodaimacom搞#代%码@网-计数处理对也要核对文档,睁大眼睛仔细看好几次。
  2. Lua 的解释器就是一个数据结构,你可以在一个进程里面造出 很多来,而且彼此是完全隔离的,这在并发、错误处理上都极大得简化了问题,而 Python 的解释器是全局的,用了 Python,涉及这部分的东西就告别并行了,因为 进入Python解释器那里串行化了,如果出现了错误,也比较难以可靠地恢复(Lua 只要保护好涉及的资源,把解释器销毁重建一个就好了)
  3. 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的一个实现),理由:

  1. Javascript有丰富的第三方库,涵盖的领域不输Python
  2. V8/Node封装C/C++接口更容易
  3. Javascript的语法比Python简单,与Lua很相似
  4. 还可以用HTML写UI
  5. 性能比Python好了一个数量级,接近luajit(虽然我认为作为插件语言,性能其实根本不是问题)

但不是没有代价:集成Node.js进desktop app跟简单的集成一个解释器,难度不是一个量级的。。有兴趣可以参考Node-Webkit · GitHub或者Atom Shell · GitHub

非利益相关:前Autodesk程序员,现投身游戏行业。相当多的专业的三维软件和合成软件的脚本,以及VFX公司的流水线工具们,基本是选择了python,这个也不是随口胡说,是的确有根据的。不信搜搜。图像处理,Python的全局锁(GIL)就够让人决定选Lua了这种问题就好比什么语言是最好的语言,只能说哪一个熟练就用那一个lua,轻。请搜索:Adobe Photoshop Lightroom


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Python,Lua 哪个适合做绘图软件的插件脚本语言?

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址