编程未来的九大预测:人人都知道如何编程,可很少有人会编写“真正的代码”。
这篇编程领域的预测文章为广大开发人员介绍了今后五年比较靠谱的趋势,但是考虑到技术行业变幻万千,没几个趋势保证会确实如此。
一些科学家表示,时间以恒定的速度向前移动。聪明人则认为,万物都在以接近光速的速度发生变化。但是这一切都无法解释科技界越来越快的变化速度。变化的速度在不断加快。
如果你想知道下一个职业发展机会在哪里,瞻望五年后的前景似乎就像瞎猜一通。预料科技行业的未来几乎不可能,更不用说预测将来很重要的技能和工具了,因为谁也不知道今后的创新会带来怎样的影响。不过我们还是可以从如今的科技行业察觉些许端倪,拨开重重浓雾,看到编程未来的一丝苗头。
我们在这里预测了编程领域的未来,是根据如今科技行业最令人关注的发展来进行预测。无法保证所有预测都会实现,甚至无法保证所有预测都是新的,其中许多是几年前就开始呈现的趋势。如果你将本文与我们之前的IT行业预测文章作一番比较,可能会觉得有点退步。尽管如此,这些预测还是提供了一份可靠的路线图,帮助我们在未来越来越快地呈现在面前时作好规划。
第一个预测:REST协议统治物联网,一开始如此。
REST协议已经统治互联网,必将保持这种主导地位,因为每一个恒温器、门把手和厨房摆饰都想成为互联网中功能完备、可交换数据包的一分子。人们并不称之为SCSI、USB或SATA之类的设备,不是吗?
原因显而易见。程序员们喜欢REST的简单。由于其基础架构,REST易于理解,调试起来也相对简单。没有什么比拥有文本表格中的所有数据更方便的了,因而极容易弄清楚发生了什么。如果到时看到这一幕:新的监控摄像头、微波炉或高速旋转的鼻毛修剪器启动后,Nginx在端口80上运行,报告该设备的采用HTML和CSS格式的所有最新信息,也别大惊小怪。
第二个预测:二进制协议卷土重来。
使用REST协议,以JSON数据包的形式来回传送数据也许很简单,至少与XML数据以及90%的有效载荷是标签这个旧世界相比很简单,但一些效率超高的程序员想知道为什么必须将二进制数据转化成字符串,那样才可以用JSON来正确表示。毕竟,另一头完全会解析字符串,重新转换成字节。何不直接传输字节,尤其是如果物联网只是往回发送仅仅几个字节的数据?
构建更多的二进制协议将是一项艰巨的工作。HTTP标准似乎天生是文本型。许多程序员在使用只能由专有代码库拆包的专有二进制协议方面有着糟糕的经历――这种处理方法时而行,时而不行。JSON和REST的开放性一直深得人心,但这并不意味着二进制协议采用开放的方法就会给开放标准带来效率。物联网会生成比以往更多的数据,许多设备会使用众多需要更严格编码的小数据包。如果这种性能必不可少,程序员会开始想方设法为数据包添加更高效的二进制协议。
第三个预测:视频终结HTML明星。
从前,我们上网冲浪,从一个网站跳到另一个网站,浏览文字,每当我们想要了解更多信息,就一路点击超文本链接。现在,我们数小时甚至数天狂看网络视频,看完整部片子从沙发上起身后就会觉得昏昏沉沉、昏昏欲睡。如果我们真要碰一下键盘,那也是为了搜索下一季节目何时上传到Netflix。互联网变成了一台超级电视机,视频流通过交互式的分岔文本小径铺开来,源源不断的视频让我们忘却了思考。
这个观点并不完全正确;有些人甚至认为,互联网解放了电视机。人们在一些网站上观看电视片段。我不知道《周六夜现场》(Saturday night live)这档节目是否仍在周六播放,还是说果真面对现场观众实时拍摄,不过我确实知道,你可以在网站上通过单独片段来观看每一集。它还会有开场白吗?还会有嘉宾主持吗?谁知道!
不过尽管如此,电视迷们除了被动地观看视频画面外,几乎没啥事好做。基本上不用点击,也几乎毫无控制可言。也许下一代视频应用程序会增添另一层,改进已有的工具。Flash的殒落和HTML5的崛起为结合视频片段和HTML带来了广阔前景。也许程序员可以充分利用这方面的一些机会。在那之前,用户将坐在那里看电视,与之前祖辈看电视的方式基本上毫无二致,只不过视频流来自某个互联网巨头,而不是来自某家熟悉的国家广播公司。
第四个预测:智能手机将具有除通话之外的一切本领。
还有谁在用智能手机通电话吗?我们使用智能手机,更多地是为了发短信、读邮件、逛网站,而这只是开了个头。十多年来,小小的方块屏幕一直在彻底改变大众生活的方方面面,这种变化开始变得饶有意思。随着我们增添检测部件,为麦克风、摄像头和方向感应器寻找巧妙的用途,不管是干正事儿还是消遣娱乐,都难免要因手机而分心。
不妨考虑这个旧世界:在医生诊所等待好几个小时才获得医疗救助。成百上千的初创公司在想方设法将智能手机变成一种医疗设备。麦克风可以知道你的心跳。相机可以看看你的喉咙后部。方向感应器可以跟踪你的锻炼情况。所有这些都可以连接到云,云端有好多医生,他们可以把你转给专门看你所患疾病的那个专家。
是的,下一代智能设备会让目前这一代设备如同小儿科。导航应用程序正在变成路线预订和规划应用程序,除了驾驶汽车外,简直无所不能。健身跟踪应用程序正成为从睡眠到工作,全程跟踪我们人体各种节律的工具。
第五个预测:更大更好的数据库将占主导地位。
当然,之前搜索引擎索引互联网;而现在,数据库索引世界本身,这归因于来自下一代位置感知应用程序和无人驾驶汽车的需求越来越大。像Waze这些应用程序可以跟踪所有用户的流动,为开发人员和用户提供实时世界地图,而不是像以前那样由地图绘制员盯着航空照片来绘制地图。他们知道巡回演出乐队的大批随行人员是否堵住了车道,他们知道一头牛是否导致交通拥塞。如果土木工程师增设了一条新的道路,他们就会赶在别人之前发现。
数据库会提供诸如此类的细节,令人惊讶。比如说,如果果真准备好发觉追球跑到路上的那个孩子,无人驾驶汽车就需要知道路灯杆、自动售报机和消防栓的位置。除了无人驾驶汽车外,这些数据还有大量的应用前景,只待我们去发掘。许多城市将来能够知道何时需要重铺路面、哪里需要重铺。要是路灯坏掉,很容易更换。是的,警方会拥有比以往更多的数据,了解街上行人的动向。
不久,我们会有详细记录全国每个坑洼具体位置的数据库。城市会填补这些坑洼吗?对我们这一代人来说也许工作量太大了,但是机器人正迎面而来。
第六个预测:JavaScript将占主导地位,但没人会编写JavaScript。
如果我们不编写JavaScript,谁来编写?转换代码的机器人。我们用十来种语言中的任何一种来编写代码,然后转换代码的机器人将它变成浏览器或Node.js所能理解的某种语言。GitHub上越来越多的代码不经过某种“编译”,就没法运行。
最突出的就是节省代码的语言,比如CoffeeScript,它去除了困扰程序员的大量标点符号。CoffeeScript衍生出了好多变种,包括Coco、IcedCoffeeScript和CoffeeScript II:The Wrath of Khan。这些仅仅是个开始,因为聪明的程序员为像Cobol、Java、Lisp和C这些迥然不同的语言编写了代码转换器。如今,所有这些语言在进行巧妙的转换和优化、以便快速传送和解析之后,都可以在浏览器里面运行。既然你可以让机器人软件助手转换你常用的语言,何苦还要编写JavaScript?
第七个预测:PHP将奋力反击Node.js。
但结果是,保护老式应用程序不被改写。几年前,随着Node.js和JavaScript席卷服务器集群,PHP给人的感觉是好像日渐式微。这种情形(PHP没落)仍有可能发生,但是PHP不会轻易认输。像PHP 7和HipHop虚拟机这些just-in-time工具的最新版本在提供大大改善的性能。正因为如此,像WordPress或Drupal这些代码库的运行速度提高了30%、40%、50%,或者甚至100%。
这并没有改变JavaScript在开发项目时提供的其他优点,比如它让同一代码在浏览器和服务器上都可以运行,但是这消除了摈弃用PHP编写的旧代码库、改用Node.js的最主要原因之一。毕竟,这些旧平台会迎来新生。
第八个预测:人人都知道如何编程,可很少有人会编写“真正的代码”。
教育项目让每个人教别人如何编写软件。2014年12月8日,奥巴马总统在阐述中东问题和打击恐怖活动间歇,抽出时间花了一个小时学习如何编写一行代码。他的黑客节(hack fest)有没有让部署下一代奥巴马医改网站的工作变得顺畅点?
今后好多年,我们会继续痴迷于教每个人编程,甚至教我们饲养的爱犬和鹦鹉编程。对于真正的程序员来说,最好的策略就是报之一笑,并加以鼓励。越多的普通人试着编程,他们就会越认识到同时处理好所有那些数字和API诸如此类的东西有多么困难。像奥巴马总统那样编写一行代码是一回事,使用成千上万行代码构建整个系统是另一回事。
到时会有人学会一门语言后成为高手,但许多人会猛拽头发、默默地哀叫。谁都能编写一个循环,可是只有少数人能选择合适的循环。每个人小时候都学过如何砍木头,可是仍需要叫木匠盖房子。
第九个预测:指手画脚的上司会让人更受不了。
管理人员在编程速成班学了一点编程方面的皮毛,现在他们想要帮助别人。
我们会听到:“你打算在那里使用变量吗?”“你觉得使用常量合理吗?我觉得,你在这里应该使用循环。”
对于这样的上司,记得报之一笑,表示感谢。你能做的就是这样。
云头条编译|未经授权谢绝转载
欢迎加入,群主微信:aclood