Python写三行,C写三十行:我们为何还要学"底层语言"?
年前,中科院物理所某博士在群里抛出一个问题:"现在用Python几十行代码就能搞定的事,以前C++得写几百行。那我们还费劲学C、C++、汇编干什么?"群里讨论很热烈。作为在高校带着团队做工程项目的老师,我想从工控一线的实际场景,聊聊这个"语言之争"背后的真相。 必须承认,Python太香了。做数据分析,pandas几行代码搞定Excel半天的工作量;搞机器学习,调个sklearn的API就能跑模型;写个爬虫,requests+BeautifulSoup组合拳行云流水。但香归香,香不到工业现场去。我们团队正在和华中科技大学同济医院疼痛科樊龙昌教授合作开发一款商业化疼痛具身智能体。你猜主控程序用什么写的?不是Python,是SCL——一种在PLC(可编程逻辑控制器)领域常用的结构化控制语言。为什么?因为客户要的不是"开发快",而是跑得稳、响应快、精度高。Python的解释执行、垃圾回收机制,在毫秒级响应的工控场景里,可能就意味着一次产线事故。 图1 笔者与华中科技大学同济医院疼痛科樊龙昌教授探讨疼痛具身智能体研究方案 有人说SCL是"高级点的梯形图",我不认同。SCL(Structured Control Language)看着像Pascal,写起来像C,但它的骨子里,流淌的是汇编语言的血液:寄存器级别的内存控制、位运算和状态字操作、中断响应和实时调度、对硬件时钟周期的精确把控。这些"老派"的编程思维,恰恰是工业自动化的根基。我们那款疼痛智能体的运动控制模块,涉及到多轴同步、力控反馈、安全急停。用Python写?逻辑上可行,但一个GC停顿(垃圾回收)就可能让机械臂"抖"一下——这在高速协作场景里是不可接受的。汇编不是另类,它是地基。 地基打得深,楼才能盖得高。【三、学什么语言,取决于你在哪一层】
回到上面中科院物理所某博士的问题:既然Python这么高效,为什么还要啃C++、C、汇编这些"硬骨头"?我的答案是:看你站在技术栈的哪一层。如果你只想做上层应用,Python够用了。但如果你想造工具而不是用工具,想理解计算机到底怎么运转,想能在工控现场debug到寄存器级别——底层语言是绕不开的必修课。更何况,真正的技术高手,往往能在不同层级间自由切换。 用Python快速验证算法,用C++部署到嵌入式设备,必要时还能读汇编查性能瓶颈——这种"全栈"能力,才是核心竞争力。