【发布时间】:2012-09-17 16:35:44
【问题描述】:
使用多种编程语言构建大型软件(例如 Altera Quartus II)是否合理(和/或实践)?意思是,软件的菜单是用 c++ 编码的,也许用户与之交互最多的核心功能界面是使用 java 构建的。这甚至可能吗?如果是这样,使用大型软件这样做的缺点/好处是什么?
【问题讨论】:
标签: java c++ programming-languages large-data
使用多种编程语言构建大型软件(例如 Altera Quartus II)是否合理(和/或实践)?意思是,软件的菜单是用 c++ 编码的,也许用户与之交互最多的核心功能界面是使用 java 构建的。这甚至可能吗?如果是这样,使用大型软件这样做的缺点/好处是什么?
【问题讨论】:
标签: java c++ programming-languages large-data
这是可能的并且已经实践过了,但是建议您的应用程序的核心是用 c++ 等中级编程语言构建以提高性能,而前端部分和任何实用程序和接口可以使用其他语言(如 javascript)构建核心。
看看 Mozilla 浏览器,它是带有 javascript UI 的 c++ 核心示例。
您的问题是关于它是否可能:答案是它。但是,我将尝试扩展一点,即使用 c++ 和 java 构建应用程序的挑战将是应用程序的两个部分之间的通信。你需要某种像 xml 这样的中间体来做到这一点。
【讨论】:
可以使用多种语言构建应用程序,例如,您可以用 C++ 编写前端,用 Java 编写后端,并使用JNI 进行通信。
虽然这样的应用程序允许您利用每种语言的功能,但它需要开发人员具备多个领域的专业知识或拥有多个开发人员,每个开发人员都会增加交付解决方案的成本。
此外,现在大多数编译器都倾向于在编译期间优化代码,因此开发人员不会尝试找到允许他们调整代码的各个方面的微优化,除非他们正在编写类似于 AutoCad 或 Photoshop 的东西,每个其中需要相对较多的系统资源。
具有多种语言的解决方案的另一个问题是如何使它们一起通信(套接字、共享内存段、管道等),这将是另一层复杂性。
【讨论】: