在编程世界,流行的是科学,严谨和精确的准则。这不是说编程是一种缺乏趋势的行业。不同的是,由于编程重视的是高效,用户化和使用方便,因此编程技术需要不断更新换代。那么,在即将到来的2017年和未来的几年内,会有哪些新技术出现,成为新的潮流,又有哪些技术的热潮会渐渐消退呢?下面所列出的10种技术,摘自infoworld.com的一位编辑Peter Wayner撰写的文章21 hot programming trends -- and 21 going cold。本文旨在与大家一起讨论这个话题。
1. JavaScript MV 框架成为热门,JavaScript文件遇冷
很久以前,我们写JavaScript代码来弹出一个消息窗口或检查表格中含有@符号的电子邮件地址。不过现在有了HTML Ajax应用程序,它们非常精细,因此很少人从零开始写代码了。现在比较简单的方法是:使用一个有详细说明的框架和写一点胶水代码来执行商业逻辑。现在有很多框架,如Kendo, Sencha,jQuery Mobile,AngularJS,Ember, Backbone, Meteor JS等等,所有这些框架都是为了处理Web应用程序以及页面事件和内容而准备的。另外,还有一些为智能手机和平板电脑提供的跨平台框架,其中包括nativescript,PhoneGap和Sencha Touch等,它们可以用来创建源自HTML5技术的app。
在livecoding.tv上,一位开发者使用Phonegap开发一款HTML5 App
2. SVG + JavaScript on Canvas受欢迎,Flash风光不再
Flash风光了很多年,很多有才华的编程大师建立了一个Flash代码堆垛来处理复杂的过渡和动画。不过,现在JavaScript层具有很多相同的能力。浏览器的制造商和开发者都在为Flash的结束而欢呼。JavaScript可以与DOM层更好地整合在一起,DOM层来自一些新的格式,例如SVG(可缩放矢量图形)。SVG和HTML包含了一大堆标签,Web开发者使用起来往往更方便,现在还有了大的APIs,让你可以在画布对象上详细地绘画图形,通常还会提供视频卡来帮助你使用。当把它们结合起来使用,你还有什么理由要用Flash呢?
3. 游戏框架比本土游戏开发更受欢迎
以前,游戏开发意味着要请大量开发人员,他们从零开始用C语言写所有代码。这需要投入巨资。现在,大多数游戏开发者放下了他们多年前的骄傲资本,现在他们使用库,如Unity, Corona, 或LibGDX来建立系统。他们不会再写像库说明那么多的C代码了。我们的游戏不再是用手工写代码完成,而是由相同的引擎来制作而成的。这也许让人觉得惭愧,不过,大多数开发者都对此感到很欣慰,因为他们不需要被迫去处理细节,这样他们可以专注于游戏玩法,情节,人物和艺术。
Livecoding.tv 上的直播者使用 Unity 及其它库来开发各种游戏
4. 单一网页的Web apps盛行,网站遇冷
制作传统网站的时候,网站设计人员要花几个小时来制作网站地图,以令网站导航变得简单。新的Web应用程序是从前端到有大量内容的大数据库。当Web应用程序需要信息时,它就从数据库中提取信息并将信息注入到本地的模具中。现在没有必要使用Web附加设备所需要的所有东西来标记数据,以便创建一个网页了。数据层是完全独立于演示和格式层。移动计算的兴起是另一个因素:单页的,响应式设计的网页,它工作起来就像一个app——所有这些都更好,以避免混乱的App商店。
5. 移动Web apps比本土移动Web apps更具竞争力
APP开发者可以写不同版本的app来应用于不同的系统:Android,iOS,Windows 8,甚至BlackBerry OS或是其它任何一个系统。每一个版本的app需要由一个独立的,懂得不同编程语言的团队来开发。然而,每一个平台上的app商店在把app交到用户手中之前,可能会提出种种合理不合情的要求。这是开发者不希望看到的。开发者可以创建一个HTML app,把它放在一个网站上,在所有平台上运行。如果出现了什么变化,你不需要返回app商店去请求获得一个迅速的错误检查和修复。现在,HTML层越来越快,而且它在速度较快的芯片上运行,这种方法可以使移动Web app更好地与本土app竞争,甚至是与更复杂的交互式app竞争。
6. Android大热, iOS遇冷
几年前,苹果专卖店门前排起的“人龙”还记得吧?时代在改变,虽然iPhone和iPad仍然拥有忠实粉丝,他们喜欢丰富、复杂的用户界面,但原始销售数据依然对Android有利。甚至有报道说,超过80%的手机是Android的。原因可能很简单,因为成本。当iOS的设备成本仍然很高的时候,Android正在以大量竞争汹涌而来,那就是用五分之一的价格来生产平板电脑。省钱永远是一种诱惑。不过,另一个因素可能是开源的效果。任何人都可以在市场上竞争。
7. Web界面兴起,IDEs热潮消退
很久以前,人们用的是命令行编译器,然后有人把编辑器和其它工具整合在一起,创造了IDE。现在又轮到IDE的热潮消退了,因为有了基于浏览器的工具出现。它们通常是一个工作系统,可以让你编辑代码。如果你不喜欢WordPress的功能,它配备了一个内置的编辑器,让你可以即时更改代码。微软的Azure允许你在它的入口写JavaScript胶水代码。虽然这些系统不能提供最好的调试环境,并且在编辑生产代码时可能会有一些危险,但这个创意是不错的。
你可以尝试Cloud9,Aptana,和Mozilla WebIDE,但要坚持探索。Web界面正在变得越来越强大。有可能会出现这样的情况,在微软的Azure网站上建立一个完整的大数据分析项目。
8. 大热的是Node.js, 遇冷的是JavaEE, Ruby on Rails
服务器的世界一直在线程模型上长盛不衰,它让程序员在使用操作系统时可以有种种行为,如固执,低效或是放任。无论是由程序员编码而造成的愚蠢的循环或是浪费的计算,操作系统都可以在线程之间切换来平衡性能。
Node连同JavaScript一起回调编程模型,它的代码的确运行得很快,比任何人预期的还快。它曾经可能是一种无实用价值的语言,只是被用于警告消息框。但意外地,由于创建新线程的开销变得明显,Node.js腾飞了。当程序员表现得不好时,问题就会出现了,但责任在很大程度上是对他们有好处的。显然,限制资源往往可以令程序员更快地写代码。Node.js还有利于浏览器和服务器之间的和谐。运行在浏览器和服务器上的相同代码可以让开发人员更方便地移动和复制功能。因此,Node.js层已经成为互联网上最热门的栈。
9. PHP7.0速度提升,旧版PHP淡出
在过去,PHP是一种简单的方法来淘汰一些动态网页。如果你需要一点点的变化,你可以在HTML标签之间嵌入简单的代码。Web开发者有了它就基本足够了,但它的缓慢足以令程序员中的中坚分子看不起它。一些喜爱PHP的程序员在Wordpress和Facebook等地方都在争相利用即时编译器,这种曾创造出Java如此高性能解决方案的技术来执行比以前更快的PHP代码。现在的工具如HipHop,虚拟机和PHP7.0提供的速度可能是旧版本的2倍。这会给Node.js和java带来挑战。
10. 在线即时教育成趋势,四年传统教育不再是主流
以计算机为媒介的课程已经不是新玩意了,每个人正在享受着观看视频讲座的好处。但这不仅是教育的一种本质,网上课程技术的背后是它颠覆了教育产业技术的复杂性;它还可以让你灵活地支配自己的学习时间和地点。这正在改变我们的生活动态,因为我们不再需要投资四年的时间以及负担高额的学费去学习一系列课程了。当你需要获得新信息的时候,你的需要可以即时得到满足