【FFI】 FFI 为什么存在——跨语言调用的根本问题
写代码几十年了,没有哪个语言能统一所有场景。C/C++ 统治系统编程,Java 统治企业后端,Python 统治数据科学。每种语言都有它擅长的生态,也有它够不着的角落。 FFI(Foreign Function Interface)的存在,本质上是为了两件事: 借用性能。 Python 写数据管道很
写代码几十年了,没有哪个语言能统一所有场景。C/C++ 统治系统编程,Java 统治企业后端,Python 统治数据科学。每种语言都有它擅长的生态,也有它够不着的角落。 FFI(Foreign Function Interface)的存在,本质上是为了两件事: 借用性能。 Python 写数据管道很
FFI 的底层逻辑很简单:两个语言之间要互相调用,总得有个共同的"语言"做桥梁。这个桥梁不是 C 语言本身,而是 C 的调用约定——C ABI。 为什么是 C ABI,不是别的 操作系统内核用什么语言写的不重要。Linux 是纯 C,macOS 的 XNU 混了大量 C++,Windows 内核也是