未来编程的9大猜想

jopen 9年前

英文原文:9 predictions for the future of programming 

科学家称时间是匀速前行的,智者称万物以光速而变化——然而科技的瞬息万变仍旧无从求解,一眨眼,又是另一番景象了。

很多人巴不得能够看透未来,但未来五年顶多是猜测而已。预测科技发展简直是天方夜谭,因为创新的影响力足以淘汰当下的很多技能和工具。话虽这么说,我们还是瞅瞅这命运的茶叶渣子,或许能帮我们拨开迷雾,瞥一眼未来,看看科技到那时究竟是什么样的。

站在科技成就的前沿,我们斗胆展望未来。并非所有展望都会实现,甚至连惊喜都谈不上——其实很多趋势在数年前就“小荷才露尖尖角”了。希望能够为开发者们提供有价值的参考,帮助提升针对未来变化的反应能力,快速做出规划。

1. REST 一开始就统领了 IoT

REST 协议统领了整个网络。随着恒温器、门锁、厨房用具等争先融入日趋成熟的 IoT(物联网),这样的趋势还将继续。物联网就是物联网,可不是别的什么的 SCSI、USB 或 SATA 联网。

原因很简单,REST 协议的简洁深受程序员青睐,其基础架构使得 REST 协议简单好用,找代码漏洞也变得更容易了。还没有任何协议能像这样用文字形式储存数据,一目了然。当崭新的监控摄像机、微波炉或旋转式鼻毛修剪器随着端口 80 上的 Nginx 一同启动,HTML 和 CSS 上设备动态源源不断更新时,千万别大惊小怪。

2. 二进制协议再崛起

基于 REST 协议在 JOSN 数据包中传送数据至少比老一套的 XML 数据及标签的 90% 有效负载而言要简单很多;但极其注重效率的程序员可能会质疑,为什么必须将二进制数据转换为字符串才能在 JSON 中正确显示,反正字符串回头还要解析成字节的,不是吗?既然这样,特别当物联网仅仅传送几字节的数据时,为什么不直接传送字节呢?

创建更多二进制协议费时费力,HTTP 标准本来又都是文本。许多程序员曾经使用过只能用专有代码库拆包的专有二进制协议,深知这种方法并不是时时凑效,让人沮丧。

相比之下,开放的 JSON 和 REST 的优越性就很明显了,但这不代表使用二进制协议不能使开放标准高效率发挥作用。物联网将产生比以往更多的数据,许多设备将使用大量编码要求更严格的小数据包。当效率成为硬性要求,程序员会想方设法为数据库添加更高效的二进制协议。

3. 视频流将淘汰 HTML

在网站之间辗转,阅读页面文字,点击超链接来获取更多信息的时代过去了,如今我们在电视机前浑浑噩噩数小时甚至数天,剧集播完时方慵懒地从沙发上站起来。唯一使用键盘的时候也只是为了知道下一季什么时候在 Netflix 上播映。互联网变成了新一代电视,而稳定的视频流正沿着文本互动模式铺展开来,帮我们来思考。

这并不完全正确。很多人觉得网络正在解放电视机,让更多人可以坐在电脑前吃着零食观看电视节目。我不知道“周六夜现场”是不是仍旧在周六晚上播出,甚至不知道这个节目有没有直播过,但我知道可以在网站上轻松搜到它。它还保留着那开头的独白吗?还有特约嘉宾主持环节吗?谁知道呢?

但对于这一切,电视迷除了对着屏幕乐呵也做不了什么。几乎不用点击鼠标,也不用翻看网页。也许下一代视频应用会添加更多视频层,并改进现存的工具。Flash 的消亡和 HTML5 的崛起为 HTML 合并视频剪辑开启了很多可能性,给程序员带来了福音。在那之前,电视节目背后是互联网巨头也好,是三个大写字母为名的国家广播公司也好,用户就只是被动地坐在那里,跟几十年前并无差别。

4. 通话不再是智能手机的主要功能

还会有人单纯为打电话而买智能手机吗?发短信、查邮件、上网站,能做的事情还有很多。这小小的矩形屏幕在过去十多年已彻底改变了生活的方方面面,其未来更是让人翘首以待。更多的传感器,更智能的麦克风、相机和加速度计……不过这也意味着手机的商用和私用都会面临一定的隐私风险。

以前,人们要在医生办公室外等待数小时才能得到救助;而现在成百上千的公司正试着把智能手机变成一个小小的私人医疗设备——麦克风可以听取心跳,相机可以用来查看喉咙,加速计可以追踪健身状况——这些数据可以输送到云端,快速帮你找到对症的医生。

是的,新一代的智能设备定将让如今的科技相形见绌——导航应用可以实现路线规划;计划应用除了开车之外几乎无所不能;健身追踪应用可在睡眠和工作时间不间断记录身体的状况。不论是手机还是其他设备,这样的移动应用还会层出不穷。

5. 数据库更大、更强

不错,搜索引擎可以作为网页的索引,而如今已经存在可以作为世界索引的数据库了,这都得归功于新一代定位应用和自动驾驶汽车不断扩张的市场需求。Waze 等应用可以追踪其用户,从而为开发者和用户编制了一张包罗万象的世界地图,制图师眯着眼趴在航拍照片的旧时代已一去不复返。某条路被封住,一头牛堵住了车流,还是土木工程师新添了一条道路,都能立刻知晓。

数据库之精细令人叹为观止,比如自动驾驶汽车可以输入红路灯、报纸自动售卖机和消防栓的位置数据,好保证行程的安全。数据规模之庞大,为自动驾驶汽车所用绝对绰绰有余。什么时候、什么地点的道路需要维修,哪里的路灯坏掉了,市政部门都能掌握信息;警察掌握的数据远远超出了街上行人的范围。

数据库甚至能记录每个城市中的路面坑洞,以及需要修补的时间。如果这一切已经让你目不暇接了,那么机器人肯定更能牵动你的心。

6. JavaScript 将成为主宰语言,却无需亲自编写

如果我们不编写 JavaScript,谁来做呢?答案就是代码转换机器人,它们能将任何语言转换成浏览器或 Node.js 理解的语言。GitHub 上越来越多的代码需要经过“编译”才能运行,比如精简的 CoffeeScript,该语言去掉了很多程序员讨厌的标点符号。单单 CoffeeScript 就有数十个版本——Coco,IcedCoffeeScript 和 CoffeeScript II: The Wrath of Khan。

这仅仅是开端而已,很多程序员明智地编写了 Cobol、Java、Lisp 和C等多种语言的代码转换器。现在这些语言经过转换和改进,经过快速交付和解析后就能在浏览器里运行了。既然有了机器人软件来转换你熟悉的语言,为什么还要费尽周折使用 JavaScript 呢?

7. PHP 将对 Node . js 展开反击

…不过仅仅是为了防止改写遗留的应用。几年前,人们还以为 PHP 会随着 Node.js 和 JavaScript 占领服务器机群而退出历史舞台。现在看来它的“退休时间”恐怕要延迟了,知道要打完这最后一场战役再说。PHP 7 和 HipHop 虚拟机等最新即时工具运行更快更流畅,让 WordPress 和 Drupal 等代码库的运行速度提升了 30%、40%、50%,甚至 100%。

而 JavaScript 对于项目开发的其他优势仍然存在,比如相同代码在浏览器和服务器上都可以运行,但如此一来,也就没有了用 Node.js 代替 PHP 旧代码库的理由了。这些旧平台最终会浴火重生的。

8. 入门容易精通难

软件开发的教授和学习都变得更简单了。2014 年 12 月 8 日,美国总统奥巴马暂且将中东问题和反恐事业搁在一边,花了一个小时学习并编写了一行代码,不知道这会不会让他的“Obamacare(奥巴马医改)”网站更流畅一些呢?

不论教授的对象是人,是宠物狗,还是鹦鹉,这场代码教授热潮都会继续好多年。而真正的程序员最好以一个微笑,一句鼓励回应就是。当越多的人加入编程学习大军,他们就越能认识到处理协调数字、API 等有多棘手。像奥巴马那样写出一行代码很简单,但上百万代码组成的完整系统却是常人难以驾驭的。

个别有天分之人入了门就能如鱼得水,但绝大部分都是绷直了脑袋,暗暗叫苦不迭。编写一个循环简单,但选择最合适的很难;孩童时期学过砍木头,但又有几个能在日后掌握木匠精湛的技艺?

9. 指手画脚的 BOSS 让人抓狂

这算不上是展望,因为他们已经做到了——这些上司们在速成班里学了点编程,就觉得自己成了行家,程序员于是就这样“被帮助”了。

“你要用一个变量吗?”他们喜欢在旁边插话:“你确定在这里使用常量?我觉得循环更好些。”

这种情况下,只要面带微笑,道声感谢,这是你唯一能做的。

作者:Peter Wayner 
翻译:张新慧 
审校/责任编辑:唐小引

来自: CSDN