编程的未来
?
最近在看一本书,加来道雄(Michio Kaku)的《物理学的未来》,第一、第二章是程序员更加关心的,对于下一个100年计算机和人工智能未来的预测。想想计算机发展短暂的历史,这些发生了的翻天覆地的变化,似乎都在弹指一挥间。谁的大胆预测可以那么准确?无论如何,书中对其这样几个猜想令我记忆深刻:
- 因特网眼镜和隐形镜片
- 无人驾驶汽车
- 摩尔定律结束
- 通用翻译器
- 全息摄影和三维影像
- 意识识别
- 有意识情感的机器人
- 模拟大脑
这是物理学家眼中的世界(另外推荐他的另一本书《平行宇宙》),激动人心;另一方面,我回想起小时候无比痴迷的机器猫,小小四维空间袋,寄托了孩子多少纯真的梦想,有多少神奇的道具已经成为现实……
但是程序员要说的看法,尤其在自己熟知的领域,我们不谈语言的发展和趋势,这些留给专家去做吧——不妨把目光放长远一点,100年后的程序员,他们都在做怎样的事情?100年后的编程,会是怎样的一种劳动?
人人都会编程
微博上,有朋友对于HTML5实现的web操作系统评论道“断网就是废物一个”,但是他并没有意识到,很快网络就将如同现在的水、电这样一样,是人正常生活不可缺少的基础设施。
类似的,编程,也将是未来人们日常生活的必备技能,如同写字、阅读一样。编程并不非得指写那些非程序员看不懂的奇形怪状的代码。你把衣服放到洗衣机里,设定好水量中等,浸泡20分钟,洗涤20分钟,漂洗3次共15分钟,再甩干3分钟——这,就是编程,你做的仅仅是按几个按键,把这几项工作组合起来。
再如ifttt这样的网站,你都可以实现编程的分支功能了——如果明天天晴的话,就发给你一条短信,去爬山。完成这样的功能,你根本不需要是程序员,你只要会操作电脑,会上网就可以了。
互联网的资源,将被得到更好地组织和获取,以YQL(Yahoo! Query Language)为例,你可以体会到这一点:
123select*fromhtmlwhereurl='http://www.dangdang.com/'andxpath='//ul[@id="homepage_promotion_count_ul"]/li/p[@style="margin-top: 1em !important; margin-right: 0px !important; margin-bottom: 1em !important; margin-left: 0px !important; font-style: inherit; font-size: 1em !important; vertical-align: baseline; width: 560px; background-color: white !important; padding: 0px;">1234love(you, dog).love(he, dog).love(she, cat).friend(PA, PB) :-\+(PA=PB), love(PA,Animal), love(PB,Animal).我来解释一下:
- 给定了三个事实:你爱狗,他爱狗,她爱猫;
- 给定一条规则:对于人物A(PA)和人物B(PB),如果人物A和人物B不是同一个人(“\+”表示取反),人物A爱动物Animal,并且人物B也爱同一种动物Animal,那么人物A和人物B就是朋友(friend)。
好,现在来询问程序一个问题:
1| ?-friend(you, he).你和他是朋友吗?程序判断你爱狗,他也爱狗,就给出结论:
1yes这只是基于规则的编程范型的一个例子,不同范型的语言适用于解决特定的问题。我们在未来能看到更多范型的语言,目的就是让对特定问题的表述和解决更见简单和易于理解。
创造性的工作在哪
既然编程会成为一件几乎人人都能够做的事情,那么程序员,你的价值在哪?
好,先来看看为什么越来越多的人可以编程呢?因为编程的门槛更低了。即便是现在,编程的门槛已经比二十年前低得多了:不明白网络协议?好,已经有现成的类库可以使用;不懂平台差异?好,你只需要在无差别的虚拟机上写程序;不理解内存管理?好,让程序来自动帮你完成这件事情……
所以,如果你还在为了解语言的不良设计、历史原因等等遗留下来的陷阱,或者为知道某个提高语言表达的语法糖而沾沾自喜的时候,你想过没有,这样的优势很可能太不值钱了。
程序员最有价值的部分不应在“翻译”上,即不应在将思考的结果翻译到代码这一层面上。编程的未来一定是让编程工作越发贴近人本质的思考,这样的“翻译”工作导致的歧义、错误、陷阱会越来越少,把清晰的思考变成代码是一件越来越简单的工作,以至于某天可以让能够读懂人脑的计算机来完成。
另一方面,很多公司的老大们却都不懂程序员,在他们心目中,“程序员”只是高成本的劳动力,只会在一台搞不懂的机器上干一些更搞不懂的事情。
看到这里,你是不是也发现,程序员本质上应该和音乐家、画家类似,往往也让许多人无法理解,而且艺术的价值,常常也都来源于思考?
音乐家有了更先进的乐器,画家有了更丰富的画笔,情感的抒发都可以更加自由。甚至有一天,拿掉乐器和画笔这些传统物理实体,给大脑接上两根线,思考之后的乐谱和画册就诞生在电脑里了。
可是,即便计算机可以帮助人思考,它却不能全面代替人思考,尤其对于艺术的创作。即便到了100年以后,程序员创造性的工作,还是无从替代的。
?
最后,放开枷锁去想象吧,100年以后,编程会是什么样子,程序员又会是什么样子,我期待你的答案。
文章系本人原创,转载请注明作者和出处(http://www.raychase.net)
注:本博客已经迁移到个人站点?http://www.raychase.net/?,欢迎大家访问收藏,本ITEye博客在数日后将不再更新。
?
1 楼 xmpp 2012-10-15 编程越来越方便,使用人也越来越懒惰。所以程序员不失业。