gpt4 book ai didi

java - 制作组件用不同语言编程的(桌面)软件?

转载 作者:行者123 更新时间:2023-11-28 20:48:58 25 4
gpt4 key购买 nike

桌面软件的不同组件可以用不同的语言编程吗?例如,一个名为 MultiProg 的软件由组件 Comp1、Comp2、Comp3 等组成。除 1、2、3 之外的所有组件都在 java 中,1 在 C 中,2 在 Python 中,3 在 Scala 中等。是否可以这样做?什么时候需要这样做?

这在软件行业中常见吗?当组件用不同的语言编写时,我们如何使组件进行通信?

最佳答案

这当然并不罕见。

python 标准库的许多部分是用 C 编写的,许多流行的第三方库(如 numpy)也有部分是用 C 编写的,您可以使用 ctypes 创建到您自己的 C 库的绑定(bind)。 Python 的默认 GUI 库 Tkinter 的一部分是用 Tcl/Tk 编写的。

Java 具有 Java native 接口(interface) (JNI),可用于集成针对物理机而不是 Java 虚拟机编写的模块。 Scala 可以使用为 JVM 编写的库(显然包括那些用 Java 编写的库),它也可以使用 JNI。

大多数大型软件都是用多种语言编写的。通常使用两种语言,一种是用于性能关键部分的快速编译语言(通常是 C 或 C++),另一种是用于编写复杂但不是性能关键部分的脚本语言(例如 Python、Lisp、Lua)。

任何语言都需要满足两个条件才能进行交互。一是它们必须能够以相互理解的格式共享内存中的数据,二是它们必须能够使用通用的“调用约定”调用彼此的函数。 native 界面库解决了这些问题。

关于java - 制作组件用不同语言编程的(桌面)软件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15725990/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com