商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > 编程的未来

编程的未来

  发布于2026-07-21 阅读(0)

扫一扫,手机访问

最近在读加来道雄的《物理学的未来》,前两章聚焦计算机和人工智能的百年预测,正好是程序员最感兴趣的部分。想想计算机发展这短短几十年,翻天覆地的变化几乎都在弹指一挥间。谁的大胆预测能那么准?但书中这几个猜想,确实让人印象深刻:

因特网眼镜和隐形镜片、无人驾驶汽车、摩尔定律的终结、通用翻译器、全息摄影与三维影像、意识识别、有意识情感的机器人、模拟大脑。

这是物理学家眼中的世界——另一本《平行宇宙》也值得推荐,同样激动人心。另一方面,想起小时候痴迷的机器猫,那个小小的四维空间袋,寄托了多少纯真的梦想,而其中有多少神奇道具已经成为现实……

但程序员更想聊的,是自己熟悉的领域。不谈语言的发展与趋势——这些留给专家去分析——不妨把目光放长远一点:100年后的程序员,他们在做什么?100年后的编程,会是怎样一种劳动?

人人都会编程

微博上,有朋友评论HTML5实现的Web操作系统:“断网就是废物一个”。但他没意识到,很快网络就会像现在的水、电一样,成为人正常生活不可或缺的基础设施。

类似的,编程也将成为未来人们的日常必备技能,就像写字、阅读一样。编程并不非得写那些非程序员看不懂的奇形怪状的代码。你把衣服放进洗衣机,设定好水量中等、浸泡20分钟、洗涤20分钟、漂洗3次共15分钟、再甩干3分钟——这,就是编程。你做的仅仅是按几个按键,把这几项工作组合起来。

再比如ifttt这样的网站,你已经可以实现编程的分支功能了——如果明天天晴,就发一条信息提醒你去爬山。完成这样的功能,你根本不需要是程序员,只要会操作电脑、会上网就行了。

互联网的资源将被更好地组织和获取。以YQL(Yahoo! Query Language)为例,你可以体会这一点:

select * from html where url='http://www.dangdang.com/' and xpath='//ul[@id="homepage_promotion_count_ul"]/li/p[@class="name"]/a'

它做了这样一件事:从当当网的页面获取数据,数据的路径通过XPath表达式给出。如此一来,整个互联网就变成了一个超级大型的数据库。当然,这样的语法还是不够简单,希望能看到类似ifttt的应用出现,目的却是让不会编程的人也能轻松从互联网这个大型数据库中查询自己需要的东西。

未来需要普通人掌握的编程技能也不尽相同,就像现在年轻人和老人的阅读技能大不相同一样。但可以确定的是,生活中会充满编程的行为,让机器替代自己做更多的事。

所见即所得

谈及所见即所得,很容易想到很多编程语言、IDE,甚至包括FCKeditor这样的富文本编辑组件。Google已经做了这样的尝试——App Inventor就是为手机端准备的编程软件,可以看看它的宣传视频。而Bret Victor那场广为流传的演讲《Inventing on Principle》,第一次看的时候,你一定会惊讶得合不拢嘴。

所见即所得使得编程的过程更贴近人最自然的思维,一张丰富画面所传递的内容远远大于枯燥的代码行语义和数值。

编程范型的进化

相较于硬件的摩尔定律,软件的发展似乎真的“太慢了”。几十年历史的编程语言可以长盛不衰地存活下去,而硬件淘汰的速率却快得多。好在软件的发展也有驱动力,软件的复杂性就是直接驱动力之一。想想现在做一个普通网站的代价,和十五年前相比,能省多少功。

很多时候程序员会觉得,算法还是不容易转变成代码——即便是简单的算法,思路在纸上实现很容易,变成代码却比较冗长。大部分情况下这不是编码技巧的问题,而是编程语言的问题。换句话说,如果使用一种合适范型的编程语言,兴许就能轻松解决这个问题——即便这样的语言并不一定好找,并不一定容易设计。

我们都知道从过程式编程到面向对象编程的进化,可如今常用的编程范型已经远远超出这两者了:声明式编程、面向方面编程、基于规则的编程等等,固有的思维模式一次又一次遭到挑战。

以Prolog语言为例,它由事实和规则组成。先告知程序已知的事实和规则,再去询问程序一个需要推断的问题,让它给出推断的结果。比如:

love(you, dog).
love(he, dog).
love(she, cat).
friend(PA, PB) :- \+(PA=PB), love(PA,Animal), love(PB,Animal).

解释一下:给定三个事实——你爱狗,他爱狗,她爱猫;给定一条规则——对于人物A和人物B,如果A和B不是同一个人,A爱动物Animal,并且B也爱同一种动物Animal,那么A和B就是朋友。现在询问程序:“你和他是朋友吗?”程序判断你爱狗,他也爱狗,就给出结论:yes。

这只是一个基于规则编程范型的例子。不同范型的语言适用于解决特定问题。未来我们会看到更多范型的语言,目的就是让对特定问题的表述和解决更简单、更易于理解。

创造性的工作在哪

既然编程会成为一件几乎人人都能做的事情,那么程序员,你的价值在哪?

先来看看为什么越来越多的人可以编程?因为编程的门槛更低了。即便是现在,编程的门槛已经比二十年前低得多:不明白网络协议?有现成的类库可用;不懂平台差异?在无差别的虚拟机上写程序就行;不理解内存管理?让程序自动帮你完成……

所以,如果还在为了解语言的不良设计、历史原因遗留的陷阱,或者为了知道某个提高表达能力的语法糖而沾沾自喜,这种优势很可能太不值钱了。

程序员最有价值的部分不应在“翻译”上——即把思考的结果翻译到代码这一层面。编程的未来一定是让编程工作越发贴近人本质的思考,这样的“翻译”工作导致的歧义、错误、陷阱会越来越少,把清晰的思考变成代码会越来越简单,以至于某天可以让能够读懂人脑的计算机来完成。

另一方面,很多公司的管理者却不懂程序员,在他们心目中,“程序员”只是高成本的劳动力,只会在一台搞不懂的机器上干一些更搞不懂的事情。

看到这里,你会发现程序员本质上和音乐家、画家类似——往往也让许多人无法理解,而且艺术的价值,常常也都来源于思考。

音乐家有了更先进的乐器,画家有了更丰富的画笔,情感的抒发都可以更加自由。甚至有一天,拿掉乐器和画笔这些传统物理实体,给大脑接上两根线,思考之后的乐谱和画册就诞生在电脑里了。

可是,即便计算机可以帮助人思考,它却不能全面代替人思考,尤其对于艺术的创作。即便到了100年以后,程序员创造性的工作,还是无从替代的。

最后,放开枷锁去想象吧——100年以后,编程会是什么样子,程序员又会是什么样子?期待你的答案。

本文转载于:https://blog.csdn.net/raychase/article/details/84301251 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

上一篇:泛型编程

下一篇:少儿编程:少儿编程

热门关注