15个热门的编程趋势及15个逐步走向衰落的编程方向(上)
本文来源于我在InfoQ中文站原创的文章,原文地址是: http://www.infoq.com/cn/news/2014/02/15-hot-programming-trends
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频繁提交审查的烦恼。