技术开发 频道

2017年编程领域的11个大胆预测

  【IT168 评论】生物界有一个很著名的假说叫红皇后假说,“我们要努力奔跑,才能停在原地。”个人感觉这一假说与编程领域的发展是相契合的,技术不断创新,我们只有不断奔跑,才能保持不掉队。

2017年编程领域的11个大胆预测

  2016是经历了众多转型的一年,日益严峻的网络安全、无处不在的机器学习、万物互联的物联网......这些种种可能都会在2017年出现了一个质的变化。那么2017年到底会有哪些新变化,让我们一起来大胆预测一下吧。

  1.云将颠覆摩尔定律

  摩尔定律指的是当价格不变时,集成电路上可容纳的元器件的数目,约每隔18-24个月便会增加一倍,性能也将提升一倍。过去,CPU的速度是非常重要的,只要你换一个更快更大的CPU,那么性能就可以翻番。而现在,CPU做的仅仅是在屏幕上显示信息,很多一部分的工作都是在云中完成的。假设,你在Google中搜索一个信息,那么它在云中需要进行成千上万次操作,才能给你返回正确结果。

  所以对于程序员来说,现在真正面临的挑战是如何才能弹性部署刚好的计算能力,给予用户快速友好的体验。目前云公司给予了我们足够的资源,但是并行工作的算法还是需要程序员自己去寻找。

  2.物联网安全的形势将更加严峻

  僵尸网络(Botnet)是指采用一种或多种传播手段,将大量主机感染bot程序(僵尸程序)病毒,从而在控制者和被感染主机之间所形成的一个可一对多控制的网络。去年,一个名叫Mirai 的僵尸网络名动天下,短短几周时间,Mirai中断了超过900000德国电信客户的网络服务,还侵入大约2400台英国TalkTalk公司的路由器。

  当前很多小工具的供应链是没有固定的软件机制,它们的生命周期往往始于工厂制造,终于用户。从装配到首次使用大概需要十个月左右的时间,在这么长时间的传输过程中很难保证它们不会有什么情况发生。

  所以,我们面临的挑战是如何在这个过程中跟踪它们的行踪,监控它们每一分钟的变化,软件是否更到了最新版本?所有的安全补丁都应用了吗?但是由于家庭中的智能设备数量较多,最好的方法应该就是建立一个智能防火墙。

  程序员如果想要更智能的执行任务,并让用户拥有最大的灵活性,那么这个平台必须是开放的。而开发的平台不仅给制造商和开源带来了蓬勃生机,同时也给了病毒开发者更大的空间。

  3.视频将以新的方式主导网络

  HTML标准委员会开始将视频标签嵌入HTML,虽然这一举措的初衷可能并没有重新制定娱乐的宏伟计划,但是视频标签响应JavaScript命令已经使得它们基本上可编程了。这已经是一个很大的变化了,过去,大多数的视频都是被动消费,但是现在拥有了主动权。

  虽然现在JavaScript对视频的控制还是十分有限的,但是已经有不少有想法的网页设计师将视频和网页的其它部分无缝集成在一起,视频的叙事性和互动性可能会有更深层次的结合。

  4.游戏主机将取代PC

  相比于PC机,游戏主机的画面和沉浸感更胜一筹,它们的视频卡相对强大,软件平台相对稳定。如果物联网的其它领域也遵循这一道路,建立一个开源生态系统应该也能获益良多,但是很可惜现在很多制造商都只是在建立自己的封闭平台。

  5.数据为王

  2016年美国总统选举结果让人们大跌眼镜,川普的当选让人们开始质疑数据预测的正确性。虽然我们可能会根据不完全的数据作出错误预测,但是并不意味着我们用数据预测未来的思路是错误的,真正的问题其实是出在数据本身。随着数据量级的不断增加,数据的真实性就变得难以区分,数据来源不确定,数据污染严重,再加上数据素养的不完备,出现有偏差的数据预测也是情理之中。

  未来,数据收集,整理,策划和解析将成为企业最重要的工作之一。决策者需要依靠数据决策,而程序员要以更易于理解的方式交付数据,为了保证决策的正确性,上下文和直觉也是必不可少的。这些种种也意味着程序员未来需要做更多的工作,因为我们需要构建更大,更快,更多的数据密集型软件。

  6.机器学习将成为新的标准功能

  我们在大学里应该都学习过“数据结构”这门课程吧,它不依赖“数据库”层。真正的程序员就应该无需Oracle,MySQL或MongoDB的帮助,存储、排序 ,并且连接数据表的所有数据。

  机器学习算法距离大飞跃还有一段时间,现在执行复杂分析仍需要程序员和数据科学家编写大量的代码,但是相信不久的将来,商业智能工具就会成为成为软件堆栈中的常规功能,越来越多的业务会依靠机器学习算法找到最好的解决方案。

  7.随着PC“退役”,UI设计将变得更复杂

  随着智能手机、游戏主机和平板电脑的兴起,现在还在坚持使用PC机的人大概只有办公室工作人员和需要交作业的学生了吧。

  所以这对程序员又提出了新的挑战,之前,大多数的用户都是用键盘和鼠标来做交互,但是现在,大家都是在屏幕上通过触摸来做交互。因为触摸事件和点击事件稍有不同,用户设备的屏幕尺寸和精度都会有所差异,所以UI设计将会变得更为复杂。

  8.开放代码模式或被开源所替代

  早之前,程序员是将代码复制到磁盘上,然后将这些磁盘压入ziplock bag中,没有中间人、没有把关者,世界上的任何人都可以通过购买来获得功能,但是它的代码是完全封闭的,所以我们只能得知操作的正误,无从得知其中的原因。

  随着游戏主机、智能手机和平板电脑的出现,我们渐渐接触到了应用商店,应用商店相比于之前的方式更加开放,但是它只会对错误操作抛出异常。

  以上这两种方式,程序员失去了编译、运行和共享代码的能力,想要获得源代码只能依靠厂商开放代码。随着开源代码的出现和逐步普及,程序员往往可以参与到一个软件开发的全过程,无论是正常操作还是异常操作都可以清晰知晓原因。

  9.自动化交通将成为现实

  最近,无人驾驶汽车的话题一直火热不退,多个科技巨头都在这一领域投入良多,也取得了一些成果。2017年,自动化交通的概念会进一步深入,相信不久的未来就会成为现实。

  10.法律将出台新的限制政策

  关于人权法案的争论一直不休,即使到了200年后的今天,我们仍在争论细节。技术的变革在为法律开辟新途径的同时,也带来了更多的细节讨论。如几年前最高法院规定车辆跟踪需要手令,当时只有警察才在车里装了跟踪器,但是现在很多地图软件都可以通过缓存数据追踪到我们的位置。

  未来,对于技术发展带来的新威胁,政府可能会出台新的政策来限制。软件开发人员在设计阶段就要把隐私和法律问题考虑在内。

  11.容器将会统治一切

  容器技术正在快速改变着公司和用户创建,发布,运行分布式应用的方式,它拥有很多优势:资源独立、隔离、环境的一致性、轻量化、Build Once,Run Everywhere。容器的使用极其简单方便,所以获得了很多企业的喜爱,现在我们可以在企业的各个层面越来越多的看到容器。

0
相关文章