每次我在某个时候创建软件时,我都希望为用户提供一种以编程方式控制它的方法。
到目前为止,我探索了以下路径:
- 将其核心实现为库(dll/so、jar、TCL 包...)
- 嵌入脚本引擎(尝试过 TCL)
- 使用套接字编程将其核心实现为服务器
库方法不会为开发人员花费太多额外的精力,但对于“小”任务来说并不完全是用户友好的。
只要您选择了他最喜欢的语言,脚本引擎方法就是用户友好的。它可能会相当慢,并且无论如何都会对软件架构、构建流程、分发产生一些影响……最后我认为这是开发人员最需要付出努力的一个。
服务器选项的好处是可以让用户选择自己喜欢的语言,并且与用户代码有最大的解耦。
第一个问题是“还有其他方法吗?”
第二个问题是关于性能的:我想知道服务器方法与脚本引擎相比如何。我知道这取决于考虑哪个脚本引擎以及哪个操作系统,这就是为什么我问 SO 而不是仅仅在家里的计算机上进行基准测试......