首页 > 编程语言 > 关于未来编程发展趋势的九大预测
2016
02-05

关于未来编程发展趋势的九大预测


一部分科学家认为时间一直在以恒定的速率向未来推移,但也有更为睿智的人们觉得在接近光速的条件下,我们熟悉的一切都将发生改变。不过这一切都无法解释技术世界近年来面对的快速变化趋势。这种变化每时每刻都在加快,而我们似乎拼尽全力也难以赶上。

如果大家希望弄清自己该把开发工作的赌注押在哪项趋势身上,那么着眼于未来五年,这更像是一项撞大运的任务——而非真正的技术活儿。对高科技的未来前景做出预测几乎是不可能的,而创新造成的影响也让一切技能与工具在解决这个问题时都变得非常无力。不过其发展脚步偶尔也会显露端倪,让我们从目前的技术场景龟壳当中摇出几个铜钱,从而透过迷雾预见编程领域的未来曙光。

在这里,我们整理出了一份关于编程行业未来发展趋势的预测清单,其主要立足于当下已然出现的变革迹象。当然,我们无法保证每项猜测都百分之百准确:事实上,也没人能做到这一点。其中大部分趋势将在未来几年中逐步显现,而且可以作为一种发展路线图以指导我们抢先一步为未来做好规划。

预测一号:REST将统治物联网——至少在起步阶段

REST协议已经在Web领域拥有多年统治地位,并将随着恒温器、门锁以及厨房装饰品等小物件接入互联网并作为数据包交换对象存在而进一步巩固其重要作用。毕竟除了REST,这些小东西不太可能采用SCSI、USB或者SATA等其它对接方式,对吧?

其理由也显而易见。程序员们热爱REST的简单特性。归功于其基础架构,REST易于理解且能够相对简单地进行调试。我们几乎可以对以文本格式存在的全部数据进行查看,并轻松了解各装置的当前运行状态。毫无疑问,各类新型安保摄像头、微波炉或者旋转型烫发器都将由Nginx负责控制并运行在端口80之上,并利用HTML与CSS报告与之相关的全部信息。

预测二号:二进制协议将再度崛起

在JSON软件包中利用REST协议进行数据的往来传递确实非常简单,至少相较于传统XML数据及其90%的标签载荷而言是如此,但也有一些追求终极高效目标的程序员更倾向于直接使用二进制数据字符串,从而保证其能够直接通过JSON正确显示。毕竟另一端要做的也无非是解析字符串再将其以字节方式发送回来。那么为什么不干脆直接发送字节呢——特别是物联网在每次通信时只需要传输极小量数据字节的情况下?

开发更多二进制协议将是一个艰难的过程。HTTP标准似乎天然为文本而生。很多程序员在使用专有型二进制协议时碰了一鼻子灰,因为它们只能由专门的库进行解包,而且有时候根本达不到预期的效果。JSON与REST的开放性已经使其全面胜出,但这并不是说以开放方式实现的二进制协议就不能作为开放标准存在。物联网将生成前所未有的庞大数据总量,而很多设备将使用大量小规模数据包并要求这些数据包采取紧凑的编码形式。即使性能表现如此重要,程序员们必须要想办法寻求更多二进制方案来实现数据包的传输。

预测三号:视频令HTML失去生存空间

曾几何时,我们在网上冲浪、在不同网站之间往来跳转、浏览大量文本并点击无数超链接以获取更多详尽内容。但如今,我们更倾向于拿出数小时甚至数天来观看视频内容,躺在沙发上昏昏沉沉并在不知不觉中等待其播放完毕。即使是在抄起键盘的时候,我们实际要做的也只是在搜索框中输入“第x季”并等待Netflix返回正确的结果。互联网正在演变成由电视节目以及视频流所构成的新形式,其取代了以往枯燥的文本显示形式并源源不断涌来,允许我们在观看的同时走神甚至不慎睡上一觉儿。

事实上,甚至有一部分人认为互联网将彻底令电视失去用武之地。人们更乐于通过某些网站观看电视节目片段。说实话,我就不知道《周六夜现场》这档长寿的娱乐节目现在到底是在每周六晚播放,抑或变成了定期举办的一场现场狂欢——不过我很清楚的是,剧集中的每段内容都在网上提供单独的剪辑选项。经典的开场独白是否还在?是否仍设有嘉宾主持?谁知道呢,反正我们只挑自己喜欢的部分看。

不过总结来讲,除了观看实时体育赛事之外,电视和客厅对于我们几乎完全失去了吸引力。只需点一点,我们就能得到全部想要的结果。也许下一代视频应用程序将增加新的内容筛选层,并对现有工具做出进一步改善。Flash的消亡与HTML 5的崛起可能让视频剪辑同HTML之间的结合变成现实。也许程序员们可以利用这些机会拿出更加激动人心的成果。不过在此之前,用户仍将像祖父母那代人一样正常观看电视节目——只不过视频来源由BBC或者PBS等国家级广播公司变成了互联网流媒体巨头。

预测四号:智能手机能实现一切——但就是不能打电话

人们还会通过智能手机进行呼叫吗?我们发送短信、阅读邮件、浏览网站——但这一切还仅仅是开始。这块小小的矩形屏幕已经彻底改变了我们过去几十年中逐渐养成的生活习惯,而一切变更都非常有趣。我们开始为手机上的麦克风、摄像头以及加速度计等各类传感装置找到极为巧妙的用途,这意味着任何业务或者习惯都有可能因此遭到颠覆。

大家不妨想想原先我们需要将病症状况交给医生,然后在办公室外坐等好几个小时。目前正有数以百计的初创企业正寻找办法将智能手机同医疗设备相对接。麦克风可以用于测量心率,摄像头能够探查我们喉咙部位的状况,加速度计则可以追踪我们的锻炼情况。所有这一切都将以数据的形式与云端对接,保证医生可以通过这些信息了解到我们的生活习惯以及现有病症。

是的,下一代智能设备将把这一切视为基础性功能。导航应用除了进行路线定制与规划之外,还能够完成其它多种任务,包括控制汽车。锻炼追踪应用则成为一类能够追踪我们身体全部健康状况的工具——从睡眠到工作皆涵盖其中。另外,有些厂商可能还会开发出一些新的好玩应用,从而帮助我们以更具乐趣的方式进行电话呼叫。

预测五:更大、更好的数据库将主宰一切

诚然,搜索引擎的主要功能在于检索网页,但现在已经出现了能够直接检索整个世界的数据库——这要归功于日益发展的新一代位置识别应用与自动驾驶汽车。Waze等应用能够追踪其全部用户的动向,为开发商及用户提供世界范畴内的当前地图,而不必再劳烦现场工作人员眯着眼睛用什么激光测距工具制图或者根据航拍照片进行绘制。如果某条道路遭遇交通堵塞,他们会立刻得到消息。如果一头牛赖在道中间不肯挪动,他们会立刻得到消息。如果土木工程师完成了一条新道路的建造,那么人们也能马上知悉此事。

由数据库提供的如此详尽的细节信息确实令人惊叹。举例来说,自动驾驶汽车将需要了解路灯、自动售报机以及各消防栓的具体位置,同时做好准备驶上极少有人知晓的路段以避开交通拥堵。这些数据当中充满了值得探究的可能性,其远远超出了自动驾驶汽车本身。城市规划者将能够随时调控交通流量以提升出行效率,而路灯也将自行上报当前状况以降低维护成本。是的,警方也能够掌握大量行人数据从而快速对紧急事件做出响应。

在不久的未来,我们的数据库将能够记录全国范围内每个坑洼的具体位置。那么城市能否解决数量如此众多的问题?对于我们这代人来说可能比较难,但机器人已经出现在了可以预见的未来,到时候交给它们处理即可。

预测六号:JavaScript仍将广泛存在,但人们不再进行“JS编程”

如果我们不编写JavaScript代码,那么这项工作该由谁来完成?转码机器人,它们负责这项任务。我们可以利用自己熟悉的任何编程语言编写代码,而转码机器人将能够把它们转化为浏览器或者Node.js能够理解的内容。目前GitHub上已经开始有越来越多的代码无法以不经编译的方式执行。

在这方面,受影响最深的当数“方言”众多的编程语言,例如CoffeeScript——这类代码过去往往会给其他程序员带来严重困扰。目前CoffeeScript的衍生版本多达几十种,其中包括Coco、IcedCoffeeScript以及CoffeeScript II:可汗之怒~但这一切还仅仅是开始,聪明的程序员们已经编写出更多面向各类编程语言的转码方案,包括Cobol、Java、Lisp以及C等等。它们都能够在经过翻译以及旨在实现快速交付与解析的优化过程之后直接运行在我们的浏览器当中。如果大家能够利用自己最熟悉的语言编写程序,并由机器人管家对其进行翻译,那又何必非要使用JavaScript作为编程手段呢?

预测七号:PHP将卷土重来以对抗Node.js

……不过遗留下来的传统应用还是需要进行重新编写。几年之前,PHP几乎完全无法在服务器领域与Node.js乃至JavaScript相匹敌。目前这种状况也许仍然存在,不过PHP接下来很可能卷土重来。PHP 7以及HipHop虚拟机等刚刚推出的最新工具版本都能够提供令人印象深刻的性能表现。考虑到这一点,WordPress以及Drupal等代码库在运行速度上很可能提升30%、40%、50%甚至是100%。

但这并不会改变JavaScript在各类项目当中的优势地位,例如其能够确保同样的代码顺利运行在浏览器以及服务器之上,但这确实能够让一部分出于性能考量而放弃PHP并投入Node.js怀抱的开发人员回心转意。这些陈旧平台也许真能在未来焕发新的生机。

预测八号:每个人都能够编程——只不过很少有人编写“真正的代码”

教育项目的大量普及旨在教会每个人如何编写软件。2014年12月8日,美国总统奥巴马从维护中东局势以及打击恐怖主义的繁忙公务当中抽出了一个小时,学习了如何编写一行代码。也许他由此积累到的技术能力可以帮助其“奥巴马医改”网站运行得更加顺畅?

我们确实应当重视编程教学工作,说不定哪天我们养的小狗或者鹦鹉都能学会软件开发。而对于真正的程序员们,最好的办法就是报以微笑与鼓励。新生代当中越多人了解编程,就会有越多人深刻意识到打理这些数字、API以及其它任何相关元素的难度所在。像奥巴马总统那样编写一行象征性的代码当然很简单,可要以同样的方式构建起一套由上亿行代码构成的完整系统则极为困难——相信每位对编程有所了解的人都能意识到这一点。

也许其中会有一些人真正掌握了语言及开发技能,但相信绝大多数人都会扯着自己的头发陷入深深的绝望。任何人都能够写出一套循环,但只有极少数人能够根据需求选择合适的循环。每个人都能把木料锯开,但只有木匠才能做出漂亮的家具并建起坚固的住房。

预测九号:准备好迎接新的折磨

那时候全民编程培训已经实现,而这些拿出几个小时弄明白了一丁点编程原理的家伙开始插手我们的日常工作了。

“你是打算在这儿用变量吗?”老板走过来插言。“你觉得用常量是不是更合适?你是不是打算在这里用循环?”

这时候各位程序员兄弟姐妹们只要微笑,微笑就好。

原文标题:9 predictions for the future of programming

编程技巧