infoq_InfoQ的2019年以及2020年的软件预测
infoq
重要要点
- 上个月,谷歌声称已经实现了量子至上的地位-证明量子计算机这一步骤的名称可以提供传统计算机无法提供的东西。 这种说法是有争议的,而且可能还证明我们需要更好的示范,但它仍然感觉像是一个重要的里程碑。
- 今年令人惊讶的是,至少在基于智能手机的VR中,人们对虚拟现实的兴趣下降了。 尽管如此,我们仍然认为AR / VR领域中的某些事物或其他形式的替代计算机/人机交互可能会在未来几年内投放市场,并获得巨大的吸引力。
- 我们希望看到人们对Web Assembly的兴趣继续存在,并希望它的工具能够开始成熟。
- 在我们的DevOps和Cloud趋势报告中,我们注意到Kubernetes有效地垄断了容器编排市场,并且可以说已经成为不可知论的计算抽象。 该空间中的下一个“热门话题”似乎是“服务网格”和开发人员经验/工作流程工具。
- 我们期待看到在微服务和功能(即服务)等架构模式的上下文中,开源社区和供应商在可理解性,可观察性和可调试性领域中正在做什么。
回顾2019年,量子计算领域发布了一些重要公告。 今年5月,IBM在《自然》杂志上发表了一篇论文,暗示他们可能已经找到解决当前量子计算机中去相干性的方法。 InfoQ的作者Sergio De Simone 指出 :
“退相干的主要问题是波函数的快速衰减,它具有在很短的时间段后产生噪声和误差的不良影响。本文提出了两种方法,一种称为概率误差校正,另一种是零噪声外推,保持退相干得到控制。”
去年9月, 谷歌还通过《自然》杂志上的一篇论文宣布 ,它制造了一台实现量子至上的机器-量子计算机可以解决经典计算机实际上无法解决的问题。 IBM对此说法提出异议,并且Google成就的实际应用仍然受到限制,但是这两个声明都显示了该领域的实际进展。
今年令人惊讶的是,至少在基于智能手机的VR中,人们对虚拟现实的兴趣下降了 。 塞尔吉奥笔记:
“ Google停止支持Daydream VR耳机的决定似乎标志着基于电话的虚拟现实的终结,这一愿景试图将智能手机的使用与“哑” VR耳机相结合,以将VR体验带给大众。Google的决定伴随着经过两年的成功试验,BBC解散了其VR内容团队。”
发展历程
Java
JavaScript,Java和C#仍然是我们涵盖的最受欢迎的语言,但是我们也对Rust,Swift和Go表现出了浓厚的兴趣,我们与Bryan Cantrill的播客就“ Rust和他为什么感觉这是系统开发中最大的变化” “他的职业生涯 ”中的“是我们今年发布的效果最好的播客之一。 今年,我们也看到了对Python的日益增长的兴趣,这可能是由于它在机器学习任务中的普及所推动的。
在经历了一个动荡的2018年之后,Java似乎已经进入了其两年一次的发布周期。 根据我们最近进行的读者调查,Java是InfoQ读者中使用最多的语言,并且对更新的语言功能以及语言的发展方式一直存在着极大的兴趣。 我们还继续看到对Kotlin的浓厚兴趣和日益增长的兴趣。
看到微软越来越多地参与Java, 加入OpenJDK ,收购JClarity以及雇用其他知名人物(包括Monica Beckwith) , 真是有趣 。
我们与Rod Johnson的播客聊天,他谈论了Spring框架的早期,Java后语言以及重新思考CI / CD,这是今年我们表现最好的播客之一。
Matt Raible的JHipster书籍 (现在已是第5版)是我们一年中下载次数最多的书籍之一。
在Java编程语言趋势报告中 ,我们注意到对非Hotspot JVM的采用有所增加,而且我们认为OpenJ9现在处于早期采用阶段。 当时我们注意到:
“我们相信,在所有类型的组织中,越来越多的采用云技术正在推动对JRE的要求,这些JRE包含相关的“云原生”原则,例如启动时间短,内存占用少。Graal本身并不过分有趣的是,但是将Java应用程序编译为本地二进制文件的能力与多语种语言的支持相结合,可以确保我们密切关注这个项目。”
自报告发布以来,我们认为GraalVM具有巨大的潜力,并将继续关注其进展。
今年,我们在Java上表现最好的内容包括:
- Trisha Gee 从Java 8升级到Java 12
- Ron Pressler 为何将延续性引入Java
- Mohamed Taman撰写的Java SE 12 Extended Switch语句/表达完整指南
- Kotlin:编写一次,然后到处运行(实际上) ,作者Jake Wharton
- Ben Evans初探Java内联类
尽管并没有在前五名中名列前茅,但值得一提的是Brian Goetz的精彩文章“ Java Feature Spotlight”(Java功能聚焦)文章“ Local Variable Type Inference” 。
。净
9月发布的.NET Core 3在InfoQ上引起了极大的轰动,并产生了本年度一些最受欢迎的.NET内容。 WebAssembly是另一个引起人们极大兴趣的领域,我们看到了对Blazor的相应兴趣激增,Blazor是ASP.NET Core中的新框架,允许开发人员使用C#和HTML创建交互式Web应用程序。 Blazor有多种版本,包括Blazor WebAssembly,它允许使用基于WebAssembly的.NET运行时在客户端的Web浏览器中运行单页应用程序。
根据我们最近的读者调查,C#是InfoQ读者中仅次于Java的第二广泛使用的语言,尤其是对C#8的兴趣也很浓。
我们最出色的.NET内容包括:
- 再见客户端JavaScript, Ed Charbeneau的Hello C#的 Blazor
- Shawn Wildermuth的单页应用程序和ASP.NET Core 3.0
- .NET Core: Arthur Casals的过去,现在和未来
- Blazor:具有.NET Core 3.0的客户端Web UI,作者Arthur Casals
- C#8: Jonathan Allen 对新关键字的类型推断
Jonathan Allen在清单中的文章是Jonathan Allen在2019年为InfoQ写的一系列优秀文章和新闻文章的一部分。
Web开发
毫不奇怪,大多数InfoQ读者至少写了一些JavaScript(根据最近的读者调查,大约占70%),使其成为我们读者中使用最广泛的语言。 目前,InfoQ读者的主要JavaScript框架似乎是Vue和React。 我们还看到了通过TensorFlow.js将Javascript用于机器学习的兴趣。 除了JavaScript之外,我们还看到了对某些编译器选项的浓厚兴趣。 除了上面提到的Blazor,我们还对Web Assembly,Typescript,Elm和Svelte产生了浓厚的兴趣。
表现最佳的内容包括:
- Deepak Vohra 将TypeScript与MySQL数据库配合使用
- Bruno Couriol 将Google Earth移植到具有WebAssembly的浏览器中
- Vue 2 vs.Vue 3:Vue格拉斯哥聚会上的James Stewart, Bruno Couriol
- 挪威最大的运输服务提供商布鲁诺·库里奥尔(Bruno Couriol)改写了83,000条榆树线的网站
- Ilango Rajagopal 如何将React App的加载时间减少60%
建筑
毫无疑问,分布式计算,尤其是微服务架构风格,仍然是我们新闻和专题内容的重要组成部分。 我们对相关主题怀有浓厚的兴趣,其中包括我们最初的《 域驱动设计快速入门》一书,以及我们最近的eMag“ 实践中的域驱动设计 ”继续表现特别出色,并对诸如可观察性和分布式跟踪之类的主题感兴趣。 我们还看到了对测试分布式系统的方法的兴趣,其中包括来自Chaos Engineering eMag的强大性能,以及使读者对某些核心架构主题(例如API设计,图表,模式和模型)的兴趣重新出现。
我们最出色的架构内容是:
- 为什么我们需要建筑图? 由Ionut Balosin
- Wojciech Bulaty和Liam Williams撰写的关于“测试微服务”的三部分系列( 第1 部分 , 第2 部分 , 第3部分 )。
- 曾荫权通过Istio和Kubernetes降低微服务架构的复杂性
- Netflix Play API:构建演进式架构作者:Daniel Bryant
- 无服务器时代的Kubernetes工作负载:架构,平台和趋势作者Bilgin Ibryam
人工智能,机器学习和数据工程
我们与Grady Booch的播客有关当今人工智能的现实以及对开发人员的意义是我们一年中最受欢迎的播客之一,并引起了InfoQ读者对该主题的浓厚兴趣。
2019年的主要AI故事是MIT引入了GEN (一种基于Julia的人工智能语言),谷歌正在进行的ML Kit研究,围绕对话界面的讨论以及流媒体等更成熟的话题。
它与此处列出的其余部分略有正交,但我们还应提及Jason Skowronski撰写的“ Postgres处理的内容超出您的想像 ”,它表现出色。
我们在AI和ML方面表现最好的内容是:
- 谷歌宣布推出 Anthony Alford的TensorFlow图形库,用于无监督的计算机视觉模型深度学习
- Google推出AI平台-构建,运行和管理ML项目的端到端平台,作者Abhishek Kaushik
- Alex Petrov的现代存储系统背后的算法
- Roshan Kumar 使用Redis流和Apache Spark结构化流进行实时数据处理
- 使用 Kathrin Melcher和Rosaria Silipo的随机森林,神经自动编码器和隔离森林技术进行欺诈检测
文化与方法
如果今年我们的文化和方法覆盖面有一个总体主题,最好将其总结为“敏捷做错了”,我们的许多项目都集中在敏捷问题上,和/或回到敏捷宣言中概述的原则。 。
我们还看到了一些大型敏捷方法学的兴趣,尤其是Scrum,其“书刊上的Scrum和XP ”以及“ 看板和Scrum-充分利用两者 ”在我们的图书部门中表现良好。
我们还看到了读者对与Judy Rees的eMag进行远程会议 “ 掌握远程会议 ”及其对应的播客的良好兴趣,以及我今年Aginext关于“ 远程工作和管理远程团队 ”的演讲。
我们最受欢迎的文化和方法出版内容是:
- Mo Hagar 也许敏捷是问题
- Lemi Orhan Ergin 如何在软件开发中放慢脚步,超越以往
- 敏捷之死与超越 Mynul Chowdhuri
- 简洁,请 -Paul Merlyn的软件开发宣言
- 迷你书: 了解敏捷价值和原则。 斯科特·邓肯(Scott Duncan) 对敏捷宣言的考察
我们表现最好的文化播客是:
- Lynne Cazaly拥抱“ ish”和完美主义的危险
- Ivar Jacobson谈软件的本质
- 杰夫·德卢卡(Jeff DeLuca)谈FDD和将大型组织转变为产品思维
- 杰里米·克里格(Jeremy Kriegel)谈“设计创新”,而Doc诺顿(Doc Norton)谈“为什么塔克曼错了”
- Deborah Hartmann Preuss创建快乐的工作场所
DevOps和Cloud
在我们的DevOps和Cloud趋势报告中 ,我们注意到Kubernetes有效地垄断了容器编排市场,并且可以说已经成为不可知论的计算抽象。 该空间中的下一个“热门话题”似乎是“服务网格”和开发人员经验/工作流程工具。 我们继续看到InfoQ的读者对所有您都有浓厚的兴趣。
我们也开始注意到的趋势是,许多基础架构或面向云的语言。 在我们的《 编程语言趋势》报告中 ,我们注意到与基础架构感知或特定于云的语言,DSL和SDK(如Ballerina和Pulumi)相关的兴趣和创新不断增长。 在这种情况下,我们还应该提及Dark ,这是一种目前仍处于私测中的新语言,但已经引起了人们的极大兴趣。 在某种程度上,我们还应该提到由Tangosol创始人Cameron Purdy和Gene Gleyzer共同创建的迷魂药。 DXC Technology全球交付首席技术官Chris Swan向Cameron Purdy谈到了该语言及其旨在解决的问题。
在eMags部门中,“ Kubernetes:过去,现在和未来 ”和“ DevSecOps实践 ”是我们的佼佼者 :
- Airbnb如何简化1000多名工程师的Kubernetes工作流程
- 2019年的容器:他们称其为[管理程序]卷土重来,由Phil Estes撰写
- Google发布混合云平台Anthos, Steef-Jan Wiggers正式发布
- 无服务器时代的Kubernetes工作负载:架构,平台和趋势作者Bilgin Ibryam
- AWS Cloud Development Kit(CDK)通常可用,可增强 Steef-Jan Wiggers的编码云基础架构
2020年软件预测
众所周知,很难在软件中进行预测,但是随着Kubernetes的继续采用,我们希望看到企业开发团队巩固他们在云平台方面的选择。 通常,这将集中于“五大”云提供商-亚马逊,谷歌,IBM(加上Red Hat),微软和VMware(加上Pivotal)。 我们认为,在中国以外,阿里巴巴,Oracle,Salesforce和SAP都将难以获得吸引力。
在平台/运营领域,我们期望服务网格将与基础业务流程框架(例如Kubernetes)更加集成。 我们也希望与服务网格进行交互的开发人员工作流能够与当前的工作流,技术和管道更加集成。
最终,开发人员应该能够通过相同的连续/渐进式交付管道来控制部署,发布和调试。 例如,使用“ GitOps”样式的管道通过配置k8s YAML(或某些更高级别的抽象)来部署服务,通过配置某些流量管理k8s自定义资源,使用诸如金丝雀或影子之类的技术来控制新功能的发布定义(CRD)YAML,并通过一些其他CRD配置启用其他日志记录或调试工具。
在架构方面,明年有望成为“管理复杂性”的一年。 诸如微服务和功能(即服务)之类的架构模式使开发人员能够更好地分离关注点,通过独立的隔离部署实现可变的变化率,并最终更有效地进行大规模工作。 但是,我们了解我们正在构建的复杂分布式系统的能力以及相关工具的可用性,未能跟上这些发展的步伐。 我们期待看到开放源社区和供应商在可理解性,可观察性和可调试性方面正在做什么。
我们希望看到更多的开发人员尝试使用“低代码”平台。 微软对其PowerApps,Flow,Power BI和Power Platform产品的重新推动,在一定程度上推动了这一点。
在.NET生态系统中,我们相信Blazor将继续在Web开发人员中获得发展动力。 .NET 5还应通过与Java,Objective-C和Swift的互操作性,为生态系统带来重大变化。 尽管还为时尚早,但微软最近在IoT和AI(使用ML.NET)方面的努力也应该有助于引起人们对.NET开发的兴趣。 相关的我们希望看到人们对Web Assembly的兴趣继续存在,并希望工具的声音将开始成熟。
尽管今年关于VR的负面消息不多,但我们仍然认为,AR / VR领域中的某些事物或其他形式的替代计算机/人机交互技术可能会在未来几年内投放市场,并获得巨大的吸引力。看来确实还没有真正实现这一目标。
本文是我们2019/2020年趋势概述的一部分 。 这些见解来自我们的编辑团队,他们都是软件工程师,他们在职业生涯中不断推陈出新。 阅读并反思他们的见解,以激发您的2020年技术愿景和路线图。
关于编辑
于2014年3月接任InfoQ.com的主编,指导我们的内容创建,包括新闻,文章,书籍,视频演示和采访。 在InfoQ担任专职之前,Charles领导Java事务,并担任薪酬研究公司PRPi Consulting的首席技术官,该公司于2012年7月被普华永道(PwC)收购。对于PRPi,他全面负责所有业务的开发。公司内部使用的自定义软件。 他在企业软件领域工作了大约20年,担任过开发人员,架构师和开发经理。 在业余时间里,他为伦敦环境技术乐团Twofish的1/3创作音乐,Twofish在经历了14年的昂贵玩具纠缠后于2014年2月发行了首张专辑,并花了尽可能多的时间陪伴妻子和妻子。年轻的家庭。
是具有丰富Java经验的软件安全专家。 他负责管理Contrast Security和Public Community Edition的开发人员关系。 对比将传感器编织到应用程序中,使它们能够根据应用程序如何使用其数据来检测安全威胁。 Erik是Oracle的首席产品经理,专注于Java 8的安全性,在受到黑客攻击的高度加入,并在两年没有出现零日漏洞之后退出。 在此期间,他在公司/商业和社区级别学习了Java的详细信息。 他还协助Turbonomic的产品管理团队在数据中心/云性能自动化方面实现了1亿美元的年收入。 Erik还负责Fortify静态代码分析器的产品管理,该工具可帮助开发人员查找和修复自定义源代码中的漏洞。 Erik还通过Packt Publishing发布了一些有关数据分析,统计和密码学的开发人员课程。
是在人工智能/多智能体系统领域工作的计算机科学研究员。 他在不同的市场/行业从事软件开发已经20多年了。 Arthur在过去也曾担任过不同的角色:初创公司创始人,CTO,技术经理,软件工程师。 他拥有理学学士学位。 计算机工程学位和MBA学位。
在Datawire担任独立技术顾问和产品架构师。 他的技术专长集中于“ DevOps”工具,云/容器平台和微服务实现。 Daniel是Java冠军,并且为多个开源项目做出了贡献。 他还为InfoQ,O'Reilly和TheNewStack撰写文章,并定期在OSCON,QCon和JavaOne等国际会议上发表演讲。 在他的大量业余时间中,他喜欢跑步,读书和旅行。
持有欧洲工商管理学院(INSEAD)的电信理学硕士学位,数学理学学士学位和MBA学位。 他的大部分职业生涯都是作为业务顾问工作,帮助大型公司解决其关键的战略,组织和技术问题。 在过去的几年中,他专注于业务,技术和企业家精神的交集。
是位于荷兰的敏捷,精益,质量和持续改进的独立顾问。 作者:《从敏捷回顾中获取价值》,《 Waardevolle敏捷回顾》,《推动质量的因素》,《敏捷自我评估游戏》和《持续改进》。 作为顾问,教练和培训师,他通过部署有效的软件开发和管理实践来帮助组织。 他致力于持续改进,协作和沟通以及专业发展,以为客户提供业务价值。 Ben是敏捷,精益和质量网络的活跃成员,并且经常演讲和写作。 他在双语博客(荷兰语和英语)中分享了他的经验,并在InfoQ担任敏捷编辑。 在Twitter上关注他:@BenLinders。
是ICAgile社区发展总监,ICAgile是致力于改善敏捷学习状态的全球认证和认证机构。 自2000年首次使用XP以来,Shane一直热衷于帮助组织和团队采用可持续的,人性化的工作方式-无论他们使用的品牌或标签如何。 Shane在2011年至2016年期间担任敏捷联盟的总监。Shane领导InfoQ.com的文化与方法编辑团队
infoq