编程趋势:十五大热门与十五大冷门

译文
开发 开发工具
热门还是冷门?从Web到主板再到培训工作,一同探讨哪些项目正当其时、哪些则逐渐退出历史舞台。

热门还是冷门?从Web到主板再到培训工作,一同探讨哪些项目正当其时、哪些则逐渐退出历史舞台。

[[108019]]

程序员总是喜欢对时尚界冷嘲热讽,认为那里的风潮总是一波接着一波、令人莫衷一是。裙子长了又短、短了再长,色彩的选择也是你方唱罢我登场,就连领带也是时宽时窄。相比之下,技术领域则稳定得多——严谨、科学、数学以及精度始终占据统治地位,成为从业者们一直遵循的永恒原则。

但这并不是说编程是一门缺乏趋势变化的专业技能。与时尚界不同的是,编程讲求的始终是对更高效率的追寻,更高定制程度与易用性成为技术人的努力目标。新型技术之所以能够占据优势、完全是因为能够在一方面或者多个方面超越前代方案——总而言之,优秀的机制才能生存下来、仅仅靠奇思妙想还远不足以在技术领域立足。

有鉴于此,我们将在今天的文章中与大家共同探讨技术业界的热门与冷门项目,相信各位朋友作为程序员对此也已经有所感受。当然,相信并不是每位读者都能认同热门及冷门清单中的项目,也必然有一些大家认为值得一提的内容没能上榜。但这也正是令编程工作令人着迷的另一大因素:我们面对的永远是一个快速变化、不断引发激烈争论且旧项目仍有机会东山再起的世界。

热门:预处理器

冷门:全语言堆栈

就在不久之前,创建新型编程语言的人们还不得不使尽浑身解数将代码转化为能够令芯片理解的信息。这时,有人发现自己可以把原先取得的工作成果添加进来。如今人们有了更加睿智的处理方式,只需编写一套预处理器,即可将新型代码转译为具备丰富API及库的旧有代码。

偏爱动态类型的技术人员创建出了Groovy,这是一套Java的简化版本、不再过分坚持标点符号的使用方式。那些希望改进JavaScript的技术人员则创造出了CoffeeScript,这套预处理器允许使用者在无需考虑标点符号运用方式的前提下进行编码。目前已经有以Scala及Clojure为代表的数十种语言运行在JVM之上,但JVM却继续保持着自身的独特地位。既然转译完全可行,我们为什么要把自己过去的工作推倒重来?

热门:JavaScript MV*框架

冷门:JavaScript文件

很久很久以前,每个人都学会了如何利用JavaScript编写警告弹窗或者检查电子邮件地址当中是否正确包含@符号。现在HTML AJAX应用程序已经变得如此复杂,几乎没有多少开发人员会从零开发进行研究。最简单的办法是选择一套精心制作的框架,并利用一部分衔接代码实现自己需要的独特业务逻辑。目前这样的框架非常丰富,其中包括Kendo、Sencha、jQuery Mobile、AngularJS、Ember、Backbone、Meteor JS等等——它们都能够很好地帮助我们的Web应用程序及网页完成事件与内容处理工作。

热门:CSS框架

冷门:通用CSS样式表

曾几何时,要向网页当中引入一点新鲜内容意味着我们需要打开CSS文件,并向其中添加类似font-style:italic这样的新命令。接下来,大家要把忙活了一上午的工作成果保存在文件当中,然后启动整个项目。时至今日,Web页面已经变得非常精致,我们几乎不可能仅仅通过向某个文件中添加这类简单命令来实现如此出色的效果。甚至仅仅调整一种颜色,所有内容都会受到影响。这正像是专家们对于阴谋论及生态学的评述:环环相扣,所有组成部分之间都存在着关联。

在这方面,CSS框架与SASS颇具相似之处,而且其表亲Compass也已经拥有坚实的群众基础。它们通过提供编程结构——例如实际变量、嵌套块以及混合插件——吸引经验老道的开发人员为其提供稳定的编码成果。这种特性听起来在编程领域似乎并不新鲜,但在设计层面却带来实实在在的巨大飞跃。

热门:SVG与JavaScript携手闯荡Canvas

冷门:Flash

多年以来,Flash一直成为令开发人员们抓狂的罪魁祸首,但艺术工作者却对它所呈现出的结果非常满意。抗锯齿渲染效果相当出色,而且很多才华横溢的艺术家们也已经利用Flash代码创建出深层堆栈,从而实现复杂的转换与动画成品。

现在JavaScript层已经具备实现大部分同类效果的能力,浏览器厂商与开发人员也在额手相庆、同贺Flash时代的终结。他们发现由SVG(即可伸缩矢量图形)等新型格式所带来的DOM层在整合方面更具优势。SVG与HTML共同构成一套规模庞大的标签集,而这通常更易于Web开发人员使用。此外,另有大量API能够对Canvas对象进行精雕细琢,且通常都有利用到显卡提供的强大性能支持。综合这几大因素,我们似乎已经没什么理由继续坚持Flash了。

热门:大数据(不涉及Hadoop的分析技术)

冷门:大数据(Hadoop)

每个人都希望成为同侪中的风云人物,如果实在达不到这一高度,那么宁为鸡口、不为牛后也是多数人民群众的首要选择。因此,我们一如意料地看到“大数据”一词在各企业高管层风靡之后,大部分***都倾向于寻求***、***劲的大数据系统——这种感觉似乎跟他们购买游艇或者办公大楼时非常相近。

有趣的是,其实大部分企业事务的规模都没有大到必须使用高级大数据解决方案。当然,像谷歌或者雅虎这类努力追踪所有用户的网络浏览记录、需要处理PB甚至更高量级数据集的企业确实有必要做大做强。不过大多数公司都能够将数据集简单保存在一台常见PC机的内存当中。我目前使用的这台电脑拥有16GB内存——足以容纳十亿个容量正常的事件。而且对大多数算法而言,数据也没必要一直盘踞在内存当中,使用SSD已经完全足够了。

我并不否认,某些企业可能需要一套由数十台并行运作的设备构成Hadoop云体系,从而实现快速响应。然而从普遍意义上讲,大家只需要一台设备就足以搞定这类工作,还能够由此省去各设备之间协调与沟通的麻烦。

#p#

热门:游戏框架

冷门:本地游戏开发

遥想当年,游戏开发意味着雇用大量开发人员,让他们从零开发用C语言编写所有组件。当然,尽管需要付出无数美刀作为开发成本,但其最终效果也相当令人满意。不过如今已经没人能轻松负担得起如此奢侈的定制化代码了。大部分游戏开发人员已经收起了过去那种自豪感以及职业“操守”,开始使用Unity、Corona或者LibGDX等代码库进行系统创建。相较于C代码,他们编写的大部分内容都只是代码库指令。这样说来,我们是否应该为自己的游戏不再是“纯手工打造”、而是大量重复使用同一套引擎而感到羞愧?其实没必要这样考虑问题。请大家放松心态,抛开繁重的开发工作之后、各位才能将注意力集中在游戏性、叙事方式、角色塑造以及艺术设计等方面。

热门:单页面Web应用

冷门:网站

不知道大家是否还记得当初那段URL指向Web页面、Web页面中又充斥着大量静态文本与图片的岁月。多么简洁、多么古朴,那时候我们会把这种由包含着信息的多个页面所构成的整体称为网站。新型Web应用则属于内容丰富的大型数据库的交互前端。当Web应用程序需要信息时,它会从数据库当中直接提取并将其转化为本地形式。我们不必再对数据加以修饰并以Web页面的形式呈现出来。如今的数据层已经完全独立于表现与格式层之外。当然,移动计算的兴起则是Web应用升温的另一大重要理由:单一且经过响应式设计的Web页面在使用感受上与传统应用程序非常相似——而且有效避免了用户不断访问应用程序商店的麻烦。

热门:移动Web应用

冷门:原生移动应用

举例来说,如果大家已经酝酿好了出色的移动内容设计方案,那么摆在面前的路有两条:其一,大家可以针对iOS、Android、Windows 8甚至是BlackBerry OS乃至其它系统的各个版本进行原生应用开发。毫无疑问,这意味着我们需要组织多个开发团队,而且各个团队之间使用的编程语言也有所不同。另外,我们还需要经过各个平台上应用程序商店的审核,***才能把应用成果交付到用户手中。其二,大家可以直接创建一款HTML应用并将其直接放在网站上,这样所有平台就都可以直接使用了。如果需要对应用作出修改,我们也无需再跟应用商店打交道、祈祷他们能快点通过bug修复审核。如今HTML层的处理速度明显加快,移动设备的处理芯片也愈发强劲,因此HTML应用甚至足以与复杂的交互式应用程序相抗衡。

热门:Android

冷门:iOS

就在几年之前,苹果直营店门前还排着长长的消费者长龙。但时至今日,情况已经有所转变。尽管iPhone与iPad仍然受到爱好者们的坚定拥护,苹果设备所提供的丰富精巧的用户界面居于领先位置,但Android设备的原始销量却一路扶摇直上。某些报告甚至指出,全球智能手机总销量当中有超过七成都属于Android。

理由也许很简单——这就是价格因素。在iOS设备继续保持高价的同时,Android世界已经涌现出一波又一波廉价狂潮——不少***竞争力的平板设备在价格上仅为iPad的五分之一。省钱永远是一种诱惑,令人无法抗拒。

除此之外,开源也是Android逐步崛起的重要理由。任何一家厂商都有机会在市场上一试身手——而这也确实吸引到了众多厂商的参与。如今我们看到的Android平板设备有大有小,甚至出现了采用Android操作系统的照相机乃至冰箱。谁也不需要得到谷歌的批准之后再行创新。如果他们有了好主意,完全可以直接放手实施。

热门:GPU

冷门:CPU

当软件结构简单而指令又被有序整理起来时,CPU无疑堪称计算机上足以承担一切重任的至高王者。然而当下视频游戏当中充斥着大量能够并行运行的图形程序,而这一切都是显卡施展身手的***舞台。我们花上五百或者六百美元就能轻松买到一块相当强劲的显卡,不少游戏发烧友甚至会同时使用多块显卡——这使得他们的台式机在价格上比普通台式机高出一倍有余。当然,玩家并不是GPU崛起的惟一推动力。计算机科学家们现在也能够将大量并行应用程序交给GPU打理,并获得高达数百倍的处理速度提升。

热门:GitHub

冷门:简历

没错,大家可以通过阅读积累并学习宝贵的知识与技能,包括国际象棋俱乐部提供的高阶战术指南。不过参考他人的代码成果更能丰富我们的储备,也能给自己的工作带来不少启发。他们编写的注释是否准确有效?他们有没有浪费大量时间把工作内容加以拆分、实际效果却不尽人意?某种架构是否还有扩展的空间?这些问题都能够在查阅某些代码的过程中找到答案。

有鉴于此,如今参与开源项目已经成为我们寻找工作时愈发重要的一项参考指标。从专有项目中获取代码共享非常困难,但开源代码则随处可见,因此充分利用才是明智之举。

热门:租赁

冷门:购买

当Amazon在黑色星期五以令人心动的折扣推销计算机及其它电子产品时,企业用户往往忘记了同样由该公司提供的更具性价比的方案——云服务。也许目前还不成熟,但请再给他们一点时间。就在不久之前,企业还需要建立自己的数据中心并聘请专门的工作人员来打理这些全价买进的计算设备。时至今日,很多企业已经习惯于租用计算机、数据中心、工作人员甚至按小时计费使用业务软件。所有权会带来麻烦,没人喜欢麻烦。这是个好主意,除非服务供应商的网站感染了病毒或者我们意识到自己需要为网站的每一次点击付费。现在只要Amazon能够找到一种更为便利的云服务交付办法,那么使用云方案的趋势还将进一步升温。

#p#

热门:Web接口

冷门:IDE

很久以前,人们使用命令行编译器。这时有些技术人员想到利用一套编辑器外加其它工具来构建起IDE。现在IDE也开始黯然失色,取而代之的则是归属于工作系统、基于浏览器的开发工具——允许我们在其中进行代码编辑。如果大家不喜欢WordPress的工作方式,其中内置的编辑器允许我们通过修改调整其各个方面的实际表现。微软的Azure允许我们直接在其门户页面当中编写JavaScript胶水代码。这些系统所提供的调试环境都不太理想,而且编辑生产代码也可能带来潜在风险,不过我们仍然要为这种思维方式拍手叫好。

热门:Node.js

冷门:JavaEE、Ruby on Rails、PHP

服务器领域一直推崇那种容错性较强的线程模型,从而使得操作系统能够容忍程序员们带来的任何自以为是、效率低下或者不符合规则的处理活动。无论是愚蠢的循环还是对资源的赤裸裸浪费,程序员们的编码失误总能被操作系统以切换线程的方式加以平衡、从而提供相对稳定的性能表现。

然而Node.js携JavaScript编程回调模式而来,从而使得代码运行变得极为迅捷——其实际速度甚至超出任何一位开发人员的期望,毕竟这种语言最初只是为了编写警示对话框。几乎在一夜之间,创建新线程的成本变得愈发明显,而Node.js也因此而一飞冲天。一旦程序员们不守规矩,问题将立即出现,但这种严酷的状况在很大程度上反而能够促进他们的自我要求与工作表现。当资源限制比较显著时,程序员们通常能够更快地完成代码开发。

Node.js也充分利用了浏览器与服务器之间的和谐关系。同样的代码内容使其开发人员能够轻松实现特性的迁移与功能的复制。其结果是,目前Node.js已经成为互联网上最为热门的堆栈方案。

热门:黑客空间

冷门:高等院校

一边四年学费要二十五万美元,另一边每个月只需五十块美刀——提前支付还能享受更多优惠。一边付出的高昂学费只是为了支付足球场使用费、华丽的宿舍、给领导视察专用的礼堂以及印刷课本。而另一边我们的支出却被用于购置3D打印机、示波器以及电烙铁等真正实用的技术装备。

黑客空间在努力培养创新精神的同时,也帮我们省下了大学园区中那高得离谱的日常开销。他们所创建起的社交网络已经成为新兴企业及知识财富的孕育温床,而且绝不存在那些可怕的官僚作风与愚蠢的个人要求。课程并不需要持续一整个学期,沉重也不需要在真正开始学习之前先到学生会里搞什么竞选。面对当下这个迅速发展的技术世界,专攻型学习流程已经开始证明自身的宝贵价值。
 

原文链接:http://www.infoworld.com/d/application-development/15-hot-programming-trends-and-15-going-cold-233343

责任编辑:陈四芳 来源: 51CTO
相关推荐

2009-09-07 15:04:56

VMworld大会

2010-03-24 18:04:23

Nginx proxy

2015-05-28 10:01:10

技术人员思考问题

2016-10-21 14:27:31

大数据技术大数据采集

2019-07-15 15:48:02

创业技术人工智能

2019-12-24 12:45:06

安全运营中心SOC网络安全

2019-11-27 08:25:01

物联网5G技术

2024-02-27 11:14:26

CIOIT领导层管理技术团队

2022-12-29 11:00:33

科技5G物联网

2017-02-13 10:46:01

2018-07-03 13:33:42

2023-07-04 16:30:33

2016-04-29 10:01:05

NFV网络功能虚拟化

2022-01-13 19:07:09

人工智能AI深度学习

2020-11-11 14:40:28

云计算公共云人工智能

2024-01-03 07:52:10

趋势云测试驱动

2021-05-20 12:48:49

IT基础设施IT

2015-10-29 09:46:29

PHP开发工具

2018-12-27 21:25:40

物联网IoT智能家居

2021-11-10 10:05:57

设施管理传感器数据
点赞
收藏

51CTO技术栈公众号