Peter Wayner是InfoWorld的一名特约编辑,也是一个多产的作家。除了InfoWorld之外,他还经常为纽约时报和连线杂志撰写文章。近日,Peter撰写了一篇文章,谈到了未来15个热门的编程趋势以及15个逐步走向衰落的技术方向,该文发表之后在技术社区中引起了较大的反响,也希望文中的观点能给各位读者带来一些启示。
程序员们普遍对时尚界嗤之以鼻,因为这个圈子中的趋势就像风一样变幻不定。裙子忽长忽短、颜色变来变去、领结时大时小。不过在技术界,精确、科学与 数学却统治着一切。然而,这并不是说编程没有趋势可言。差别在于编程的趋势是由更高的效率、更好的可定制性以及更棒的易用性来驱动的。新的技术会让旧有的 技术黯然失色。下面我们就来介绍一下未来15个热门的编程趋势以及15个逐步走向衰落的编程方向。并非人人都会同意文中的观点,不过编程令人着迷之处恰恰 就是快速的变化、激烈的争论以及即时的反馈。
热门:预处理程序
冷门:全语言栈
几年前,如果有人创建了新的编程语言,那么他不得不自己编写一些程序将语言的代码转换为二进制位。后来,有人发现可以利用现有的一些工具和技术做到这一点。现在,有想法的人只需编写一个预处理程序即可,它会将新语言的代码转换为已有的拥有大量库和APIs的语言。
喜爱动态类型的家伙创建了Groovy,这是一个简化版本的Java。那些想要修复JavaScript的人们创造了CoffeeScript。还有很多语言,如Scala和Clojure等,他们运行在JVM之上,已经有了这么好的JVM了,为何还要重新发明轮子呢?
热门:JavaScript MV*框架
冷门:纯粹的JavaScript文件
很久之前,人们学习JavaScript的目的就是为了弹出一个警告框或是检查表单中的email地址是否包含了@符号。现在,HTML AJAX应用已经变得异常复杂了,没有多少人会从头编写代码。更简单的方式是采用一个优雅的框架,编写一些胶水代码来实现业务逻辑。目前有大量的 JavaScript框架,如Kendo、Sencha、jQuery Mobile、AngularJS、Ember、Backbone及Meteor JS等等,这些框架都可以帮助你很好地处理Web应用与页面的事件与内容。
热门:CSS框架
冷门:纯粹的CSS
曾几何时,为了向网页中添加一点活力,你需要打开CSS文件并加入一些诸如font-style:italic之类的命令,然后再保存文件。现在的 网页已经变得非常复杂了,几乎不可能通过这样几条简单的命令就能达成所愿。改变一处的颜色也许会导致其他地方的颜色显示不正常,老话说的好:万物皆有联 系。这正是SASS及Compass等CSS框架的用武之地,他们提供了一些编程元素,比如说真正的变量、嵌套的块等编程结构,这些东西在编程领域不是什 么新玩意,不过对于设计来说却是一个伟大的进步。
热门:SVG与Canvas
冷门:Flash
过去,Flash令人着迷,艺术家们也都偏爱着Flash。其渲染的效果如此漂亮,很多聪明的艺术家都使用了大量的Flash创作了不少精致的效 果。现在,JavaScript也可以做到过去只有Flash才能做到的那些效果,浏览器制造商与开发者们都为Flash的退出而欢呼雀跃。他们看到 SVG(Scalable Vector Graphics)等新格式与DOM层更好的集成。SVG与HTML由大量的标签构成,这对于Web开发者来说是很容易使用的。此外,Canvas对象也 提供了大量的API进行绘制。这让我们相信,已经没有多少继续坚守Flash的理由了。
热门:大数据(不使用Hadoop进行分析)
冷门:大数据(使用Hadoop)
每个人都想成为风云人物,如果不行,那他就会换个地方让自己脱颖而出。因此,“大数据”这个词儿的流行也就变得不那么让人惊奇了。有意思的是,很多 问题并没有那么大,也没必要使用什么大数据解决方案。当然了,像Google或是Yahoo这样的公司会追踪人们的Web浏览;他们拥有的数据量是非常庞 大的。不过对于大多数公司来说,他们所拥有的数据量可能一个普通的PC就装得下。肯定有公司需要使用不少机器,并行运行Hadoop,然后希望快点得到计 算结果,不过很多公司其实并不需要这么做,他们只需要单台机器就行,根本没必要搞什么Hadoop。
热门:游戏框架
冷门:原生游戏开发
曾几何时,游戏开发意味着招很多开发者,从头开始使用C编写代码。当然了,这么做的成本也是相当高的,不过看起来好像不错。现在,没有人能够承担得 起编写这么多代码的代价。大多数游戏开发者都开始使用Unity、Corona或是LibGDX等库来构建系统了。这样,他们就无需再处理这些细节信息 了,可以将精力放在游戏情节、故事、角色以及艺术上了。
热门:单页面Web应用
冷门:网站
还记得通过URL访问只有静态文本和图片的网页时代么?那时,将所有信息放到网页上就可以做一个“网站”了。新的Web应用是包含着内容的数据库的 前端。当Web应用需要信息时,它会从数据库中取这些信息,然后将其显示出来,没必要再像之前那样使用了。数据层与展示层和格式层是完全分开的。移动计算 的出现是一个巨大的促进因素:单一的、响应式设计的网页看起来像个应用,同时还避免了App Store频繁提交审查的烦恼。
热门:移动Web应用
冷门:原生移动应用
假如你有一个关于移动方面的好点子。你可以为iOS、Android、Windows 8,也许还有BlackBerry OS各编写一个应用。每个应用都需要单独一个团队,使用不同的编程语言完成。开发完成后,你还需要将应用提交到应用商店进行审查,最后才能被用户下载使 用。此外,你还可以构建一个HTML应用,将其放到网站上,应用可以运行在所有的平台之上。如果需要做些修改,那么你无需回到应用商店,祈求能够快些通过 审查。现在的HTML运行速度已经越来越快了,它完全可以与原生应用展开竞争,即便是那些复杂、交互非常多的应用也没什么问题。
热门:Android
冷门:iOS
几年前,Apple的App Store还是一家独大,不过时间改变了一切。虽然iPhone与iPad还是拥有非常多的粉丝,他们喜欢其精致、丰富的UI,但Android的销量却在节节攀高。有报告显示70%以上的智能手机销量来自于Android。
原因很简单,那就是价格。虽然iOS设备保持了一个比较高的价格,不过Android世界中有太多的竞争者,他们所生产的平板价格甚至只有iPad 价格的1/5,省钱总是硬道理嘛。除了价格之外,开源也是一个不容小觑的因素。任何人都可以在市场中参与竞争,实际情况也是这样的。有大的Android 平板,也有小的手机;有Android相机,甚至还有Android冰箱。
热门:GPU
冷门:CPU
在软件还很简单,指令可以在一行中清楚显示的时候,CPU是计算机之王,因为它做了所有繁重的工作。现在,视频游戏中有大量并行运行的图形计算,一 块显卡的价格动辄就5、600美金,一些执着的玩家甚至会使用多块显卡。这甚至比很多一般的PC还要贵,除了游戏玩家外,计算机科学家们也将很多并行应用 转到GPU上运行,速度比之前快了百倍以上。
热门:GitHub
冷门:简历
没错,你可以通过看书等方式来学习,不过,阅读实际的代码却更加直观和有意义。程序员是否写了足够好的注释?是否花时间将大的类拆分成若干各司其责的小类?架构是否还有扩展的空间?这些问题都可以通过查看代码得到答案。
这也是为何现在在找工作时有过开源项目开发经历会变得更加吃香的原因所在。从私有项目中分享代码是比较困难的,不过开源项目可以走进每个人的生活。
热门:租赁
冷门:购买
以前,公司会建立自己的数据中心、雇佣专门的人来维护他们所购买的计算机。时至今日,很多公司开始租赁计算机、数据中心、雇员,甚至按照小时数来租赁软件。这是个非常好的做法,也会为公司节省很多成本;同时,还会保证计算能力。
热门:Web界面
冷门:IDEs
很久之前,人们使用命令行编译器。后来,有人将其集成到了编辑器和其他工具当中,创造出了IDE。现在,IDE有被基于浏览器的工具所替代的趋势。 在基于浏览器的工具中,你可以编写代码、创建系统。如果不喜欢WordPress的工作方式,那么你可以通过它自带的编辑器修改代码并立即生效。你可以通 过微软的Azure编写JavaScript胶水代码。这些系统基本上都没有提供很好的调试环境,而且在编辑生产代码时也存在着一定的风险,不过这个想法 却是非常棒的。
热门:Node.js
冷门:JavaEE、Ruby on Rails及PHP
服务器的世界总是依赖于各种线程模型,不过这种方式会导致程序员所编写的各种低效、不负责任的代码影响到操作系统的效率。无论程序员编写的代码有多么差劲,操作系统总是会在各个线程间切换,从而平衡整体性能。
Node.js带来了JavaScript回调这种编程模型,代码运行速度也绝对够快。这种一开始只是用于弹出警告框的玩具语言的变化超出了很多人 的想象。突然之间,创建新线程的开销变得很显著了,这时Node.js来了。如果程序员代码写的不好就会出现问题,不过让程序员清楚了解资源限制有助于他 们编写出更快的代码。
Node.js的世界也因让浏览器与服务器之间保持和谐共处而获益匪浅。同样的代码既可以运行在浏览器端,也可以运行在服务器端,开发者可以在两端快速移动,也可以更好地完成功能。因此,Node.js已经成为互联网界最炙手可热的技术之一。
热门:Hackerspaces
冷门:大学
一个是4年250,000美金,一个是每月50美金,如果提前支付还有折扣。Hackerspaces正在不断驱动着创新,同时又没有大学那么多的 开销。他们在创造着社交网络,影响着创业公司,没有官僚、没有政治。其课程不需要持续整个学期,这种特性非常适合于快速变化的技术世界。
转自:http://www.infoq.com/cn/news/2014/02/15-hot-programming-trends-2