热门还是冷门?无论 Web 开发、主板开发还是培训教育,都需要了解应用开发过程中哪些技术正在兴起,哪些技术要过时了。
程序员们喜欢嘲笑时尚界的潮流说变就变,像风一样捉摸不定。裙子时而短时而长,流行色频繁更替,领带越来越窄,越来越薄。但是在技术的世界中,严谨、科学、数学和精准原则却一直流行。
这并不是说编程没有趋势。区别在于编程的潮流由更高的效率、更多的自定义和更便于使用来驱动。具备这些特点的新技术取代旧技术,这是一种精益求精的过程,而不是朝令夕改的奇思妙想。
下面是现代程序世界的热门技术和冷门技术列表。可能有人会不同的意见,也可能会有遗漏,而这正是编程的迷人之处:快速变化、激烈辩论、峰回路转。
热门:预处理器
变冷:全语言堆栈
不久之前,人们创造一门新的编程语言需要进行许多工作(从源代码到机器代码转换过程的所有工作)。 然后一些人指出他们可以推翻前面的做法。 现在程序员有了想法以后只需要编写一个预处理器,预处理器可以使用丰富的库和 API 将新代码转换成旧版本的代码。
Python 、JavaScript 这类的脚本语言曾经仅限于小项目,但现在许多重要的工作都开始使用这些语言。不喜欢 JavaScript 的程序员还开发了 CoffeeScript (一种可以再次编码的预处理器),以避免使用繁琐的标点符号。它有几十种以不同方式预处理语法的方法。
那些喜欢动态类型的程序员创建了 Groovy,Groovy 是 Java 省略掉过多标点符号的简化版本。现在好像有几十种语言(如 Scala 或 Clojure)在 JVM 上运行,但只有一个 JVM 。我们可以在 .Net 虚拟机上运行多种语言,为什么还要重新发明轮子?
热门:Docker
变冷:Hypervisors(虚拟机)
这并不完全正确,hypervisors 也有它们的用武之地,而且许多 Docker容器运行在以 hypevisors 为基础的操作系统中。然而,Docker容器与虚拟机映像相比实在太小了,这使得它们更容易使用和部署。
当开发人员可以使用 Docker容器时,它们更愿意使用 Docker容器,这要归功于它可以在部署过程中轻松操作。 像 Joyent 这样的聪明公司正在开发可以占用更多资源的技术,以便容器可以在“裸机”上运行。
在数字商业时代需要足够敏捷来抓住新机会,同时还要有效地维护传统的内部部署系统。
热门:JavaScript MV* 框架
变冷:JavaScript文件
很久以前,每个人都学习如何使用 JavaScript 弹出警告窗口或如何检查表格中的电子邮件地址是否包含 @符号。 现在,HTML AJAX 应用程序已经如此成熟,以至于很少有人会再从头开始编写这些功能。 采用精心制作的框架,然后编写一些胶水代码来实现业务逻辑要简单得多。
现在有许多框架可以用来处理 app、网页等的事件和内容,这些框架包括 Kendo, Sencha, jQuery Mobile, AngularJS, Ember, Backbone, Meteor JS 等。
这些只是网络应用程序的框架。 还有一些框架旨在为智能手机/平板电脑提供跨平台开发技术。 NativeScript,PhoneGap 和 Ext JS 都是使用 HTML5 创建 app 的技术。
热门:CSS 框架
变冷:通用层叠样式表
曾几何时,向网页添加一点格式意味着打开 CSS文件然后写入类似 font-style:italic 这样的命令,然后保存文件,就可以在一上午的紧张忙碌之后去吃午饭了。现在网页如此复杂以至于很难使用如此简单的命令完成一个文件。调整一个颜色可能会导致一切都无法正常运行。这就像他们评价阴谋家和生态学家一样:一切都是互相联系的。
这就是 SASS 和 Compass 等 CSS框架的用武之地。 它们通过提供编程结构(如实变量,嵌套块和混合)来鼓励规范,可靠的编码。 这在编程层面中可能听起来并没有多新颖,但对于设计层来说这是一个巨大的飞跃。
热门:视频标签
变冷:静态标签
曾经有段时间, 视频是指 YouTube 或 Vimeo 上观看的视频。它是一种存在于专有页面上的单独内容。然而随着越来越多的网站使用音频来构建区块,其过程与使用 静态 GIFs 或者 JPGs 进行构建区块一样,这种情况正在发生改变。突然之间,屏幕变得生动起来。
设计师发现,现代视频标签只是另一个矩形,尽管矩形通常需要程序员使用更多的 JavaScript 代码来控制。 我们只是开始明白,在客厅沙发前面的盒子可以不再是我们获取视频的主要来源,而可以仅仅是一个装饰。
热门:类大数据(不使用 Hadoop 分析)
变冷:大数据(使用 Hadoop)
每个人都希望自己看起来像是圈子里的大人物,如果他们在圈子里有没影响力,那么他们会寻找一个适合他们脱颖而出的圈子。 所以,当“大数据”开始在高管之间开始流行时,这些高管要求最大,最强大的大数据系统,就像购买游艇或摩天大楼一样。
有趣的是,许多问题没有大到要用高级大数据解决方案来解决。当然,像谷歌或雅虎这种跟踪我们浏览的所有网页的公司是需要大数据解决方案的,他们的数据文件很大需要用 petabytes 或 yottabytes 来计量。但大多数公司的数据都可以轻松地用一个 PC机内存进行处理。我是用一台在 16GB 内存的 PC 机来写这篇文章的,这台 PC 足够处理十亿件几个字节的事件。在大多数算法中,数据不需要读入内存,因为直接从 SSD 获取就可以了。
可能存在需要 Hadoop云几十台机器并行运算来实现快速响应的需求,但是许多需求在单台机器上处理即可,这样还可以避免产生麻烦的协调或通信问题。
热门:Spark
变冷:Hadoop
可能并不是 Hadoop 不流行了,而是 Spark 太热门了,这使得 Hadoop 模型看起来有些老。Spark 借鉴了Hadoop 从大量数据中提取语义的做法的最佳思路,并通过一些改进使代码运行的更快。Spark 最大的优势在于它将数据保存在快速内存中而不是需要所有内容都写入分布式文件系统。
当然,许多人正在通过使用 Spark 的处理速度对存储在 Hadoop 分布式文件系统的数据进行处理,因此,Spark 和 Hadoop 更像是合作伙伴而不是竞争对手。
热门:人工智能/机器学习
变冷:大数据
没有人知道 “人工智能”的真正含义,它们对营销人员很有利,特别是在“大数据”广泛应用的今天。他们从人工智能中提取术语并且升级数字处理算法的复杂度来处理我们的 log 文件和点击流。通过从具有 50年历史的 AI研究中借鉴更复杂算法,我们比以往任何时候都更有可能从噪音中发现信号。从机器学习框架到认知计算的工具,再到 IBM 的沃森,总能解决你的问题。它们每个都提供自己机器的智能水平,我们可以使用它们进行更多的数据分析和取证。
热门:机器人
变冷:虚拟现实
就在几分钟之前,我们还都将梦想寄托在虚拟现实中,虚拟现实可以通过一些视频卡在我们视网膜上绘制图形。这种情况仍然可能发生,但与此同时,机器人的世界也将迅速发展。每个学校都有一个机器人团队,家庭的每个角落充斥着机器人,机器人吸尘器已经是旧新闻了,无人机正在自由翱翔。
这意味着程序要开始考虑如何写代码来控制新机器。目前,这意味着为 Raspberry Pi 这样的轻量级控制器写脚本,但是随着库文件发展的越来越复杂,必然会发生变化。比如,许多机器人专家喜欢研究 C语言实现的机器视觉平台OpenCV 中的代码。这意味着需要考虑新的规则,新的类库,新的协议,和许多其他新的主题。
热门:单页Web应用
变冷:网站
还记得 URLs 指向满是静态文本和图片的网页的时代吗?把所有信息都放在被称为网站的单独网页中是多么地简单和古雅。设计团队在网站地图上花费几个小时的时间来使网站更易于导航。
新的 web 应用通过数据库填充内容。当 web应用需要信息时,它从数据库获取信息并将其放入本地模板中。我们不需要使用构建 web页面的所有 web附加组件来标记数据。数据层与展示和格式化层完全分离。移动计算的兴起是另一个原因在于:单个响应式页面工作机制与app类似,可以减少从鱼龙混杂的应用商店中寻找想要的内容所浪费的时间。
热门:移动Web app
变冷:原生移动 App
假如你有一个移动内容的好主意,那么需要为 IOS、Android、Windows 8甚至黑莓OS 或者其他的系统开发不同的版本。每个版本都需要一个独立的团队使用不同的编程语言实现。然后每个平台应用商店都需要使用自己的版本,才能把 app 分发给用户。
或者,我们可以创建一个 HTML 应用,然后把它放到各个平台都可以运行的网站上。如果有变化,也不需要到应用商店去请求快速审核错误修复。 现在 HTML层速度越来越快,并且运行在速度越来越快的芯片上,以便于它可以在更复杂和互动性更高的应用程序上更好地与本地应用程序竞争。
热门:Android
变冷:iOS
是不是几年前苹果专卖店门前还要排蜿蜒的长队? 现在时代变了。 虽然 iPhone 和 iPad 还拥有大量热爱它们丰富而复杂的界面的铁杆粉丝,但从原始销售数量来看,Android更具优势 。 有报道甚至说 80% 以上的手机都是 Android系统。
原因可能就在于成本。 即使 iOS设备只需要花费很少的前,Android世界充斥的大量竞争也可以将产品的价格压缩到 iOS设备的五分之一。 省钱总是很有诱惑力的。
但另一方面,也可能与开源有关。每个人都可以在市场上竞争,他们也是这样做的。我们有大大小小的安卓平板,安卓相机甚至安卓冰箱。没有人需要在创新之前先请示“妈妈,我可以吗?”。如果他们有一个好点子,做就可以了。
不过,Apple 也在向安卓学习。iPhone 6 有了不同尺寸的屏幕,或许机会就在眼前。
热门:GPU
变冷:CPU
当软件非常简单,可以很好的安排一系列指令时,CPU 是计算机的王者,因为它承担了所有的工作。 现在,视频游戏充满了可以并行运行的大量图形程序,显卡可以运行这些图形。 我们很容易花费 500美元、600美元甚至更多来购买各种显卡,一些重度的游戏玩家可能拥有不止一两个显卡。 这些显卡的价格是许多基本台式机显卡价格的两倍。 游戏玩家并不是唯一吹嘘他们的 GPU 的人。 计算机科学家现在将许多并行应用程序转换到 GPU 上运行,这样速度可以提高数百倍。
热门:GitHub主页
变冷:个人简历
当然,我们可以通过阅读包括初中棋牌俱乐部副总裁的成就清单来了解候选人。 但阅读某人的实际代码则更加丰富和具有启发性。 他们注释写的清楚吗? 他们把很多时间浪费在把内容写到作用寥寥的类里吗?他的架构真的有扩展空间吗? 所有这些问题都可以从他们的代码的发现答案。
这就是为什么参与开源项目对找工作越来越重要。 从专有项目共享代码是很难的,但开源代码可以随处可见。
热门:租用
变冷:购买
当亚马逊在黑色星期五卖力推销电脑和其他电子产品时,却忘记了推销他们的云服务。在不久的将来,它很可能会这么做。以前,公司设立自己的数据中心并且聘请员工来维护购买的电脑。 现在,他们租赁电脑、数据中心、工作人员、甚至按小时租用软件。 任何人都不想处理购买带来的麻烦。这一切都是好主意,至少在网站发生病毒事件(你的点击将为所有物品支付费用)之前是这样的。尽管现在只有亚马逊发现了自动提供云的方法,趋势将会趋同。
热门:复杂云
变冷:简约云
云计算早期阶段,供应商强调一键获得正在运行的机器是多么地容易。那时,简约是王道。
现在选择正确的机器并找出合适的折扣方案可能比编写代码要花费更多的时间。 我们可以获得几十种机器配置文件,大多数云提供商都提供一些老型号的电脑。 所有供应商都提供不同性能水平的机器,因此我们需要对它们进行基准测试,以确定哪种性价比最高。 少用一些 RAM 来每小时节省 12美分有意义吗? 如果需要几个月连续运行 100台机器,那么这很重要。
更复杂的情况在于,云公司还会为提前付款或批量购买提供不同的折扣方案, 我们也必须把它们考虑在内。 购买一个云成本工程的在线课程就可以了解这些内容了。
热门:数据移动专家
变冷:备份磁带
当数据很少时,我们不需要考虑如何移动它。 我们可以将其备份到磁带或者安装 RAID硬盘。 但是现在数据如此之大,以至于我们不得不考虑我们在哪里使用它们。这变得越来越重要,因为更多的服务发生在云端的某个地方,而不是 RAID阵列所在的机架。
让我们来看看亚马逊的新款 Snowmobile ,这是一个可爱的内部名称,它是用于装载可容纳 100PB 数据硬盘的移动容器。 他们还制作了一个叫做 Snowball 的小盒子,可以容纳 80TB 。 两者都将像运送货物一样运送数据,而不是采用光纤信号。 一项估计表明,通过 1Gbps 的光纤线路下载 100PB 的数据需要 28 年,而货运卡车可能会在几天内将集装箱运送到全国各地。
所有这一切说明,开发人员需要开始考虑从哪里采集数据、在哪里使用数据。我们采集了比以前更多的数据,把它们移动到正确的地方也比以前也更加重要。正如 Wayne Gretzky 所说,他的成功在于提前计划并且通过分析对趋势进行预测,而不是仅仅把注意力放在正在发生的事情上。
热门:语音
变冷:网站
网站并没有真正死亡,只是新的音频接口方兴未艾。亚马逊、谷歌和苹果都在主推用语音来解决问题来替代通过敲打电脑键盘输入内容来解决。
这对于程序员来说意味着更多的工作,因为所有这些机制都有新的 API ,比如 Alexa 控制灯光的新开关。 如果您的公司想要连接这些音频接口,您最好现在就开始了解。毕竟,键盘和 URL 已经是上个世纪的发明了。
热门:Node.js
变冷:JavaEE,Ruby on Rails
服务器领域一直在线程模式上蓬勃发展,这使得操作系统允许开发人员各种任性、低效、放纵的行为。 无论采用愚蠢的循环还是更多的程序编码,操作系统将通过线程之间的切换平衡性能。
然后Node.js 与 JavaScript 回调模型出现,这些代码运行速度非常快–比任何人期望JavaScript达到的速度都要快。突然间,创建新线程的开销变得明显,Node.js 繁荣起来。 使用 node.js 时,如果程序员的表现不好会出现问题,但这在很大程度上是对他们是很有好处的。约束程序员的可用资源会促使程序员开发出更快的代码。
Node.js 还得益于它可以使前后台保持一致。两者运行相同的代码,这使得开发人员更容易迁移和重用函数。 因此,Node.js 已经成为互联网上最热门的堆栈。
热门:PHP7
变冷:旧版PHP
过去,PHP 是实现动态网页的简单方法。 我们可以通过在HTML 标签之间嵌入简单的代码来实现一些变化。为了便于 Web 开发人员使用,它是如此的基础,但速度也慢得足以让硬件程序员嘲笑。
这已成为过去,WordPress 和 Facebook 这样的 PHP 爱好者通过引入即时编译器技术(该技术使 Java 成为高性能解决方案)使得PHP代码比以往任何时候都快。 现在,像 HipHop虚拟机和 PHP 7.0 这样的工具的传输速度可能达到旧版本的两倍。Node.js 和 Java,准备接招吧。
热门:即时教育
变冷:四年全日制
计算机辅助课程不再新鲜,每个人都可以观看视频讲座,并且可以加快或者放慢视频播放速度或者要求教授重复最后一点。在线论坛也改变了以前一个人主导讨论的旧形式。
在线课程的本质和技术不仅颠覆了教育产业结构,还实现了随时随地学习的灵活性。这正在改变人们的观念,人们不再需要为与他们有关或无关的大量课程而投入四年高昂的学费。在你不知道自己是否需要在编译器上工作时,为什么要学习编译器课程?如果老板想从关系数据库切换到NoSQL引擎,那么我们可以将时间用于现代数据存储的课程上。只有在需要的时候才获得新信息,不要用快要腐烂的方法来扰乱思维。
觉得这条资讯有帮助?请转发给更多人