程序员喜好嘲笑时尚界,像微风一样吹拂着潮流。 诸如裙子下摆上升和低落、颜料交往来交往去变、领带变得更肥厚,然后又更轻薄。 但在技能界,严谨、科学、数理和精确统治时尚尺度。
这并不是说编程是一个没有趋势变革的职业。 不同之处在于编程趋势是由更高的效率、更高的定制和易用性驱动的。 交付的一项或多项新技能超越着上一代。 这是一种任人唯才、以才适用精英驾驭的天下,而不是古怪的奇思妙想浮云般略过。
接下来是给当今程序员的一个列表,个中有热点以及非热点内容。当然,不是每个人都会赞许A清单列出的内容、D清单列出的内容,以及遗漏的内容。 正由于如此,编程才是一个永无止境的迷人职业:快速变革,激情辩论,溘然复出。

不久前,创建新编程措辞的人必须构建所有能够将代码转换二进制的位以供硅片识读(由硅质的集成电路芯片处理)。 现在,拥有聪明主张的人,只需编写一个预处理器,就能将新代码转换为具有丰富库和API的旧代码。
像Python或JavaScript这样的脚本措辞曾经仅限于小项目,但现在它们是负责严谨事情的根本。 那些不喜好JavaScript的人创建了个CoffeeScript预处理器,这让他们再次编码,且没有繁琐的标点符号。其余,还有许多变体以不同的办法进行预测和提示语法。
喜好动态类型的人创建了Groovy,这是一个大略的Java版本,没有过于坚持的标点符号。 彷佛有几十种措辞,诸如 Groovy,Scala,Clojure,Kotlin等 在JVM上运行,但只有一种JVM。 您也可以在.Net的VM上运行多种措辞。为什么重新发明轮子?
也便是说,你可以在现有根本条件上,通过预处理器来开拓新的措辞,而不是从头来搞一门新措辞。
2、Hot: Serverless | Not: Docker这不完备精确。Docker容器无处不在。 做事器一贯在开启着,但同时也关闭着容器,由于,Docker容器比它们须要的容量大得多。
如果你考虑一下,你可能只会为你正在支配的微做事编写几十行真正的决策代码,但是你须要投入大量的配置才能使Node.js和其他任何东西开始 精确利用Docker。 是的,这都是样板,但是没错。
新的无做事器架构让我们只支配那些做出真正决策的if-then-else语句。 其他统统都由那些租用无做事器平台的人来完成。
是的,我们会在几年内抱怨锁定和缺少定制,但是现在无做事器选项彷佛使所有的devops和配置从中得到解脱。
3、Hot: JavaScript MV frameworks |Not: JavaScript files良久以前,每个人都学会编写JavaScript以弹出警告框或检讨表单中的电子邮件地址是否包含 @符号。 现在HTML AJAX运用程序非常繁芜,很少有人从头开始。 采取精心设计的框架并编写一些粘合代码来实现业务逻辑更为大略。
现在有许多框架,如Vue,Kendo,Sencha,jQuery Mobile,AngularJS,Ember,Backbone,Meteor JS等等,都准备好处理您的Web运用程序和页面的事宜和内容。
这些只是网络运用程序。 还有一些调度为智好手机/平板电脑天下供应跨平台开拓。 NativeScript,PhoneGap,Apache Cordova和React Native等技能是利用HTML5技能创建运用程序的一些选项。
4、Hot: CSS 框架 | Not: 通用CSS曾几何时,在网页上添加一些意见意义意味着打开CSS文件并编写包含的一个新命令,如font-style:italic。 然后你保存了文件,并在一上午艰巨的事情后去吃午餐。 现在网页非常繁芜,用这么大略的命令填写文件是不可能的。 对颜色进行一次调度,统统都变得不正常了。 这就像他们对阴谋和生态学所说的那样:统统都是相互联系的。
这便是像SASS这样的CSS框架及其像Compass这样的兄弟存在,已经找到了稳固的根本来办理此类问题。 它们通过供应编程构造(如实变量,嵌套块和稠浊)来鼓励有识读能力且稳定的编码。 它可能听起来不像编程分层化中的新鲜事,但它是设计层的一个重大飞跃。
5、Hot: SVG | Not: FlashFlash已经让人们猖獗多年,并且艺术家们一贯都喜好这种结果。 抗锯齿渲染看起来很棒,许多有才华的艺术家已经构建了一大堆Flash代码来供应繁芜的过渡和动画。 休闲游戏连续非常受欢迎。 因此,Flash在网络上依然存在。
既然JavaScript层能够做很多相同的事情,那么浏览器制造商和开拓职员就为Flash的闭幕而欢呼了。 他们看到与来自SVG(可缩放矢量图形)等新格式的DOM层可更好地集成。 SVG和HTML包含一大堆标签,Web开拓职员常日更随意马虎利用它们。 然后有大量的APIs,常日在视频卡的帮助下,在Canvas工具上供应风雅的绘图。 把它们放在一起,你就没有情由再利用Flash了。
6、Hot:不带Hadoop大数据 | Not:带Hadoop大数据每个人都喜好觉得像校园里的大人物,如果他们不是,就去探求一个适宜他们能够脱颖而出的的校园。 绝不奇怪,当\"大众大数据\公众这个词开始流入实行套件(软件办理方案)时,套件就开始哀求最大,最强的大数据系统,就彷佛他们购买游艇或摩天算夜楼一样。
有趣的是,许多问题都不敷大到利用最精彩的大数据办理方案。 当然,像谷歌或雅虎这样的公司跟踪我们所有的网页浏览; 他们有以PB或yottabytes为单位的数据文件。 但大多数公司的数据集都可以轻松放入基本PC的RAM中。 我正在一台拥有16GB内存的PC上写这个内容,足以支持十亿个带有少量字节的事宜。 在大多数算法中,数据不须要读入内存,由于从SSD流式传输可以很好。
有些实例哀求并走运行的Hadoop云中的数十台机器的快速相应韶光,但许多机器可以在一台机器上进行精确插拔,而无需折衷或通信的麻烦。
7、Hot: Spark | Not: Hadoop并不是说Hadoop正在降温。 更多的是Apache Spark炙手可热,使得Hadoop模型看起来有点旧。 Spark借鉴了Hadoop从大量数据中提取含义的方法的一些最佳想法,并通过一些可靠的改进来更新它们,使代码运行得非常非常快。 最大的可能是Spark将数据保存在快速内存中,而不是哀求所有内容都写入分布式文件系统并从中读取。
当然,很多人通过利用Spark对Hadoop分布式文件系统中存储的数据的处理速率来合并这两者。 Hadoop和Spark常日更多是互助伙伴而非竞争对手。
8、Hot: 数据库配置 | Not: 软件编程良久以前,程序员曾经开玩笑说他们不知道下个世纪的编程会是什么样子,但他们知道它会被称为Fortran。 这个笑话很有趣,他们会从恐龙身上掉下来,冲破他们的木制亵服。 然后他们会回去配置数据库。
我们本日仍旧在构建数据库,但我们以是为的\"大众数据库\"大众现在已经变得更加繁芜和强大。 现成的数据库将在各大洲同步,同时在同等性和速率之间供应灵巧的权衡。 像Firebase这样的云做事会将新数据推送到移动客户端上运行的网络运用程序。
大多数无做事器革命都基于这样的认识:许多云数据存储现在非常强大,我们只需编写一些if-then-else子句来构建一个非常酷的Web运用程序。
9、Hot: 游戏框架 | Not: 本地游戏开拓曾几何时,游戏开拓意味着雇佣大量开拓职员从头开始用C编写所有东西。 当然,它耗资数十亿美元,但它看起来很棒,而且像风一样。 现在,没有人能够包袱得起定制代码的奢侈品。 大多数游戏开拓者多年前放弃了自己的骄傲,并利用Unity,Corona或LibGDX等库来构建他们的系统。 他们不像编写库的指令那样编写C代码。
我们的游戏不是骄傲地手工制作,而是用相同引擎冲压出来,这是不是很可惜? 不。 大多数开拓职员都松了一口气。 由于他们不须要处理细节,以是他们可以专注于游戏,叙事弧,人物和艺术。
10、Hot: 静态网站天生器 | Not: 单页面web运用还记得URL指向充满静态文本和图像的网页吗? 然后,动态的单页Web运用程序涌现并用一个聪明的Web运用程序更换它们,这些运用程序将获取哀求的数据。 你猜怎么了? 钟摆向后摆动,所有孩子都在建造静态网站的天生器。 有几十个。 它就像hybrid(稠浊动力车)。 您将所有数据放在一堆里,然后编写一些将数据粘贴到某些模板中的代码,以便每个静态URL都有一个HTML文件,这来自数据表中的每一行。
孩子们认为这些静态网站是超高速的。 只是不要见告他们像WordPress和Drupal这样的旧动态系统的事情办法大致相同,即通过保持险些利用最新数据添补天生的静态页面的缓存来事情。
11、Hot: GraphQL | Not: REST这并不是说REST已经去世了。 只是我们想要利用API做更多的事情,而GraphQL是一种方法。 GraphQL返回JSON中的数据,就像REST一样。 GraphQL从HTTP POST开始,就像许多REST调用一样。 只是GraphQL语法许可您只需几次敲击就可以指定非常繁芜的查询。 这使程序员更随意马虎查询他们想要什么,并且当有人想要轻微不同的API时,它减少了必须完成的做事器端事情量。
也便是,GraphQL可以按需获取数据。
12、Hot: Cloud IDEs | Not: Local IDEs良久以前,人们利用命令行编译器。 然后有人将其与编辑器和其他工具集成以创建IDE。 现在是时候通过基于浏览器的工具,让IDE黯然失落色,这些工具可以让你编辑代码,乃至是事情系统的代码。 如果您不喜好WordPress的功能,它会附带一个内置编辑器,可让您随时变动代码。 Microsoft的Azure许可您在其门户中编写JavaScript粘合代码。 这些系统没有供应最好的调试环境,编辑生产性代码有一些危险,但这个想法很有道理。
您可以从AWS Cloud9,Codenvy和Mozilla的WebIDE开始,并要保持不断探索。 基于网络的工具正变得越来越强大。 例如,可以在Microsoft的Azure网站上构建一个完全的大数据剖析项目。 如果您开始探索无做事器选项,您将很快创造您可以在网页上的表单元素中编写所有代码,这是个不比在Facebook上用于更新朋友信息的表格大多少。
13、Hot: GPU | Not: CPU当软件很大略并且指令排成一行时,CPU便是打算机的王者,由于它完成了所有繁重的事情。 现在,视频游戏充满了可以并走运行的大量图形例程,视频卡运行了该展现。 在花哨的视频卡上花费500美元,600美元或更多是很随意马虎的,而一些严明的游戏玩家利用不止一个。 这是许多基本台式机价格的两倍多。
此外,游戏玩家不是唯一吹嘘他们的GPU卡的人。 打算机科学家现在正在将许多并行运用程序转换为在GPU上运行,速率快数百倍。 数据科学家正在利用装有GPU的做事器来加速其机器学习模型的开拓。
14、Hot: GitHub | Not: Résumés当然,你可以通过阅读包括低级国际象棋俱乐部副总裁在内的一系列造诣来理解候选人。 但阅读某人的实际代码更丰富,更有启示性。 他们写好评吗? 他们是否摧残浪费蹂躏了太多韶光将物品分成很小的类? 是否有真正的架构可以扩展? 所有这些问题都可以通过他们的代码一瞥来回答。
这便是为什么参与开源项目对付找事情变得越来越主要的缘故原由。 从专有项目共享代码很难,但开源代码可以随处可见。
这是说,在GitHub上秀出你的实际代码,而不是简历的描述,使你更好的找事情。
15、Hot: 租用 | Not: 购买当亚马逊在玄色星期五推出其打算机和其他电子产品的发卖时,该公司忘却了为其云打算供应超值优惠的交易。 给它韶光。 不久前,公司开设了自己的数据中央,并聘请了自己的员工来运行他们直接购买的打算机。 现在他们按小时租用打算机、数据中央、员工,乃至软件。 没有人想要拥有任何东西,乃至管理做事器的麻烦。 这是一个好主张,至少在网站盛行起来,并且你也意识到你通过点击支付所有东西。
16、Hot: 繁芜运 | Not: 大略云云打算的早期阶段,供应商强调单击按钮并运行机器是多么随意马虎。 朴素是王道。
现在选择精确的机器并找出得当的折扣程序可能比编写代码花费更多的韶光。 有许多机器配置文件可用,大多数云供应商支持一些旧型号。 所有这些都供应独特的性能水平,因此您最好准备好对它们进行基准测试,以确定哪种办法对您来说最具本钱效益。 是否值得每小时节省12美分以减少内存? 如果你一次开转100台机器,可能就好了。
为了使事情变得更加繁芜,云公司供应了几种通过提前付款或批量购买来得到折扣的选择。 您还必须将它们放在电子表格中。 这足以投资于云本钱工程的在线课程。
17、Hot: 移动web运用 | Not: 本地移动运用假设您对移动内容有个好主张。 你可以赶紧为iOS,Android,Windows 10 Mobile乃至黑莓操作系统编写单独的版本。 每个人都须要一个单独的团队讲一种不同的编程语 。然后,每个平台的运用程序商店都会发布自己的一点东西,然后才能将运用程序交付给用户。
或者您可以构建一个HTML运用程序并将其放在网站上以在所有平台上运行。 如果有变革,您无需返回运用程序商店,要求快速查看缺点修复。 现在HTML层变得越来越快,并且在更快的芯片上运行,这种方法可以与本机运用程序竞争,纵然对付繁芜的交互式运用程序也是如此。
便是说,移动web相应更快,迭代更快。随着根本条件的支持会越来越好。
18、Hot: Android | Not: iOS几年前那条线路是否已经从Apple的商店中掠过? 时期在变。 虽然iPhone和iPad连续拥有热爱其丰富、精细的用户界面的专用粉丝,但原始发卖数字仍旧倾向Android。 一些宣布乃至说,超过80%的手机发卖的是Androids。
缘故原由可能与本钱一样大略。 虽然iOS设备仍旧花费相称一分钱,但Android天下充斥着大量竞争,这些竞争产生的平板电脑价格只有五分之一。 省钱总是一种诱惑。
但另一个成分可能是开源的影响。 任何人都可以在Android市场中竞争——并且他们也可以那么干。 有大型Android平板电脑和小型平板电脑。 有Android相机乃至Android冰箱。 没人非得说,“可以去”谷歌进行创新? 如果他们有一个想法,他们会跟随他们的想法去做。
19、Hot: Node.js | Not: Java EE, Ruby on Rails做事器天下一贯在线程模型上发达发展,让操作系统沉迷于程序员任何任性、低效或放弃的行为。 无论屈曲的循环或程序员编码的摧残浪费蹂躏打算,操作系统都会通过在线程之间切换来平衡性能。
然后Node.js涌现了编程的JavaScript回调模型,代码的运行速率比任何人认为可能只用于警报框的玩具措辞快得多。 溘然间,创建新线程的开销变得明显,Node.js就开挂了。 当程序员表现不好时会涌现问题,但任务在很大程度上对他们有利。 对程序员来解释显的资源限定常日会产生更快的代码。
Node.js天下也受益于浏览器和做事器之间的和谐。 两者都运行相同的代码,因此开拓职员更随意马虎移动功能和复制功能。 因此,Node.js层已成为Internet上最热门的堆栈。
20、Hot: PHP 7.2 | Not: Old PHP在过去,PHP是一种大略的方法来淘汰一些动态网页。 如果您须要一些变革,可以在HTML标记之间嵌入大略的代码。 这对付Web开拓职员来说已经足够根本了,但是慢到足够吸引来自核心程序员的冷笑。
这是个老,由于像WordPress和Facebook这样的地方的一些PHP爱好者通过采取曾经使Java成为高性能办理方案的Just-in-Time编译器技能,比以往更快地竞争实行PHP代码。 现在,像HipHop虚拟机和PHP 7.2这样的工具供应的速率可能是旧版本的两倍。 接管吧,都遇上了Node.js和Java。
21、Hot: 即时教诲| Not: 四年苦学打算机中介课程不再是新的,每个人都享受着不雅观看带有按钮的视频讲座的上风,这些按钮用于加速、减速或哀求教授重复末了一点。 在线论坛也改进了旧的研讨会议室,一次只有一个“大嘴”可以主导谈论。
但是,不仅是在线课程背后的技能性子正在颠覆教诲家当的繁芜性; 无论何时何地,您都可以灵巧地学习。 目前正在改变这种动态,由于人们不再须要为可能与他们的生活干系或可能与他们的生活无关的大量课程投入四年的无耻学费。
为什么要学习编译器课程,你知道你真的会在编译器上事情? 如果老板想要从关系数据库切换到NoSQL引擎,那么您可以将韶光花在当代数据存储的课程中。 您可以在须要时得到最新信息,并且不会由于快速糜烂的想法而稠浊您的大脑。
也便是说,学会独立思考,把韶光和精力放在“适当”的方向上,而不是花四年韶光,有关无关的全学一下,又很快忘了。时期在变,节制新的学习办法,即时教诲与终生学习。
编译者:老崔@牛旦教诲IT教室
原文地址:https://www.infoworld.com/article/3188464/application-development/21-hot-programming-trends-and-21-going-cold.html?nsdr=true&page=1