来源: 维基百科 HOA420
程序员们喜好嘲讽那潮流像阵风一样吹过的时尚界。裙子长短颜色款式总是来回在变,领带越来越窄,接着越来越薄。而在技术的世界里,相较于一时的风尚,严谨、科学、数理化以及精确才是王道。
不过这也并不是说编程就是一个没有趋势走向的行业。不同之处就在于编程的趋势是由更高的效率,越来越多的定制化以及更佳的易用性这些因素来驱动的。新一代的技术都是上代技术沉淀升级的结果。这是一种精益求精的过程,而非朝令夕改的奇思妙想。
如下是一份展示如今在程序员群体中比较热门和冷门的技术趋势清单。清单中所列不一定会得到所有人的认同,也可能有遗漏的。这也就是为什么编程会是这样一个无穷无尽的迷人领域: 快速的变化,激烈的争论,还有突然的峰回路转。
热门:预处理器
冷门:全语言堆栈
就在不久以前,人们在创造一种新的编程语言时还不得不构造一个将代码写到硅片中的环境。然后有人指出他们可以提前把这项工作完成。现在,机智的人们只需编写一个预处理器(将最新的代码转换成一组具有丰富的库和 API 的旧版本代码)。
像 Python 或者 JavaScript 这种脚本语言一直囿于小项目,然而现在它们是很多大型项目的基础。并且那些不喜欢 JavaScript 的家伙创造了 CoffeeScript,一个让程序员编程时不用纠结那些复杂的标点的预处理器。它有几十种以不同的方式预测语法的变体。
这些喜欢动态输入的家伙创造了 Groovy,Groory 是一个没有过于纠结标点的 Java 简化版。还有
很多类似 Scala 或 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 等编程结构(如实变量,嵌套块和混合)来鼓励规范、可靠的编码。 在程序层中可能听起来并不新鲜,但它对于设计层来说却是一个重大的飞跃。
热门: 视频标签 Video tags
冷门: 静态标签 Static tags
曾经有一段时间,视频是你在 YouTube 或 Vimeo 上观看过的内容。这些都是保存在一个专门的页面上独立存在的。随着越来越多的网站使用视频作为静态 GIF 或 JPG 的构建块,这种趋势正在发生变化。 突然之间,屏幕也开始随着人们或者狗走动而移动起来。
设计人员发现,现代视频标签只是另一个矩形,尽管这些矩形通常需要一些程序员的 JavaScript 代码来控制它。我们开始明白,视频并不是在客厅沙发前的机器盒子的主要内容,而仅仅是一个装饰。
热门: 几乎所有(没有使用 Hadoop 进行分析的)大数据技术
冷门: (使用 Hadoop 的)大数据技术
每个人都喜欢自己是圈子的大人物,如果不是,那就找个大小合适的圈子,这样就能脱颖而出了。所以当“大数据”这个词开始通过可执行的程序套件流行起来的时候,买主们就开始嚷嚷着要最大,最强的大数据系统,说得好像他们要扫的货是游艇或者摩天大楼一样。
有意思的是许多问题都还不够大,谈不上要去使用最好的大数据解决方案来进行处理。当然,像 Google 或 Yahoo 这样的公司,它们会跟踪我们所有的网页浏览行为,所以它们的数据文件要以兆字节或百兆字节为单位。而大多数公司所拥有的那些数据量使用基础的 PC 的 RAM 就可轻松对付了。我正在写下这些内容的时候,使用的是一台 16GB 内存的电脑——这样的配置足够处理数十亿事件的那么点数据量了。在大多数算法中,数据并不需要从内存读入,因为从 SSD 导入也是不错的选择。
有些场景会要求在一个 Hadoop 云中并行跑着的几十台机器在时间上能够快速响应,但许多其它的场景下作为单台机器上的一个可插拔的服务就可以了,也不会有啥协作和通信方面的问题。
热门: Spark
冷门: Hadoop
Hadoop 热度并没有冷却多少。只是 Spark 变得更红更热,使得 Hadoop 模型看起来有点老了罢了。Spark 借鉴了一些 Hadoop 从大量数据中提取语义方法的最优策略,并通过一些可靠的改进来更新它们,来使代码运行得更快。Spark 很可能会将数据保存在快速内存中,而不是要求所有内容必须写入分布式文件系统中。
当然,许多人通过 Spark 快速处理数据并肩器存储在 Hadoop 分布式文件系统的混合策略来使用二者。相比于竞争对手,他们更像是合作伙伴。
热门:人工智能/机器学习
冷门:大数据
自从“大数据”这个词火了之后,还没有多少人知道“人工智能”这个短语的意思,这可帮了销售人员一个大忙。他们正从人工智能中获得条件通过分析日志文件和点击流获得的数据处理算法升级“大数据”的复杂性。从 50 余年的 AI 研究中,我们得到了大量复杂的算法,相比以前,我们更有机会找出信号的噪声。从机器学习框架到认知计算再到 IBM 的“Watson”,都有工具去解决你的问题。每一种工具都提供了自己的只能水平,正是因为有了它们,我们才能做更多的数据分析和取证工作。
热门: 机器人学
冷门: 虚拟现实(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 具有不同的屏幕尺寸,你知道吗?焦点开始再次出现了。
热门: GPU
冷门: CPU
当软件做地很简单,指令在一个流水线上运行地很好的时候,CPU 就是整个电脑的老大,因为它做了系统中最沉重的任务。但是现在,视频游戏中充斥着大量的并行图形处理任务,这使得显卡处理速度变得很慢。显卡的价格很容易达到5、6百美元甚至更多,而且有些游戏发烧友使用1个以上的显卡。显卡的价格达到了很多台式机价格的两倍以上。游戏玩家并不是唯一吹嘘他们显卡的人,计算机科学家现在正将很多并行程序放到 GPU 上运行,使其运算速度提升了上百倍。
热门: GitHub
冷门: Résumés 简历
当然,你可以通过阅读包括初级棋牌俱乐部副总裁的获奖名单来了解候选人。但
阅读某人编写的代码是一件更有趣和更有启发性的事情。他们写好注释了吗? 他们是否浪费了大把时间把条目放进小小的类中?这个架构真的可扩展吗? 所有这些问题都可以通过他们的代码看到。
这就是为什么参与开源项目在找工作的过程中变得越来越重要。共享私有项目的代码几乎是不可能的,但开源代码能用在任何地方。
热门: 租
冷门: 买
当亚马逊推出黑色星期五电脑和其他电子产品促销活动时,却忘了炒作它的云产品。在不久前,各种公司都建设他们自己的数据中心,雇佣员工来管理他们购买的设备。但是现在,他们租用电脑、数据中心、员工、甚至按小时来租用软件。没有人想麻烦地拥有各种东西。这是一个好主意,除非网上正散播着病毒或者你意识到一点击就能买到任何东西,不再需要它的时候。现在如果只有亚马逊找到了一种自动化提供云服务的方法,那么这个趋势就会降低。
热门: 云的复杂度
冷门: 云的简单度
在云计算的初期,厂商强调的是,点击一个按钮就能把机器运行起来。简单为王。
如今,更多的时间可能花在选择合适的机器、合适的打折活动上。机器配置很多,大多数云提供商都支持其中一些老式类型,并且提供完全不同的性能级别。所以最好提前进行基准测试来判断哪个是最经济高效的选择。内存少一点,但是每小时可以节省12美分的花费是否值得?如果你同时有100台机器要运行数月,那可能是值得的。
更复杂的是,云厂商会对提前支付、打包购买提供多种折扣方案。你也需要考虑到这些因素。花些钱在云花费工程相关的在线课程上就能了解清楚了。
热门: 数据转移专家
冷门: 备份磁带
数据量小的时候,我们不用关心转移的问题。我们可以备份到磁带,或者存放到 RAID 硬盘中。如今数据如此之大,以至于我们无法估计哪里能用到。这个问题变得愈加重要,因为越来越多的服务发生在云端,而不是 RAID 阵列所在的支架。
比如 Amazon 的新推出的 Snowmobile 装运容器,这是个有趣的内部名字,容器内装满硬盘,总计可以容纳 100PB 数据。他们还有一个名叫 Snowball 的小容器,可以容纳 80TB 数据。这两者都是按照物理方式转移数据,而不是通过光纤,所以确实可伸缩。一项估测表明,转移 100PB 数据,通过 1Gbps 的光纤需要 28 年,但是拖车几天之内就可以运送到国家的另一边。
所有这些都表明,开发者应该开始关注数据在何处收集、会在何处用到。我们比过去收集了更多的数据,将数据转移到合适的位置比以前更重要。就像 Wayne Gretzky 说的,他的成功在于,提前规划,并且滑到冰球将要达到的位置、而不是到冰球现在的位置。
热门: 音频
冷门: 网站
网站并没有消亡;只是新的音频接口逐渐兴盛。Amazon, Google, Apple 鼓励每个人说出问题,而不是站起来、走到电脑边、用手指敲字,却对问题不闻不问。
对程序员来说,这意味着更多的工作量,因为所有的这些机制都有新的 API,比如
Alexa 灯光开关控制的新产品。如果你所在的公司想要连接这些音频接口,你最好现在就研究。毕竟,键盘和 URL 是上世纪发明的。
热门: Node.js
冷门: JavaEE, Ruby on Rails
服务器领域因线程模型一直很繁荣,这些模型使操作系统满足程序员任何任性、低效、放纵的行为。不管程序员编写的代码是多么愚蠢的循环、多么无用的计算,操作系统需要通过在线程间切换来平衡性能。
然后
Node.js 提出 JavaScript 的回调编程模型,而且代码运行得很快,超出了大家对一个之前只是用于弹窗的玩具语言的期望。突然间创建新线程的劣势变得明显,Node.js 因此流行起来。程序员表现不好,问题就会出现,但是责任对他们来说大部分是有益的。对程序员来说,明显的资源限制通常会导致代码运行得更快。
Node.js 领域也从前后台的和谐统一中受益。一份代码两处运行,对开发者来说,迁移特性、赋值功能更加简单。因此,Node.js 领域成为互联网上最热门的技术栈。
热门: PHP 7.0
冷门: Old PHP
曾经PHP是一种完成几个动态页面的简单方式。如果你需要更多样化的,你可以在 HTML 标签之间嵌入简单的代码。Web 开发人员接受 PHP 比较容易,但从硬核开发者的角度看,其速度之慢值得嘲讽。
不过这已经成为过去,因为像 WordPress 和 Facebook 这样的 PHP 拥护者都在比谁的 PHP 代码更快,他们使用的是曾使 Java 成为高性能解决方案的即时编译器技术(JIT)。现在,像 HipHop 虚拟机和 PHP 7.0 这样的工具的
输出速度可能是旧版本的两倍。 Node.js 和 Java,看招吧。
热门: 即时教育 Just-in-time education
冷门: 四年全日制 Four years up front
计算机辅助课程不再新鲜,每个人都能享受到观看视频讲座带来的好处,包括快进、慢播或者要求教授重复最后一段的操作。在线论坛也对旧的研讨会议进行了改进,每次讨论只有一个人可以主宰。
但是,网络课程的本质及其背后的技术不仅在于教育产业复杂化,更是让学习能随时随地进行而提出的要求。这正在改变生活,因为人们不再需要投入四年的大量学费,用于那些可能与他们生活有关或无关的课程中。在你不知道你是否需要使用编译器工作时,为什么要在学习编译器有关的课程呢?如果老板想从关系数据库切换到 NoSQL 引擎,那么你就可以将时间投入到现代数据存储的课程中。当你需要时,你会收到最新的信息,而不需要过时的知识来扰乱你的思维。
译文:
21 hot programming trends—and 21 going cold
1 楼 somefuture 2017-05-23 13:53