21 个编程的热门/冷门趋势

cjan_ly 7年前
   <p><img src="https://simg.open-open.com/show/767b4a0a1e667058d020ddee985c685f.jpg"></p>    <p>来源: 维基百科 HOA420</p>    <p>程序员们喜好嘲讽那潮流像阵风一样吹过的时尚界。裙子长短颜色款式总是来回在变,领带越来越窄,接着越来越薄。而在技术的世界里,相较于一时的风尚,严谨、科学、数理化以及精确才是王道。</p>    <p>不过这也并不是说编程就是一个没有趋势走向的行业。不同之处就在于编程的趋势是由更高的效率,越来越多的定制化以及更佳的易用性这些因素来驱动的。新一代的技术都是上代技术沉淀升级的结果。这是一种精益求精的过程,而非朝令夕改的奇思妙想。</p>    <p>如下是一份展示如今在程序员群体中比较热门和冷门的技术趋势清单。清单中所列不一定会得到所有人的认同,也可能有遗漏的。这也就是为什么编程会是这样一个无穷无尽的迷人领域: 快速的变化,激烈的争论,还有突然的峰回路转。</p>    <h3>热门:预处理器</h3>    <h3>冷门:全语言堆栈</h3>    <p>就在不久以前,人们在创造一种新的编程语言时还不得不构造一个将代码写到硅片中的环境。然后有人指出他们可以提前把这项工作完成。现在,机智的人们只需编写一个预处理器(将最新的代码转换成一组具有丰富的库和 API  的旧版本代码)。</p>    <p>像 Python 或者 JavaScript 这种脚本语言一直囿于小项目,然而现在它们是很多大型项目的基础。并且那些不喜欢 JavaScript 的家伙创造了 CoffeeScript,一个让程序员编程时不用纠结那些复杂的标点的预处理器。它有几十种以不同的方式预测语法的变体。</p>    <p>这些喜欢动态输入的家伙创造了 <a href="/misc/goto?guid=4959748779139837859" rel="nofollow,noindex">Groovy</a> ,Groory 是一个没有过于纠结标点的 Java 简化版。还有 <a href="/misc/goto?guid=4959748779229666102" rel="nofollow,noindex">很多类似 Scale 或 Clojure</a> 的语言,这些语言运行在 JVM 上,但是最多只能同时在一个 JVM 上运行。你可以在虚拟机上运行很多种语言。为什么还要重复造轮子呢。</p>    <h3>热门: Docker</h3>    <h3>冷门: Hypervisors</h3>    <p>这并不完全正确。尽管 Docker 容器比虚拟机的镜像文件小很多,制作它们也相对容易,也便于部署。但是 hypervisors 仍然有它的一席之地,很多 Docker 容器是运行在操作系统内部的,而那些操作系统又是运行在 hypervisors 之上的。</p>    <p>当开发人员可以使用 Docker 的时候,他们还是更倾向于使用 Docker 容器,这主要归功于 Docker 在部署过程中可以轻松地进行操作。聪明的公司例如,Joyent 已经在思考如何更多地挤掉多余的“脂肪”,能让容器在“裸机”上运行。</p>    <p>在数字商业时代,你需要灵活地抓住新的机会,也要更有效地维护好留下的遗产和基础系统。</p>    <h3>热门: JavaScript MV* 框架</h3>    <h3>冷门: JavaScript 文件</h3>    <p>很久以前,每个人都学习过用 JavaScript 来弹出一个 alert 框体或者用它来检查 email 地址中是否包含@符号。现在, HTML AJAX 应用已经如此成熟,很少有人会从头开始做这些工作了。简单地采用一个精心制作的框架,写一些胶水代码来实现一下你的业务逻辑就行了。</p>    <p>现在已经有了 <a href="/misc/goto?guid=4959748779362189490" rel="nofollow,noindex">众多的框架</a> ,像 Kendo, Sencha, jQuery Mobile, AngularJS, Ember, Backbone, Meteor JS 等等,它们都是准备用于处理你的 web 应用和页面上的内容和事件的。</p>    <p>除了 web 应用。还有大量的旨在为智能手机或者平板电脑等跨平台开发准备的框架、技术等,例如: <a href="/misc/goto?guid=4958866610394523054" rel="nofollow,noindex">NativeScript</a> ,  <a href="/misc/goto?guid=4958199139955699999" rel="nofollow,noindex">PhoneGap</a> , 和  <a href="/misc/goto?guid=4959730527470525522" rel="nofollow,noindex">Ext JS</a> 都是创建 HTML5 应用的选择。</p>    <h3>热门: CSS 框架</h3>    <h3>冷门: 通用级联样式表</h3>    <p>从前,向网页添加新元素就意味着打开 CSS 文件并添加一个新的命令,如 font-style:italic ,保存了这个文件后,就可以去吃午饭了。但是现在网页变得异常复杂,再也无法用这样简单的命令来填充文件。一个颜色调整可能会导致其他一切都出问题。这就像他们对阴谋和生态的看法:一切都是相互关联的。</p>    <p>就像 SASS 和它的近亲 Compass 那样的 CSS 框架已经找到了坚实的基础。它们通过提供诸如实变量、嵌套块和 mix-in 等编程结构(如实变量,嵌套块和混合)来鼓励规范、可靠的编码。 在程序层中可能听起来并不新鲜,但它对于设计层来说却是一个重大的飞跃。</p>    <h3>热门: 视频标签 Video tags</h3>    <h3>冷门: 静态标签 Static tags</h3>    <p>曾经有一段时间,视频是你在 油Tube 或 Vimeo 上观看过的内容。这些都是保存在一个专门的页面上独立存在的。随着越来越多的网站使用视频作为静态 GIF 或 JPG 的构建块,这种趋势正在发生变化。 突然之间,屏幕也开始随着人们或者狗走动而移动起来。</p>    <p>设计人员发现,现代视频标签只是另一个矩形,尽管这些矩形通常需要一些程序员的 JavaScript 代码来控制它。我们开始明白,视频并不是在客厅沙发前的机器盒子的主要内容,而仅仅是一个装饰。</p>    <h3>热门: 几乎所有(没有使用 Hadoop 进行分析的)大数据技术</h3>    <h3>冷门: (使用 Hadoop 的)大数据技术</h3>    <p>每个人都喜欢自己是圈子的大人物,如果不是,那就找个大小合适的圈子,这样就能脱颖而出了。所以当“大数据”这个词开始通过可执行的程序套件流行起来的时候,买主们就开始嚷嚷着要最大,最强的大数据系统,说得好像他们要扫的货是游艇或者摩天大楼一样。</p>    <p>有意思的是许多问题都还不够大,谈不上要去使用最好的大数据解决方案来进行处理。当然,像 Google 或 Yahoo 这样的公司,它们会跟踪我们所有的网页浏览行为,所以它们的数据文件要以兆字节或百兆字节为单位。而大多数公司所拥有的那些数据量使用基础的 PC 的 RAM 就可轻松对付了。我正在写下这些内容的时候,使用的是一台 16GB 内存的电脑——这样的配置足够处理数十亿事件的那么点数据量了。在大多数算法中,数据并不需要从内存读入,因为从 SSD 导入也是不错的选择。</p>    <p>有些场景会要求在一个 Hadoop 云中并行跑着的几十台机器在时间上能够快速响应,但许多其它的场景下作为单台机器上的一个可插拔的服务就可以了,也不会有啥协作和通信方面的问题。</p>    <h3>热门: Spark</h3>    <h3>冷门: Hadoop</h3>    <p>Hadoop 热度并没有冷却多少。只是 Spark 变得更红更热,使得 Hadoop 模型看起来有点老了罢了。Spark 借鉴了一些 Hadoop 从大量数据中提取语义方法的最优策略,并通过一些可靠的改进来更新它们,来使代码运行得更快。Spark 很可能会将数据保存在快速内存中,而不是要求所有内容必须写入分布式文件系统中。</p>    <p>当然,许多人通过 Spark 快速处理数据并肩器存储在 Hadoop 分布式文件系统的混合策略来使用二者。相比于竞争对手,他们更像是合作伙伴。</p>    <h3>热门:人工智能/机器学习</h3>    <h3>冷门:大数据</h3>    <p>自从“大数据”这个词火了之后,还没有多少人知道“人工智能”这个短语的意思,这可帮了销售人员一个大忙。他们正从人工智能中获得条件通过分析日志文件和点击流获得的数据处理算法升级“大数据”的复杂性。从 50 余年的 AI 研究中,我们得到了大量复杂的算法,相比以前,我们更有机会找出信号的噪声。从机器学习框架到认知计算再到 IBM 的“Watson”,都有工具去解决你的问题。每一种工具都提供了自己的只能水平,正是因为有了它们,我们才能做更多的数据分析和取证工作。</p>    <h3>热门: 机器人学</h3>    <h3>冷门: 虚拟现实(VR)</h3>    <p>只需几分钟,我们就进入了一个虚拟的世界:所有东西都是通过视频卡直接投影到我们的视网膜上。这种场景一定会发生,但是就目前而言,机器人学正处于爆炸式的发展中。每所高校都有机器人小组,而且各种机器正在闯入你你房子的每个角落。扫地机器人已经是旧闻了,无人机已经开始自由飞翔。</p>    <p>这意味着程序员需要开始思考如何编写代码来控制这些新机器。 从目前来看,这有点像为Raspberry Pi这样的轻量级控件编写脚本,但随着函数库的发展更加复杂,这一切都将会发生变化。 例如,就像许多机器人专家啃OpenCV(一个C语言的机器视觉平台)中的代码一样。这意味着新的规则,新的函数库,新的协议以及许多其他新的话题需要考虑。</p>    <p> </p>    <p>来自:https://www.oschina.net/translate/21-hot-programming-trends-and-21-going-cold</p>    <p> </p>