如果应用程序的内部对象模型是可编写脚本的,那么这将更有用.在Windows上我会使用COM或.Net公开对象,但我希望这可以在Linux上运行.我可以嵌入脚本语言,但这是一项相当多的工作,并限制用户使用我选择的脚本语言.理想情况下,我正在寻找一种从我的应用程序中暴露可编写脚本的DOM的方法:
>广泛支持脚本语言(无需编写特定于语言的包装器)
>跨平台(但linux支持是最重要的)
>进程中(但这不是必需的)
更详细一点:我希望找到一种能为COM提供类似好处的解决方案.也就是说,一旦应用程序的内部对象通过COM公开,它们就可以被任何脚本语言 *** 纵,就像JavaScript可以 *** 作HTML DOM一样.对象和方法很容易被发现,许多IDE为您的对象提供自动命令完成.客户端的可用性很重要.
解决方法 通常的方法是公开一些Cli命令,并允许用户在用户编写的任何shell /脚本语言中使用它们;见f.e. imagemagick,它公开了许多命令,用于在格式之间转换图像并应用转换.这适用于任何 *** 作系统.这也适用于交互式程序,尽管很少见.您可以使用D-BUS接口(在GNOME和KDE中越来越受欢迎),尽管它更适用于处理事件或发送简单命令.您可能希望创建一个交互式或类似守护进程的程序,它暴露D-BUS(甚至简单的基于套接字/管道的)接口,以及一些包装发送命令的简单Cli调用,以便界面更简单.请参阅moc / mocp(“控制台播放器上的音乐”)或xmms2.这适用于任何 *** 作系统,但通常需要一些时间来计算不同 *** 作系统的实现细节.
不要害怕嵌入完整的语言. Lua或Guile等语言的设计使它们非常易于嵌入且非常强大.对一种这样的语言进行标准化并不总是坏事,因为这意味着用户之间的代码可重用性更高……而且只有当您计划用户将大量代码编写为插件时,语言才真正重要.
有一些方法可以使用特殊库将API公开给多种脚本语言.你可以阅读它们f.e.这里:Kross@Wikipedia.我对他们没有经验.
我假设你的程序将是闭源的…然后我可以看到的最后一个选项是暴露某种API / ABI接口,可以被用户的C程序使用(例如编译到动态库).这样,用户就可以为他们想要的任何语言制作包装器,而且他们可以使用普通的C编写代码以提高速度.这种解决方案可能难以移植,但它为您(和您的用户)提供了灵活性.
请注意,过度设计脚本化很容易:最好将编程结构留给外部语言,并且只提供与程序交互的简单方法.我见过程序为脚本语言添加了自己的循环功能,即使它们没有为用户添加任何值:f.e.能够传递多个图像以立即转换,即使它没有使处理更快.
总结以上是内存溢出为你收集整理的如何在Linux中创建可编写脚本的应用程序全部内容,希望文章能够帮你解决如何在Linux中创建可编写脚本的应用程序所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)