4

工具幻境(Tool Fantasyland)

 3 years ago
source link: https://zhuanlan.zhihu.com/p/275937605
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

工具幻境(Tool Fantasyland)

杭州饥人谷教育科技有限公司 CTO

本文摘自 16 年前出版的《编程大全》

正文开始:

过去数十年里,工具提供商和业界的权威人士都曾经许诺:用来消除编程的工具就在不远处。

软件工业界不断地开发新工具,用于减少或消除编程过程中的乏味工作,比如语法糖、编辑/编译/链接/运行程序所需的一堆步骤、查找不匹配的括号等等。新工具一开始确实有效,此时某些鼓吹者就会将这些优点吹捧至无穷大,设想这些优点最终能「消除对编程的需求」。

但实际上,每一项新的编程改革都带有瑕疵。随着时间放入流逝,瑕疵被修复,该项改革的全部潜力就都弄清楚了。

在过去的数十年中,程序员已经看到到过无数的号称能「消除编程」的工具。先是第三代语言,其次是第四代语言,然后是自动编程,再然后是 CASE 工具,最后是可视化编程。以上各项进步都对计算机编程产生了价值可观的、增量式的改进——它们组合在一起使得现在的「编程」体验确实上了一个台阶。

但是,没有哪项改革成功地消除了编程。原因在于,从本质上来说,编程是困难的——即便有非常好用的工具,编程也是很难的。无论什么工具,程序员都必须与凌乱的真实世界较力;程序员必须严密地思考前后次序、依赖关系、异常情况;而且程序员还要与无法说清楚自己想法的最终用户打交道;程序员始终要应对其他软件或硬件提供的定义不清的接口,还要解决规章制度、业务规则这些复杂性源头。

这些复杂性来自编程世界之外,始终需要人来填补真实世界与计算机之间的鸿沟。这些人将会被称做程序员,无论他是以汇编语言操控机器寄存器还是用 VB 来操控对话框。只要有计算机,就需要能告诉计算机该去做什么的人,这一活动被称做编程。

当你听到某个工具厂商宣称「这一新工具将会消除程序员」时,立刻躲开它!或者对这种厂商的幼稚的乐观主义一笑置之。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK