3.1 胶水语言通俗定义
计算机行业“胶水语言”指:本身不擅长底层高性能运算、底层硬件操控,但可以无缝粘合C/C++、Java、Go、Shell等各类编程语言,调用其他语言编写的代码、库、程序,像胶水一样把零散的异构程序拼接成完整业务系统。
3.2 四大核心底层原因
1. 原生C语言内核:CPython本身由C编写,内置稳定的C扩展调用接口(C API),市面上90%高性能Python库(numpy、opencv)底层全部是C代码,Python仅做上层调用封装,用户无需写C代码即可使用高性能能力;
2. 跨语言调用协议完善:支持ctypes直接调用Windows dll、Linux so动态库;支持JPype调用Java jar包;支持subprocess调用系统Shell、Go编译二进制文件;
3. 语法弱耦合、动态类型:不需要提前编译、不需要严格类型声明,调用外部程序不需要统一内存规范,适配异构系统;对比Java强类型,跨语言调用需要复杂序列化,灵活性极差;
4. 操作系统兼容性极强:同一套Python代码无需修改即可在Windows/Mac/Linux运行,天然粘合不同操作系统的服务。
3.3 通俗业务案例理解
爬虫系统:底层网络并发用C编写的libcurl,页面解析用Go编写的快速解析器,任务调度用Python,Python作为胶水串联三者,开发者只需要写10行Python调用代码,不用重构底层高性能逻辑。
误区纠正:不是Python运行速度快,是Python擅长整合其他快的语言,自身运算速度远低于C/Go。