Peter Wayner是InfoWorld的一名特约编辑,也是一个多产的作家。除了InfoWorld之外,他还经常为纽约时报和连线杂志撰写文章。近日,Peter撰写了一篇文章,谈到了未来15个热门的编程趋势以及15个逐步走向衰落的技术方向,该文发表之后在技术社区中引起了较大的反响,也希望文中的观点能给各位读者带来一些启示。

程序员们普遍对时尚界嗤之以鼻,因为这个圈子中的趋势就像风一样变幻不定。裙子忽长忽短、颜色变来变去、领结时大时小。不过在技术界,精确、科学与数学却统治着一切。然而,这并不是说编程没有趋势可言。差别在于编程的趋势是由更高的效率、更好的可定制性以及更棒的易用性来驱动的。新的技术会让旧有的技术黯然失色。下面我们就来介绍一下未来15个热门的编程趋势以及15个逐步走向衰落的编程方向。并非人人都会同意文中的观点,不过编程令人着迷之处恰恰就是快速的变化、激烈的争论以及即时的反馈。

热门:预处理程序

冷门:全语言栈

几年前,如果有人创建了新的编程语言,那么他不得不自己编写一些程序将语言的代码转换为二进制位。后来,有人发现可以利用现有的一些工具和技术做到这一点。现在,有想法的人只需编写一个预处理程序即可,它会将新语言的代码转换为已有的拥有大量库和APIs的语言。

喜爱动态类型的家伙创建了Groovy,这是一个简化版本的Java。那些想要修复JavaScript的人们创造了CoffeeScript。还有很多语言,如Scala和Clojure等,他们运行在JVM之上,已经有了这么好的JVM了,为何还要重新发明轮子呢?

热门:JavaScript MV*框架

冷门:纯粹的JavaScript文件

很久之前,人们学习JavaScript的目的就是为了弹出一个警告框或是检查表单中的email地址是否包含了@符号。现在,HTML AJAX应用已经变得异常复杂了,没有多少人会从头编写代码。更简单的方式是采用一个优雅的框架,编写一些胶水代码来实现业务逻辑。目前有大量的JavaScript框架,如Kendo、Sencha、jQuery Mobile、AngularJS、Ember、Backbone及Meteor JS等等,这些框架都可以帮助你很好地处理Web应用与页面的事件与内容。

热门:CSS框架

冷门:纯粹的CSS

曾几何时,为了向网页中添加一点活力,你需要打开CSS文件并加入一些诸如font-style:italic之类的命令,然后再保存文件。现在的网页已经变得非常复杂了,几乎不可能通过这样几条简单的命令就能达成所愿。改变一处的颜色也许会导致其他地方的颜色显示不正常,老话说的好:万物皆有联系。这正是SASS及Compass等CSS框架的用武之地,他们提供了一些编程元素,比如说真正的变量、嵌套的块等编程结构,这些东西在编程领域不是什么新玩意,不过对于设计来说却是一个伟大的进步。

热门:SVG与Canvas

冷门:Flash

过去,Flash令人着迷,艺术家们也都偏爱着Flash。其渲染的效果如此漂亮,很多聪明的艺术家都使用了大量的Flash创作了不少精致的效果。现在,JavaScript也可以做到过去只有Flash才能做到的那些效果,浏览器制造商与开发者们都为Flash的退出而欢呼雀跃。他们看到SVG(Scalable Vector Graphics)等新格式与DOM层更好的集成。SVG与HTML由大量的标签构成,这对于Web开发者来说是很容易使用的。此外,Canvas对象也提供了大量的API进行绘制。这让我们相信,已经没有多少继续坚守Flash的理由了。

热门:大数据(不使用Hadoop进行分析)

冷门:大数据(使用Hadoop)

每个人都想成为风云人物,如果不行,那他就会换个地方让自己脱颖而出。因此,“大数据”这个词儿的流行也就变得不那么让人惊奇了。有意思的是,很多问题并没有那么大,也没必要使用什么大数据解决方案。当然了,像Google或是Yahoo这样的公司会追踪人们的Web浏览;他们拥有的数据量是非常庞大的。不过对于大多数公司来说,他们所拥有的数据量可能一个普通的PC就装得下。肯定有公司需要使用不少机器,并行运行Hadoop,然后希望快点得到计算结果,不过很多公司其实并不需要这么做,他们只需要单台机器就行,根本没必要搞什么Hadoop。

热门:游戏框架

冷门:原生游戏开发

曾几何时,游戏开发意味着招很多开发者,从头开始使用C编写代码。当然了,这么做的成本也是相当高的,不过看起来好像不错。现在,没有人能够承担得起编写这么多代码的代价。大多数游戏开发者都开始使用Unity、Corona或是LibGDX等库来构建系统了。这样,他们就无需再处理这些细节信息了,可以将精力放在游戏情节、故事、角色以及艺术上了。

热门:单页面Web应用

冷门:网站

还记得通过URL访问只有静态文本和图片的网页时代么?那时,将所有信息放到网页上就可以做一个“网站”了。新的Web应用是包含着内容的数据库的前端。当Web应用需要信息时,它会从数据库中取这些信息,然后将其显示出来,没必要再像之前那样使用了。数据层与展示层和格式层是完全分开的。移动计算的出现是一个巨大的促进因素:单一的、响应式设计的网页看起来像个应用,同时还避免了App Store频繁提交审查的烦恼。

热门:移动Web应用

冷门:原生移动应用

假如你有一个关于移动方面的好点子。你可以为iOS、Android、Windows 8,也许还有BlackBerry OS各编写一个应用。每个应用都需要单独一个团队,使用不同的编程语言完成。开发完成后,你还需要将应用提交到应用商店进行审查,最后才能被用户下载使用。此外,你还可以构建一个HTML应用,将其放到网站上,应用可以运行在所有的平台之上。如果需要做些修改,那么你无需回到应用商店,祈求能够快些通过审查。现在的HTML运行速度已经越来越快了,它完全可以与原生应用展开竞争,即便是那些复杂、交互非常多的应用也没什么问题。

热门:Android

冷门:iOS

几年前,Apple的App Store还是一家独大,不过时间改变了一切。虽然iPhone与iPad还是拥有非常多的粉丝,他们喜欢其精致、丰富的UI,但Android的销量却在节节攀高。有报告显示70%以上的智能手机销量来自于Android。

原因很简单,那就是价格。虽然iOS设备保持了一个比较高的价格,不过Android世界中有太多的竞争者,他们所生产的平板价格甚至只有iPad价格的1/5,省钱总是硬道理嘛。除了价格之外,开源也是一个不容小觑的因素。任何人都可以在市场中参与竞争,实际情况也是这样的。有大的Android平板,也有小的手机;有Android相机,甚至还有Android冰箱。

热门:GPU

冷门:CPU

在软件还很简单,指令可以在一行中清楚显示的时候,CPU是计算机之王,因为它做了所有繁重的工作。现在,视频游戏中有大量并行运行的图形计算,一块显卡的价格动辄就5、600美金,一些执着的玩家甚至会使用多块显卡。这甚至比很多一般的PC还要贵,除了游戏玩家外,计算机科学家们也将很多并行应用转到GPU上运行,速度比之前快了百倍以上。

热门:GitHub

冷门:简历

没错,你可以通过看书等方式来学习,不过,阅读实际的代码却更加直观和有意义。程序员是否写了足够好的注释?是否花时间将大的类拆分成若干各司其责的小类?架构是否还有扩展的空间?这些问题都可以通过查看代码得到答案。

这也是为何现在在找工作时有过开源项目开发经历会变得更加吃香的原因所在。从私有项目中分享代码是比较困难的,不过开源项目可以走进每个人的生活。

热门:租赁

冷门:购买

以前,公司会建立自己的数据中心、雇佣专门的人来维护他们所购买的计算机。时至今日,很多公司开始租赁计算机、数据中心、雇员,甚至按照小时数来租赁软件。这是个非常好的做法,也会为公司节省很多成本;同时,还会保证计算能力。

热门:Web界面

冷门:IDEs

很久之前,人们使用命令行编译器。后来,有人将其集成到了编辑器和其他工具当中,创造出了IDE。现在,IDE有被基于浏览器的工具所替代的趋势。在基于浏览器的工具中,你可以编写代码、创建系统。如果不喜欢WordPress的工作方式,那么你可以通过它自带的编辑器修改代码并立即生效。你可以通过微软的Azure编写JavaScript胶水代码。这些系统基本上都没有提供很好的调试环境,而且在编辑生产代码时也存在着一定的风险,不过这个想法却是非常棒的。

热门:Node.js

冷门:JavaEE、Ruby on Rails及PHP

服务器的世界总是依赖于各种线程模型,不过这种方式会导致程序员所编写的各种低效、不负责任的代码影响到操作系统的效率。无论程序员编写的代码有多么差劲,操作系统总是会在各个线程间切换,从而平衡整体性能。

Node.js带来了JavaScript回调这种编程模型,代码运行速度也绝对够快。这种一开始只是用于弹出警告框的玩具语言的变化超出了很多人的想象。突然之间,创建新线程的开销变得很显著了,这时Node.js来了。如果程序员代码写的不好就会出现问题,不过让程序员清楚了解资源限制有助于他们编写出更快的代码。

Node.js的世界也因让浏览器与服务器之间保持和谐共处而获益匪浅。同样的代码既可以运行在浏览器端,也可以运行在服务器端,开发者可以在两端快速移动,也可以更好地完成功能。因此,Node.js已经成为互联网界最炙手可热的技术之一。

热门:Hackerspaces

冷门:大学

一个是4年250,000美金,一个是每月50美金,如果提前支付还有折扣。Hackerspaces正在不断驱动着创新,同时又没有大学那么多的开销。他们在创造着社交网络,影响着创业公司,没有官僚、没有政治。其课程不需要持续整个学期,这种特性非常适合于快速变化的技术世界。

转载于:https://www.cnblogs.com/Hobin/p/4094561.html

15个热门的编程趋势及15个逐步走向衰落的编程方向相关推荐

  1. python编程思维导图_用来梳理 Python 编程核心知识15张思维导图

    原标题:用来梳理 Python 编程核心知识15张思维导图 小编这次在逛论坛的时候,无意中发现了一份python的武功秘籍,也就是一份思维导图,堪称业界经典! 思维导图可以有力地激发你的联想,通过一个 ...

  2. Java黑皮书课后题第6章:*6.21(电话按键盘)国际标准的字母/数字匹配图如编程练习题4.15所示。编写一个测试程序,提示用户输入字符串形式的电话号码。程序将字母(大写或小写)翻译成数字

    6.21(电话按键盘) 题目 题目描述与运行示例 破题 代码 题目 题目描述与运行示例 6.21(电话按键盘)国际标准的字母/数字匹配图如编程练习题4.15所示,编写一个方法,返回给定大写字母的数字, ...

  3. 2016年世界编程大赛_2016年热门编程趋势

    2016年世界编程大赛 技术正在不断向前发展-好吧,也许并不总是向前发展,而是一直在向前发展. 即使对于那些关注趋势及其对程序员的影响的人来说,准确地判断前进的方向也是一个挑战. 当我与同事Kelse ...

  4. 【2023】Kotlin教程 第二篇 面向对象与函数式编程 第15章 数据容器——数组和集合 15.2 集合概述

    [2023]Kotlin教程 文章目录 [2023]Kotlin教程 第二篇 面向对象与函数式编程 第15章 数据容器--数组和集合 15.2 集合概述 第二篇 面向对象与函数式编程 第15章 数据容 ...

  5. 没想到吧!玩游戏还能学习编程,这15款编程游戏你一定要看看

    作者 |创客星辰 来源 | 辰语学习笔记 Coding Games 一边玩游戏,一边挑战编程难题.Coding games支持包括PHP.C.JavaScript在内的20多种编程语言.用户界面功能强 ...

  6. ros机器人编程实践(15.2)- 使用科大讯飞语音控制turtlebot导航

    一.前言 接上一篇博客:ros机器人编程实践(15.1)- 使用科大讯飞语音控制turtlebot导航 二.使用科大讯飞语音SDK 对着上一篇博客中科大讯飞的安装教程,创建了robot_voice的基 ...

  7. 编程趋势:21 个热门和 21 个要降温的

    (点击上方公众号,可快速关注) 英文:InfoWorld,编译:伯乐在线/技术最前线 [导读]:InfoWorld 作者总结的 21 个热门编程趋势和 21 个要变冷的趋势,包含 Web 开发,移动开 ...

  8. 编程人生:15位软件先驱访谈录

    内容简介:世界顶尖的程序员是怎么走上编程道路的? 他们的编程工作创造和改变了人类历史,在这一过程中都有哪些经验和教训? 他们对计算机软件行业的过去.现在和未来有什么独到的看法和见解? 他们对培养.发现 ...

  9. 编程十年 (15):宿命,程序员

    编程十年 (15):宿命,程序员 本文地址:http://www.cnblogs.com/AndersLiu/archive/2011/05/04/programming10years-15.html ...

最新文章

  1. 从Storm到Flink:大数据处理的开源系统及编程模型(文末福利)
  2. springmvc开启事务_java面试题 一 :SpringMvc的流程
  3. mapreduce编程实例(4)-求中位数和标准差
  4. jsonview浏览器插件 查看格式化json数据
  5. linux下dns服务器安装,Linux下DNS服务器安装配置方法详细介绍
  6. ios::sync_with_stdio(true);
  7. Ubuntu Linux服务器安装HBase
  8. java 递增 实现_Java编程实现递增排序链表的合并
  9. Go 1.5交叉编译
  10. 【高级】思科设备实现城域网ISIS+BGP+MPLS ***多域互通实战
  11. angular6、7 兼容ie9、10、11
  12. 使用zoom、overflow解决IE6、IE7、FF下嵌套容器清除浮动问题
  13. 3分钟搞懂什么是WPF。
  14. 怎样把QQ群降级(1000人降到200或500人,500人降到200)
  15. 渗透测试-----ARP攻击
  16. ios射击类游戏简单代码射击
  17. 一切没你想象那么糟,让你瞬间开心的30件小事
  18. 通过父级id 递归找到所有子类
  19. NPN三极管和N沟道MOS管引脚定义
  20. [Ionic]如何实现一个全局的浮动菜单栏?

热门文章

  1. c语言判断素数squ,poj1811——Prime Test//素数判断+整数分解因子
  2. git url地址无效_如何同步多个 git 远程仓库
  3. Lisp尺寸标注增加前后缀_汽车雨刷器也是有尺寸的,那具体的尺寸该如何分辨呢?...
  4. 控制是否展示_非线性控制(四)描述函数法
  5. 分页携带请求参数_一个值得深思的小问题 请求中的参数值为空要不要携带该参数?...
  6. groovy怎样从sql语句中截取表名_SQL基础教程学习笔记
  7. Linux环境下静态库的生成和使用 (.a文件)
  8. kali 安装搜狗输入法
  9. Paxos、Raft分布式一致性算法应用场景
  10. Linux永久挂载新的硬盘