登录 / 注册
IT168技术开发频道
IT168首页 > 技术开发 > 技术开发资讯 > 正文

了解编程的21个热门冷门,想不成功都难

2016-08-23 10:25    it168网站原创  作者: 田晓旭 编辑: 田晓旭

  【IT168 资讯】程序员总是嘲笑时尚圈就像微风一样难以捉摸,裙子总是忽长忽短,流行色总是反反复复。科技圈和时尚圈截然不同,永远以严谨和科学为潮流。

  当然,这并不是说编程领域就没有趋势可言。相反,编程永远是向着高效率、个性化和易用性好的方向发展。新技术取代原先的技术,优胜劣汰,这并不是异想天开,而是实实在在存在的。

  程序员是一个充满迷人色彩的职业,因为他总是在不断变化着,可能有些技术会突然爆冷出局,也可能有些技术突然爆红,甚至还会有技术“死灰复燃”、东山再起。下面我们就来看看在编程领域有哪些是热点,哪些是冷门吧。

了解这21种趋势,想不成功都难

  Hot: Preprocessors

  Not: Full language stacks

  硅谷的繁荣,是一代热血的年轻人用一行行代码码出来的。随着,技术的发展,程序员们将原先的旧代码封装成了一套丰富的库和API,然后再次基础上开发新的代码,大大提高了开发的效率。

  Python和JavaScript这类的脚本语言之前都是很小的项目,但是现在已经成为码农工作的基础了。不喜欢使用JavaScript的程序员还开发了CoffeeScript,通过这个预处理器,可以让代码摆脱繁重的标点符号的限制。

  除此之外,人们还开发了一种基于Java虚拟机的敏捷动态语言Groovy。似乎有很多像Scala和Clojure之类的语言运行在JVM上,但其实JVM只有一个,你只是在.NET虚拟机上运行多种语言。

  Hot: Docker

  Not: Hypervisors

  Hypervisor是一种运行在物理服务器操作系统之间的中间软件层,可允许多个操作系统和应用共享一套基础物理硬件,而Docker运行在hypervisors 之上。Docker要比虚拟机映像要小得多,所以更容易部署和使用。

  相比于Hypervisors,开发者更喜欢使用Docker,因为它更易部署、更易使用。一些有前瞻性的公司例如Joyent已经开始精简系统,从堆栈中腾出更多的空间来运行Docker。

  Hot: JavaScript MV* frameworks

  Not: JavaScript files

  我们每个人都会使用JavaScript代码来写一个简单的小程序,例如弹出一个警告框或检查表中的电子邮件地址是否有@符号。现在的HTML Ajax应用程序是很复杂的,很少有人有耐心从零开始,所以这时采用一种巧妙的框架来实现业务逻辑是一种很有效的方法。

  现在有很多的框架,例如Kendo, Sencha, jQuery Mobile, AngularJS, Ember, Backbone, Meteor JS,用来支持动态网站、网络应用程序及网络服务的开发。

  框架不仅可以应用在Web应用程序,有些框架还支持跨平台移动应用开发,例如NativeScript,PhoneGap和Sencha Touch。

  Hot: CSS frameworks

  Not: Generic Cascading Style Sheets

  以前,网页的制作和修改特别简单,添加一个CSS文件,修改一下字体等等,被修改的部分保存一下,全新的网页就产生了。但是,现在情况就不一样了,网页的情况要复杂的多,牵一发而动全身,有可能只是修改一下颜色就可能导致整个网页错乱。。

  但是这也给了CSS框架的开发工具的发展空间,比如SASS。SASS可以简化Css工作流,并可以使你的Css的扩展和维护工作变的更加容易,通过提供变量、嵌套块等编程结构使代码更加高效稳定。这些听起来虽然对编码层没有大的改变,却大大的提升了设计层。

  Hot: SVG + JavaScript on Canvas

  Not: Flash

  Flash一直受到人们的追捧,很多大火的艺术家都使用Flash来做动画特效。

  但是,现在JavaScript拥有了很多Flash的功能,这让很多浏览器制造商和开发商很振奋。DOM层集成了更多新的格式,比如SVG;HTML和SVG丰富的标签,将更有利于Web开发人员开发;大量原生的API,能够提供大量精致的画面;这些原因综合导致了Flash的使用量减少。

  Hot: Almost big data (analysis without Hadoop)

  Not: Big data (with Hadoop)

  从众心理是很多人的劣根性,所以当大数据火爆的时候,大家就开始了盲目跟风,很多企业的管理层都开始要求要使用最庞大、最强大的大数据系统。

  但是,事实并非如人们想象的那么美好,大数据解决方案固然好,但是很多企业、很多问题都还不足以使用大数据解决方案。谷歌和雅虎通过浏览器监控用户行为,它们的数据集达到了PB级或YB级,但是,很多公司的数据集并没有达到这样的数量级,甚至一台PC机的内存就可以存储,所以大多数的算法不需要从内存中读取数据,只需从SSD中流式传输数据即可。

  Hot: Spark

  Not: Hadoop

  虽然Hadoop的热度还没有冷却下来,但是Spark的火爆程度,却让它相形见绌。Spark借鉴了很多Hadoop好的地方,做了很多的改进,让代码运行的更快,更稳定。其中最妙的是,Spark支持数据存储在内存中,而不是要求数据全部存在分布式文件系统中。

  当然,现在也有很多人将二者合而为一,使用Spark来处理存储在Hadoop分布式系统中的数据,所以,与其说它们是对手不如说是伙伴。

  Hot: Artificial intelligence/machine learning

  Not: Big data

  现今,应该没有人不知道人工智能是什么意思吧?人工智能能够运行大数据来帮助营销人员来进行更为精准的营销。他们抓住人工智能的机遇,通过日志文件和clickstream的海量数据的运算算法来提升企业的竞争力。从机器学习框架到IBM Watson,我们有不计其数的工具可以帮助我们来解决问题,每个工具都有自己的特性,可以提供不同级别的机器学习,适应我们数据分析的多种需求。

  Hot: Game frameworks

  Not: Native game development

  以前,游戏开发要雇佣大量的开发人员,使用C语言从零开始创建系统、编写所有的代码,当然这样的成本也会很高。虽然这样的开发成本有点高,但是我们不得不承认它的成果很优秀。但是现在,很少有人能够愿意花费这么多的人力物力财力,大多数游戏开发商都放弃了自己开发,而选择使用 Unity, Corona, LibGDX之类的库来建立系统,开发人员只需为库编写代码就可以了,代码量大大减少了,他们可以把更多的精力放在游戏的玩法、风格、人物上面。

  Hot: Single-page Web apps

  Not: Websites

  还记得当充满静态文本和图片的网页吗?那时把各种充满着各种信息的不同网页组合起来就是一个网站,设计人员需要花费大量的时间去设计导航,让人们能够更方便的使用。

  新的Web应用程序是内容满分的大型数据库的前端。当Web应用程序需要的数据时,它会从数据库中提取出来,并将其注入到本地的模具中。不需要使用额外的元素来标记数据。数据层是完全独立于表示层和格式层的。移动计算兴起的另一个因素是响应式设计的单一网页可以像APP一样,很好的避免了APP Store的混乱。

  Hot: Mobile Web apps

  Not: Native mobile apps

  移动应用方面我们可能会面临很多的问题:我们可能需要为Android、iOS、Windows 8,甚至是黑莓或者其它平台编写不同版本的应用,每个版本还需要开发人员使用不同的开发语言,然后依托于多个应用程序商店向用户推广。

  但是现在,我们可以创建一个HTML应用程序放在网站上,所有平台都可以支持该应用。还有一个好处,如果版本有什么变化的时候,无需返回到应用程序商店去查找最新的版本。由于HTML层变得更加敏捷,所以它已经有足够的实力和原生应用程序展开竞争。

  Hot: Android

  Not: IOS

  几年前,苹果实体店前排队买手机的盛况还令我们记忆犹新。现在,虽然还是有很多死忠果粉,但是Android手机的销售却逐渐冒头了,甚至有消息称市面上80%的手机是Android手机。

  Android设备能够突出重围的原因很简单,那就是价格优势。IOS设备的价格总体来说还是比较小资的,但是Android市场的价格战争则非常惨烈,许多厂商的产品可能只有苹果产品的五分之一。对于消费者来说,价格永远是他们无法拒绝的诱惑。

  但另一个因素可能是开源的效果。现在的市场并没有任何的门槛限制,任何人都可以在市场上竞争。市面上有各种品牌的Android平板,Android相机,甚至还有Android冰箱,但是,应该没有人会和谷歌说:“老大,我想发布一个产品,可以吗?”这是一个不拘一格降人才的时代,只要你有好的点子,你就可以付诸行动。

  Hot: GPU

  Not: CPU

  当软件简单,指令呈线性排列时,CPU是计算机之王,处理所有繁重的工作。但是,如果是充斥着大量并行运行的图像化例程的视频游戏,CPU就不再是王了,显卡的地位明显提升了。很多游戏玩家都会在显卡上花费大量的价钱。GPU卡的作用并不是吹嘘出来的,它确实是会让很多台式机的价格翻倍。如今计算机科学家也在转换许多并行应用程序,使它们在GPU上的运行速度更快。

  Hot: GitHub

  Not: 简历

  我们可以从一个人的履历中看出他的职业水平,但是,这种方法是相当有局限性的,如果应聘者能够进行上机操作,那么我们就可以全面的了解他的编程习惯和编程能力:注释是否清晰易懂;分类是否合理;设计的架构是否易扩展。

  如果要一个专有项目去共享代码是很难的,但是如果这个项目本身就是一个开源项目,那么代码遍地都是。这也就为什么企业越来越看重应聘者是否有参与开源项目的经历。“共享”已经成为现在这个时代的主打曲了。

  Hot: Renting

  Not: Buying

  当亚马逊推出了电脑和其他电子产品的促销活动时,这家公司却忘记了添加云服务。之前,许多公司还在自己建立数据中心,购买服务器、计算机等设备,聘请专业的人员来管理数据中心。但是,现在更多的企业选择租赁服务,我们不但可以租赁电脑、数据中心,甚至连技术人员、软件也可以租赁,我们只需按需付费即可。按需付费是云时代的特征之一。

  Hot: Cloud complexity

  Not: Cloud simplicity

  云计算发展之初,是简单为王,那时候很多厂商都强调要让机器一点按钮就可以运行起来。

  现在选择合适的机器,选择合适的购买方案可能要比写代码花费更多的时间。机器的可用配置文件有很多种,大多数的云提供商也支持以前的模式,所以在这种情况下,想要选择一种最经济实用的方案,那么一定要对所有提供商的性能做一个横向对比。

  还有一种情况要考虑,一般为了促进销量,云服务提供商通常都会提供一些优惠方案,如批量购买或提前预定会有一定的打折优惠。所以,现在云服务的选择变多的同时也变得复杂了。

  Hot: IaaS

  Not: PaaS

  开发人员非常喜欢使用标准PaaS,因为可以获得很多额外的功能支持。

  但是它也有一个很大的缺点,那就是平台就意味着被厂商锁定。这个缺点可能有时是无关紧要的,但有时却是致命的。而IaaS选项是允许变更的。如果你不喜欢在IaaS里面运行Ubuntu服务器,那么你就可以在办公室自行安装一台Ubuntu服务器。但是如果要换成PaaS,恐怕就没有这么容易了。

  Hot: Web interfaces

  Not: IDEs

  之前,人们都是使用命令行在编译程序。后来,有人将编译器与编辑器以及其他工具集成起来,组成了集成开发环境(IDE)。现在是到了IDE该让贤的时候了,基于浏览器的工具可以让我们编写代码。如果你不喜欢WordPress的模板,它有内置的编辑器,可以自己动手编辑。Microsoft Azure提供了在浏览器编写JavaScript的功能,但是并不能提供绝佳的测试环境,所以采用这种方法来编写代码,目前还是有一定风险的。

  Cloud 9、Aptana和Mozilla WebIDE虽然可以使用但是还需要不断探索。Web界面正变得越来越强大,也许未来可以在Microsoft Azure网站上建立一个大数据分析项目。

  Hot: Node.js

  Not: JavaEE, Ruby on Rails

  服务器的发展是立足于线程模型,这种模型可以包容程序员各种效率低下的行为。任何愚蠢的循环或者浪费资源的编码,操作系统都可以通过调用线程来维持性能的平衡。

  随着Node.js和JavaScript回调模型的出现,代码的运行速度有了很大的提升。新线程的编写开销变得明显,Node.js也随之流行起来。虽然会因编程没有规范而出现一些问题,但总体来说,程序员能够更清楚的了解资源情况,从而开发出运行速度更快的代码。

  Node.js的发展也得益于浏览器和服务器之间的和谐。同一代码可以在两个平台运行,有助于开发人员进行移动和复制。毫无疑问,Node.js已经成为目前互联网最热门的开发堆栈。

  Hot: PHP 7.0

  Not: Old PHP

  过去,PHP只是快速设计动态网页的方法,如果你想要有一些个性化的设计可以通过HTML标签来实现。它之所以能够受到开发人员的青睐,是因为它操作简单,容易入门。

  WordPress和Facebook等公司的一些PHP爱好者一直致力于提高PHP代码的运行速度,他们在PHP中引入了即时(Just-in-Time)编译器技术,这项技术曾经让Java成为一种高性能解决方案。现在,HipHop Virtual Machine和PHP 7.0这些工具提供的速度可能会是之前版本的PHP的两倍。

  Hot: Just-in-time education

  Not: 四年教育

  以计算机为媒介的教学已经不再是一个新鲜事物了,现在我们每个人都在享受着视频教学带给我们的便利,我们可以自由快进快退、也可以重复观看,在线论坛也为我们提供了讨论问题的空间,我们可以和讲师进行互动。

  但是要真正颠覆传统教育行业,仅凭现在的在线课程的功能和技术还是远远不够的。在线课程要可以根据用户需求、随时随地的来学习。人们无需再缴纳四年的学费,去大学学习那些不知对未来是否有用的课程,大家可以直接选择自己感兴趣的学科来学习。假如你的公司想要从传统的关系型数据库转为NoSQL数据库,那么你就可以在在线课程中学习现代数据存储,通过这种学习方式,我们可以始终获得最新的知识。

  原文出处:http://www.infoworld.com/article/3039935/application-development/21-hot-programming-trends-and-21-going-cold.html

标签: 程序员 , 编程指南
分享到:
0 个人觉得赞+1
相关文章
  • IT168企业级IT168企业级
  • IT168文库IT168文库

扫码送文库金币

编辑推荐
系统架构师大会
系统架构师大会
点击或扫描关注
IT168企业级微信关注送礼
IT168企业级微信关注送礼
扫描关注
首页 评论 返回顶部