转自:http://blog.csdn.net/f2006116/article/details/72235404
程序员们喜好嘲讽那潮流像阵风一样吹过的时尚界。裙子长短颜色款式总是来回在变,领带越来越窄,接着越来越薄。而在技术的世界里,相较于一时的风尚,严谨、科学、数理化以及精确才是王道。
不过这也并不是说编程就是一个没有趋势走向的行业。不同之处就在于编程的趋势是由更高的效率,越来越多的定制化以及更佳的易用性这些因素来驱动的。新一代的技术都是上代技术沉淀升级的结果。这是一种精益求精的过程,而非朝令夕改的奇思妙想。
如下是一份展示如今在程序员群体中比较热门和冷门的技术趋势清单。清单中所列不一定会得到所有人的认同,也可能有遗漏的。这也就是为什么编程会是这样一个无穷无尽的迷人领域: 快速的变化,激烈的争论,还有突然的峰回路转。
热门:预处理器
冷门:全语言堆栈
就在不久以前,人们在创造一种新的编程语言时还不得不构造一个将代码写到硅片中的环境。然后有人指出他们可以提前把这项工作完成。现在,机智的人们只需编写一个预处理器(将最新的代码转换成一组具有丰富的库和 API 的旧版本代码)。
像 Python 或者 JavaScript 这种脚本语言一直囿于小项目,然而现在它们是很多大型项目的基础。并且那些不喜欢 JavaScript 的家伙创造了 CoffeeScript,一个让程序员编程时不用纠结那些复杂的标点的预处理器。它有几十种以不同的方式预测语法的变体。
这些喜欢动态输入的家伙创造了 Groovy,Groory 是一个没有过于纠结标点的 Java 简化版。还有很多类似 Scale 或 Clojure 的语言,这些语言运行在 JVM 上,但是最多只能同时在一个 JVM 上运行。你可以在虚拟机上运行很多种语言。为什么还要重复造轮子呢。
热门: Docker
冷门: Hypervisors
这并不完全正确。尽管 Docker 容器比虚拟机的镜像文件小很多,制作它们也相对容易,也便于部署。但是 hypervisors 仍然有它的一席之地,很多 Docker 容器是运行在操作系统内部的,而那些操作系统又是运行在 hypervisors 之上的。
当开发人员可以使用 Docker 的时候,他们还是更倾向于使用 Docker 容器,这主要归功于 Docker 在部署过程中可以轻松地进行操作。聪明的公司例如,Joyent 已经在思考如何更多地挤掉多余的“脂肪”,能让容器在“裸机”上运行。
在数字商业时代,你需要灵活地抓住新的机会,也要更有效地维护好留下的遗产和基础系统。
热门: JavaScript MV* 框架
冷门: JavaScript 文件
很久以前,每个人都学习过用 JavaScript 来弹出一个 alert 框体或者用它来检查 email 地址中是否包含@符号。现在, HTML AJAX 应用已经如此成熟,很少有人会从头开始做这些工作了。简单地采用一个精心制作的框架,写一些胶水代码来实现一下你的业务逻辑就行了。
现在已经有了众多的框架,像 Kendo, Sencha, jQuery Mobile, AngularJS, Ember, Backbone, Meteor JS 等等,它们都是准备用于处理你的 web 应用和页面上的内容和事件的。
除了 web 应用。还有大量的旨在为智能手机或者平板电脑等跨平台开发准备的框架、技术等,例如:NativeScript, PhoneGap, 和 Ext JS 都是创建 HTML5 应用的选择。
热门: CSS 框架
冷门: 通用级联样式表
从前,向网页添加新元素就意味着打开 CSS 文件并添加一个新的命令,如 font-style:italic
,保存了这个文件后,就可以去吃午饭了。但是现在网页变得异常复杂,再也无法用这样简单的命令来填充文件。一个颜色调整可能会导致其他一切都出问题。这就像他们对阴谋和生态的看法:一切都是相互关联的。
就像 SASS 和它的近亲 Compass 那样的 CSS 框架已经找到了坚实的基础。它们通过提供诸如实变量、嵌套块和 mix-in 等编程结构(如实变量,嵌套块和混合)来鼓励规范、可靠的编码。 在程序层中可能听起来并不新鲜,但它对于设计层来说却是一个重大的飞跃。
热门: 机器人学
冷门: 虚拟现实(VR)
只需几分钟,我们就进入了一个虚拟的世界:所有东西都是通过视频卡直接投影到我们的视网膜上。这种场景一定会发生,但是就目前而言,机器人学正处于爆炸式的发展中。每所高校都有机器人小组,而且各种机器正在闯入你你房子的每个角落。扫地机器人已经是旧闻了,无人机已经开始自由飞翔。
这意味着程序员需要开始思考如何编写代码来控制这些新机器。 从目前来看,这有点像为Raspberry Pi这样的轻量级控件编写脚本,但随着函数库的发展更加复杂,这一切都将会发生变化。 例如,就像许多机器人专家啃OpenCV(一个C语言的机器视觉平台)中的代码一样。这意味着新的规则,新的函数库,新的协议以及许多其他新的话题需要考虑。
热门: 单网页网络应用程序 Single-page web apps
冷门: 网站 Websites
曾记否,网址 URL 指向填满静态文字和图片的网页? 将所有信息放在称为网站的单独页面上是多么简单和精巧。设计团队将在网站地图上花费数小时的时间,并尝试使其导航更加简单。
新的网络应用程序是存储内容的大型数据库的前端。当网络应用程序需要信息时,它将其从数据库中提取出来并将其放置到本地端显示。这里没有必要使用构建网页所需的所有网络组件来标记数据。 数据层与呈现层和格式化层是完全分开的。另一个移动计算兴起的因素是:一个单一的、响应式设计的网页可以像应用程序一样工作,以更好地避免 APP 商店的混乱。
热门: 移动网络应用程序 Mobile web apps
冷门: 本地移动应用程序 Native mobile apps
假设您有一个移动内容方面的想法,你可以在 iOS、Android、Windows 8,甚至是 BlackBerry 操作系统或其他其他操作系统分开编写单独的版本。但是每个版本都需要一个独立的团队使用不同的编程语言编写。然后,每个平台的应用程序商店都会发出自己的版本,然后才能将应用程序发送给用户。
又或者你可以构建一个 HTML 应用程序,并将其放在网站上,这样就可以在所有平台上运行。如果有变动,不需要回到应用商店即可请求快速审核错误修复。现在 HTML layer 发展越来越快,也在更快的芯片上运行,让其能在复杂性和互动性更强的应用程序上更好地与本地应用程序进行竞争。
热门: Android
冷门: iOS
才过了几年时间,焦点似乎就不再在苹果的商店了?时代变化。虽然 iPhone 和 iPad 依然有一群喜爱他们精致的用户界面的专业粉丝,但销售数据更偏爱 Android。有报道甚至说80%以上的手机都是Android。
原因可能就是成本这么简单。如果 iOS 设备花费一分钱的话,Android 世界总会有大量的竞争者来让平板电脑的价格低至 iOS 的五分之一。省钱总是最大的诱惑力。
但另一个因素可能是开源。任何人都可以在市场上竞争,现在亦如此。市场上有大尺寸的 Android 平板电脑和一些小尺寸的设备,也有 Android 相机甚至 Android 冰箱。没有人会在将自己的创新想法付诸实践之前问 Google,“妈妈,我可以吗?”他们会马上开干。
不过,苹果正在向 Android 学习。iPhone 6 具有不同的屏幕尺寸,你知道吗?焦点开始再次出现了。
Hot: 数据转移专家
Not: 备份磁带
数据量小的时候,我们不用关心转移的问题。我们可以备份到磁带,或者存放到 RAID 硬盘中。如今数据如此之大,以至于我们无法估计哪里能用到。这个问题变得愈加重要,因为越来越多的服务发生在云端,而不是 RAID 阵列所在的支架。
比如 Amazon 的新推出的 Snowmobile 装运容器,这是个有趣的内部名字,容器内装满硬盘,总计可以容纳 100PB 数据。他们还有一个名叫 Snowball 的小容器,可以容纳 80TB 数据。这两者都是按照物理方式转移数据,而不是通过光纤,所以确实可伸缩。一项估测表明,转移 100PB 数据,通过 1Gbps 的光纤需要 28 年,但是拖车几天之内就可以运送到国家的另一边。
所有这些都表明,开发者应该开始关注数据在何处收集、会在何处用到。我们比过去收集了更多的数据,将数据转移到合适的位置比以前更重要。就像 Wayne Gretzky 说的,他的成功在于,提前规划,并且滑到冰球将要达到的位置、而不是到冰球现在的位置。
Hot: 音频
Not: 网站
网站并没有消亡;只是新的音频接口逐渐兴盛。Amazon, Google, Apple 鼓励每个人说出问题,而不是站起来、走到电脑边、用手指敲字,却对问题不闻不问。
对程序员来说,这意味着更多的工作量,因为所有的这些机制都有新的 API,比如 Alexa 灯光开关控制的新产品。如果你所在的公司想要连接这些音频接口,你最好现在就研究。毕竟,键盘和 URL 是上世纪发明的。
Hot: Node.js
Not: JavaEE, Ruby on Rails
服务器领域因线程模型一直很繁荣,这些模型使操作系统满足程序员任何任性、低效、放纵的行为。不管程序员编写的代码是多么愚蠢的循环、多么无用的计算,操作系统需要通过在线程间切换来平衡性能。
然后 Node.js 提出 JavaScript 的回调编程模型,而且代码运行得很快,超出了大家对一个之前只是用于弹窗的玩具语言的期望。突然间创建新线程的劣势变得明显,Node.js 因此流行起来。程序员表现不好,问题就会出现,但是责任对他们来说大部分是有益的。对程序员来说,明显的资源限制通常会导致代码运行得更快。
node.js 领域也从前后台的和谐统一中受益。一份代码两处运行,对开发者来说,迁移特性、赋值功能更加简单。因此,Node.js 领域成为互联网上最热门的技术栈。
热门: 即时教育 Just-in-time education
冷门: 四年全日制 Four years up front
计算机辅助课程不再新鲜,每个人都能享受到观看视频讲座带来的好处,包括快进、慢播或者要求教授重复最后一段的操作。在线论坛也对旧的研讨会议进行了改进,每次讨论只有一个人可以主宰。
但是,网络课程的本质及其背后的技术不仅在于教育产业复杂化,更是让学习能随时随地进行而提出的要求。这正在改变生活,因为人们不再需要投入四年的大量学费,用于那些可能与他们生活有关或无关的课程中。在你不知道你是否需要使用编译器工作时,为什么要在学习编译器有关的课程呢?如果老板想从关系数据库切换到 NoSQL 引擎,那么你就可以将时间投入到现代数据存储的课程中。当你需要时,你会收到最新的信息,而不需要过时的知识来扰乱你的思维。