这篇文章是一些在2016年与软件开发的最显著的发展我个人的,自以为是的评估这是我的第十个年头这一年一度的职位和我的前几年的评估可用于2015年 , 2014 , 2013 , 2012 , 2011 , 2010 , 2009年 , 2008年和2007年 。 与前几年的评估一样,此评估对2016年软件开发的主要发展的评估显然是有偏见,有根据的,并且仅限于我的观点。
10. Java狂热的一年
Java和JVM被全世界很大比例的软件开发人员使用。 随着Java 8的日益普及和热情,Java 8帮助Java开发人员重新振作起来,Java SE和JVM在未来似乎处于有利位置。 不幸的是,Java EE在2016年面临更多问题。由于Oracle缺乏有关Java EE未来的消息, Java EE Guardians在2016年出现了增长。 甲骨文最终没有回应在事先与JavaOne大会2016年的Java EE 8计划为更多的云和微服务为导向。 Oracle还表示,他们对Java EE开发人员的调查表明, REST和HTTP / 2支持至关重要。
甚至Java SE也无法幸免于2016年生存。 在2016年的最后一个月中, The Register上刊登了一篇名为Oracle的文章,该文章最终针对Java非付款人。六年前,Sun表示:“ Java SE可以免费,尽管Java SE Advanced Desktop,Advanced和Suite并非免费。 …由于Oracle不提供单独的安装,因此也没有办法将付费的Java SE组件产品与免费的Java SE伞分离开来,因为它们没有捆绑在一起,而是捆绑在一起,在付费时会导致混乱和错误。 -for功能意外使用。” 几篇文章和帖子都试图添加澄清的细节,但是所有这些在一起确实给人一种印象,那就是许可情况比应有的困难。 关于该主题的其他文章包括Java SE产品 , 《天塌下来:甲骨文(可能)希望您在2017年获得Java SE资金》 ,以及Java Champion对The Register Article有关Java SE使用情况的回应 。
有关2016年有关Java的更多详细信息,请参阅《 再见2016年》(Hello 2017年) 。有关“ 如果您在2016年编写Java代码–这是您不容错过的趋势”一文,有关Java的另一年终讨论也可以找到。
9. DevOps
尽管DevOps概念已经存在了一段时间,但它因“西装”(管理)而变得流行,并且该术语在所有类型的上下文中都被使用。 软件产品供应商强调他们的产品如何继续开发DevOps,软件开发申请和工作清单中充斥着DevOps经验的参考。
8.角度2
Angular 2 final于2016年发布,是对已经流行的Angular框架的重大重写。 Angular 1 TO 2快速参考文档“在Angular 1和Angular 2之间存在许多概念和语法上的差异。” 文章Angular 2和TypeScript –概述概述指出Angular 2是用Microsoft的TypeScript语言重写的,并且这是“使用[Angular]框架开发应用程序的推荐语言”(尽管基于Angular的应用程序也可以用JavaScript和Dart编写)。 关于TypeScript有很多值得一看的地方 ,特别是对于那些拥有Java经验多于JavaScript经验的人 。
Angular社区还在2016年提供了一个react-native-renderer库 ,用于使用“ Angular 2和React Native来构建适用于Android和iOS的应用程序”。 现在,还有一个专门的AngularDart团队支持Angular的Dart实现,该团队从2016年开始与TypeScript / JavaScript代码库分开。 在此之前,Angular 2代码库完全是TypeScript,并已编译为Dart。
角的新闻在2016年包括收养的语义版本的发布和的释放角1.6.0 , 角1.5.0 , 角2.4.0 , 角2.3.0 , 角2.2.0 , 角2.1.0 ,在最终发布Angular 2 (2.0.0)和几个Angular 2候选发布者( RC7 , RC6 , RC5 , RC4 , RC3和RC2 )。
Angular在2016年继续受到采用和覆盖,并且通过已发布的Angular 4 ( 跳过Angular 3 ),2017年对于Angular来说将是丰收的一年。
7.物联网(IoT)
术语“物联网”(IoT)已经存在了一段时间,甚至在主流媒体中讨论了一段时间,但该概念似乎在2016年的许多与技术相关的文章中都有提及。因为IoT概念是与大数据和云计算相关的主题变得越来越普遍,这也就不足为奇了。 物联网的兴起还带来了新的重大隐私和安全风险,同时也为用户带来了便利。
物联网2016年回顾:年度8个最相关的物联网开发谈论了消费者物联网通过Amazon Echo等产品的日益普及。 本文还讨论了2016年的“最大的[IoT]故事”:“对Dyn服务器的 IoT安全性攻击”,这个故事是我将软件安全性作为2016年软件开发人员排名第一/开发的原因之一。
CRN幻灯片显示,“ 2016年十大物联网故事”指出,“ 2016年是物联网更大的一年”,并概述了他们对2016年最大物联网故事的看法。他们今年的主要故事是受DDoS攻击损害的物联网设备 。
6.微软和开源
Linux基金会 在11月宣布 “ 微软已加入[Linux基金会](白金级会员)”在10年前是难以置信的,但鉴于微软在Windows 10上包含Ubuntu的 开源贡献 ,这在2016年并不令人惊讶, PowerShell ( Linux和Macs ), Xamarin SDK , TypeScript以及Microsoft GitHub存储库上可用的许多其他产品,库和框架。
2016年与Microsoft相关的其他公告包括在Linux上运行的SQL Server , Microsoft加入Eclipse Foundation以及发布适用于Linux的Visual Studio Code 1.0 。 微软今年还宣布了Windows Server 2016 ,该功能支持 Windows容器 (基于Docker ; 微软 与Docker建立了商业合作关系 )。 微软还为Windows提供了对React Native的支持( 通用Windows平台 )。
5.大数据
大数据在2016年仍然是“大数据”。2016年:大数据年 , 蒂姆·斯潘 ( Tim Spann)写道,“ 2016年是有趣的一年”,其中“当各种机器学习算法预测时,大数据引起了广泛关注谁可能会成为总统(并略有退缩)。” Spann还写道,在2016年,大数据经历了“工具方面的新进步,对物联网的广泛关注以及提取和处理数据的新方式。” 2016年5个领先的开发人员故事文章强调:“ 大数据的大数字在2016年变得不可忽视 。
4.云计算
在2016年,云计算仍然是热门话题。在“ 为什么选择云? 在2016年,这是新技术的诱惑 , Eric Knorr写道:“所有预先配置的令人难以置信的新功能都在云中等待着您”是2016年企业迁移到云的主要原因。Knorr谈到了云产品支持机器学习,物联网平台,无服务器计算和容器管理。 IBM博客文章《 2016年关于云的十大想法》文章指出:“ 2016年的大部分云计算新闻都集中在需求和需求的指数增长上,这种增长将持续到第二年及以后。”
与云计算和大数据相关的是雾计算的概念,该概念在2016年似乎也正在慢慢发展。
3.微服务
尽管我在整个软件开发博客圈中看到了“ Docker”,“容器”,“大数据”,“云计算”和类似术语,但我认为在这个领域中没有比“ 微服务 ”更普遍的话题了。 Bilgin Ibryam写道微服务是一种商品,并得出结论:“在微服务世界中,事物正在从未知的方向向工业化方向发展。 大多数活动并不是那么混乱,不确定和不可预测。 规划,设计和实现微服务几乎变成了无聊而乏味的活动。 而且,由于这是一项利润率很低的工业化工作,因此工具的选择以及交换这些平台的能力将发挥重要作用。”
微服务架构方法已被足够多的组织在足够长的时间内使用,以开始分享经验教训和最佳实践。 实际上,微服务背后的许多基本思想已经存在了很长时间 。 Tom Nolle在《 使用微服务框架在2016年仍然是一个挑战》一文中写道:“技术创新常常被一波又一波的宣传浪潮所阻碍,这些浪潮使高级管理层与在技术发展早期无法解决的收益要求相混淆。 微服务确实在2016年成为一种概念,并且容易受到过早的期望。” Knoll撰写了有关微服务的一些积极发展的文章,这些事有助于缓解这种情况:与私有云和容器的关联以及微服务向无状态迁移的趋势。 Knoll还撰写了关于微服务滥用的评论,这导致了对微服务的负面体验。
微服务日益普及的一些迹象包括许多公司为其产品和服务采用该术语。 其他迹象还包括众多(主要)和反对 (盲目)采用微服务的职位。 这些最近发表的帖子包括大企业如何从微服务中受益? ,微服务:对客户有利,对企业 有利 , 为什么微服务不适合所有人? , 也许要提防微服务 , 为什么要采用微服务架构 ,以及微服务 :不再只是书呆子了 。
2. Docker和容器
如果不花大力气进行验证,那感觉就像我无法浏览相关社交媒体网站(例如DZone)上的软件开发头条,而没有看到关于Docker或其他Linux容器的至少一个(并且经常还有更多)故事。 Serdar Yegulalp在InfoWorld的2016年文章:Linux容器成为主流国家时,“实际上,2016年不是容器年。 那是在2015年,当时出现了容器的可能性和希望,使IT陷入混乱。 但是,并不是每个人都想要创造性的破坏。 许多人想要可靠,可靠的基础架构,并且他们在容器中看到了一种从未有过的方法。 好消息是,尽管2016年集装箱业务发展势头强劲,但生态系统的主要部分仍开始稳定。 这种新颖性已经消失了,但是以一种很好的方式逐渐消失了–这意味着现在人们越来越关注如何正确地做容器,而不仅仅是完全做它们。”
我已经在这篇文章中写了有关Microsoft与Docker的合作关系的文章。 就在本月 ,Docker 宣布了计划将其开源“ Core Container Runtime”( 容器化 )提供给开源基金会 (改变谁控制开源项目)。 泊坞窗引擎释放在2016年包括1.13.0 , 1.12.3 , 1.12.2 , 1.12.1 , 1.12.0 ( 包括内置的业务流程 ), 1.11.1 , 1.11.0 , 1.10.3 , 1.10.2 , 1.10 .1和1.10.0 。
1.软件安全性和软件中断
我确实非常希望在最近几年( 2012年 , 2013年 , 2014年和2015年 )的软件排行榜排名第二之前,不要将它作为2016年的第一大软件开发。 不幸的是,2016年的事件使我无法将软件安全相关的问题从软件开发中排名第一的位置凸显出来。
诺顿保护博客 ( Norton Protection Blog) 刊登了2016年引起媒体关注的数据泄露事件 。 这篇文章引用并总结了一些数据泄露事件,包括2012年LinkedIn泄露事件 (2016年发布了1.17亿个敏感凭据 ), 2012年DropBox泄露事件 (2016年暴露了6800万个凭据 )以及2013年的雅虎! 违反 ( 违反了 10亿个帐户 )。 纳迪亚·科瓦克斯 ( Nadia Kovacs )在雅虎宣布 “突破十亿帐户”的帖子中说:“ 2016年似乎是'大违规'的一年,我们报道了八起涉及知名公司的重大违规事件。 大数据对于攻击者来说是一笔大钱,因此他们将目光投向那些倾向于在其客户上保存大量个人身份数据的公司。” 有趣的是,我提到的三大违规实际上是在前几年发生的,但随着2016年敏感数据的发布,发现了违规的程度。
甚至旨在帮助保护软件和数据安全的产品在2016年也暴露出了自己的漏洞。例如, 谷歌发现灾难性的赛门铁克和诺顿漏洞 ,“变得越来越糟” , 卡巴斯基内部的内核信息泄漏和多个DOS问题。 Internet Security Suite ,以及与运行Intel McAfee VirusScan Enterprise Linux版的系统相关的漏洞。
与软件安全性相关的问题在2016年美国本来已经很奇怪的总统选举中发挥了作用。 关于电子邮件处理不当的指控可能会由于在候选人自己的服务器上而变得更容易受到攻击 ,这导致联邦调查局展开调查,并在整个选举过程中困扰着候选人 。 在选举年期间,民主党全国委员会成员还窃取了敏感的 ,有时是备受好评 的电子邮件,并带有一些“ 令人不安的信息披露 ”。 也有人指控大规模窃取选票。 美国的重述文章没有发现特朗普获胜的黑客行为的证据,但揭示了漏洞状态可能没有发生,但警告说:“我们发现,黑客入侵美国总统选举比我想象的还要容易。” 也有人建议对先前的选举进行网络攻击。
最重要的是,随着9亿部手机中的Android bug恐惧之类的故事,移动电话和设备的黑客攻击继续增加。 全球范围内 ,许多最终用户受到网络中断的影响,而网络拥塞至少部分是由于被入侵的物联网(IoT)设备造成的 。 布鲁斯•施耐尔(Bruce Schneier)今年写信说, 有人正在学习如何断开互联网 。
CRN幻灯片放映2016年“十大安全故事”从第一张幻灯片开始,“每年,网络安全在业务和消费者决策中继续发挥更大的作用。 在2016年,围绕选举的新问题,围绕加密技术的公私对战和重大攻击使安全性比往年更进一步。” 该幻灯片还引用了美国总统大选 Yahoo! 漏洞以及对Dyn的分布式拒绝服务(DDoS)攻击是2016年最重要的安全案例。
Fahmida Y. Rashid在最近的InfoWorld文章中问:“开发人员真的关心安全性吗?” 我们显然需要关心。 我很想看到软件安全性不是我在2017年软件开发中的头号开发者,甚至不是我的前十名,但是我很难看到这种情况的发生 。
荣誉奖
以下内容并未进入我的前十名,但在2016年却取得了重大进展。
Apache NetBeans
Oracle已将免费提供的开源Java IDE NetBeans 移交给了Apache Software Foundation,而NetBeans现在已在Apache Incubator中 。
Java语言
对Javaslang的兴趣似乎在2016年真正开始兴起 ,至少部分原因是由于2016年Java 8的 采用增加了。Javaslang是“ Java 8+的功能库”,旨在“减少代码量”,并且增加“健壮性”。 它提供的Option比Java 8的Optional更丰富,并提供“不可变的集合以及对这些值进行操作所必需的功能和控制结构”。 一个很好的介绍Javalang可以发现欧根Paraschiv的Baeldung后介绍Javalang 。
Kotlin
针对Java虚拟机的运行时并不缺乏针对其的编程语言,其中某些语言( Scala , Groovy , Clojure , Ceylon等)似乎已经在JVM开发人员中取得成功。 没有任何经验依据,我的感觉是Kotlin可能在2016年采用率最高,覆盖面和百分比都在上升。这可能只是个观点,但JetBrains在关键软件开发网站上购买了广告,并对其员工进行了宣扬和宣传。粉丝/客户似乎为在软件开发站点(尤其是那些关注JVM的站点)上一次又一次地提到Kotlin做出了贡献。
Kotlin的主页将其描述为“针对JVM,Android和浏览器的静态类型编程语言”,“与Java可以100%互操作”。 Kotlin1.0发布于二月今年和2016年已经看到了Kotlin(后来的版本1.0.6 , 1.0.5 , 1.0.4 , 1.0.3 , 1.0.2 , 1.0.1 ,和几个1.1 里程碑版本 )。
Gradle脚本Kotlin于今年推出,并且宣布Gradle 3.0将包含Kotlin脚本支持 (请参阅状态更新 )。 作为主要构建脚本语言,Gradle从Groovy过渡到Kotlin的驱动因素似乎是 IDE更好地支持静态类型语言的能力。 Kotlin NetBeans插件也在2016年发布。
摇篮
2016年见证了Gradle 3.0的发布以及Gradle Script Kotlin的引入。 Gradle Build Scans (基于云的“ 可共享的集中式构建记录,可提供对发生的情况和原因的深入了解 ”)也在2016 Gradle Summit上 宣布为Gradle Cloud Services的第一项产品。
斯卡拉
Scala 2.12.0 (和Scala 2.12.1 )于2016年发布,Scala 2.12编译器“已全面改进,以利用Java 8中提供的新VM功能。” Scala 2.12需要JVM 8运行时,因为“ Scala 2.12就是要充分利用Java 8的新功能。” 在新的Scala Release Falls版本发布后,可以发现Scala 2.12的前景不太乐观。
EPFL的Scala中心 于2016年宣布为“ Scala的开源基金会”,“将与开源社区的开发人员合作,以努力改进语言,其工具和文档”,并且“还将帮助开发人员通过大规模的在线公开课程,研讨会和其他活动来学习语言。”
的PHP
尽管PHP 7在2015年末从技术上发布了,但到了2016年才开始大量使用PHP7。PrateekTiwari写道,PHP 7带来了“ Web开发的新革命 ”,而Zend的页面指出,“ PHP 7 推动了Web 7的发展。网络要好得多 。”
C ++
我不再积极使用C ++进行开发,但是确实发现了不时查看活跃的世界中正在发生的事情很有趣。 Bartlomiej Filipek 于2016年底发布了C ++ Status 。
开源的脆弱性
像我一样,我认识的大多数开发人员通常对开源及其带来的可能性持积极态度。 我们已经从各种各样的开源产品中受益无数次。 但是,没有什么是完美的,开源有其自身的问题。 在2016年AzerKoçulu因对kik (现在称为hek )提出商标争议后从NPM 解放了他的所有模块时,使我们回想起了这一点。 实际上是NPM取消发布左键盘引起了骚动。
围绕2016年广泛使用的FindBugs也存在争议。 在“ FindBugs失败的地方”一文中 , Nicolai Parlog写道,FindBugs的一些贡献者将该项目称为SpotBugs 。 撰写本文时, FindBugs主页上指出:“ FindBugs的当前版本为3.0.1,于2015年3月6日美国东部标准时间13:05:33发布。”
Simon Phipps的文章Uproar:MariaDB Corp.偏离了开源的话题,谈论了MariaDB通过“业务源许可证”将MaxScale从开源变为专有的。
关于这些与开源问题有关的故事的一个有趣注释是,这些问题中的每一个都已通过利用相关代码为开源的步骤得到了解决。 因为这些项目是开源的,所以社区中的其他人能够在他们不喜欢他们的指导的情况下分叉这些项目,或者在删除的代码破坏事情时替换基本代码。
StackOverflow文档
StackOverflow文档于2016年首次发布,被描述为“基于Stack Overflow原理的社区策划的,以示例为中心的开发人员文档。” 正如我在帖子中所写, StackOverflow文档会实现其崇高目标吗? ,时间会证明这是否会对StackOverflow产生的软件开发产生任何影响。
C#/。NET
.NET Core于2016年发布。 宣布.NET Core 1.0的.NET博客文章将.NET Core描述为“一个跨平台,开放源代码和模块化的.NET平台,用于创建现代的Web应用程序,微服务,库和控制台应用程序”,“可在Windows,OS上使用” X和Linux!”
明年的这个时候, C#7.0很有可能将C#排在我的十佳名单中。 即将于2016年8月发布的Visual Studio“ 15” Preview 4现在提供了即将发布的C#7.0的许多功能。2016年末,许多文章都指向C#7.0,其中包括C#7.0中的新功能 , C#7 –预期内容和C#7中的新功能 。 VisualStudio 2017也即将推出。
Python
Python 3.6.0和Python 2.7.13 于2016年末发布 。 Python存储库于2016年移至GitHub而不是GitLab。2016年有关 Python的更多详细信息可以在Dibya Chakravorty的Python年度回顾2016中找到 。 我一直不时观看关于Python 2.x和Python 3.x的辩论,以尝试从打破向后兼容性的课程中吸取教训,并在Chakravorty的帖子中发现有趣的是,以下内容表明:“ Python 2和3之间的辩论永无止境,但PSF 宣布Python 2.7将在2020年寿终正寝 。”
响应式网页设计
“ 响应式网页设计 ”的概念已经存在了一段时间 ,但在2016年似乎获得了更大的吸引力,这可能部分是由于Google努力使用和传播它。 尽管2013年被宣布为响应式Web设计之年 ,但自那以后的几年似乎仍将其视为处理多种类型客户的流行概念。
渐进式Web应用
Google对渐进式Web应用程序有很多讨论。 文章的作者什么是渐进式Web应用程序? 在这篇文章的开头仅略微夸张地说:“到现在为止,您可能已经听说Progressive Web Apps是全人类的未来。 他们将带来世界和平,消除饥饿,拯救彩虹和独角兽,为力量带来平衡,以及更多。 在此过程中,他们甚至可以推动移动网络向前发展,为Web和本地应用程序带来平价,并帮助移动开发人员扩大应用商店范围之外的更多用户。” 同一篇文章进一步阐明了渐进式Web应用程序,“总体上,渐进式Web应用程序描述了一系列技术,设计概念和Web API的集合,这些技术,设计和Web API协同工作以在移动Web上提供类似应用程序的体验。”
“ 渐进式Web应用程序 ”一词创建于2015年,并在2016年Swift引起了Web应用程序开发社区的兴奋 。
JavaScript
JavaScript仍然是一种广泛使用的语言,这在很大程度上是因为JavaScript能够在Web浏览器(和移动设备)以及服务器上运行。 Craig Buckler在《 JavaScript:2016年回顾 》一文中写道,并得出结论:“与最新趋势,框架和建议并驾齐驱变得越来越困难。 面对众多可供选择的评估方案时,开发人员会感到挣扎。 我的建议: 不要试图跟上 。 不可能。 无论您今天投注哪种系统,明天都会更好。 ……只有一个绝对的确定性:JavaScript本身。 首先学习语言,并继续积累您的知识。 您的经验将帮助您了解每个框架的运作方式,以便您做出明智的选择。 这种选择可能是完全放弃框架。” 这句话告诉我们JavaScript已经走了多远 。 多年前开始使用JavaScript时,我要做的最后一件事是在没有框架的情况下使用它来隐藏浏览器DOM的所有特质和角落。
JS基金会
JS基金会成立于2016年,是一个Linux基金会项目, “旨在推动关键JavaScript解决方案和相关技术的广泛采用和持续开发。” 在重塑品牌的示例中(有关2016年其他重塑品牌的努力,请参见以下项目), JS Foundation是由jQuery Foundation创建的 。
React和React Native
尽管像Java和其他编程语言一样,JavaScript似乎拥有无数的框架,但在我看来,React是不算Angular时在JavaScript社区中获得最多关注的框架。 就GitHub上的星级评价而言, facebook / react项目目前在angular / angular.js上的优势很小。
今年四月,Facebook上发布了React Native: “自[Facebook]开源React Native以来一年的回顾 ”。 Facebook开放源码2016年回顾是为了庆祝React和Native React的Swift采用。
2016年12月, Oculus Connect 3引入了基于React和React Native的“ React VR Pre-Release ”。
软件开发工具公司的品牌重塑
对于许多软件开发工具制造商而言,2016年似乎又是品牌重塑的一年,并且延续了2015年以来的趋势 :
- JetBrains在2015年末更名 :“发展动力”
- TypeSafe成为Lightbend
- 塔基皮成为OverOps
- Mozilla的品牌“无墙 ”(将在2017年1月宣布对新品牌进行公开更名)
- 木偶重塑
结论
2016年的软件开发世界发生了很多事情。在本文中,我研究了这些开发的一小部分。 我可能会在接下来的一两周内增加一些荣誉提名项目,但希望在2016年发布。
翻译自: https://www.javacodegeeks/2017/01/significant-software-development-developments-2016.html
更多推荐
2016年重要的软件开发发展
发布评论