2020 Software Development Trends

Infrastructure: eventually the cloud

Cloud services are now becoming increasingly popular, and not just in the start-up companies using cloud services, even some very conservative company, and some of the very great importance of the security companies are beginning to cloud a cloud on the momentum of 2020 will be more violent, each the volume of seed companies, types of companies will migrate to the cloud.

Containerized: Kubernetes will cool

In the field of container arrangement, including the protagonist Kubernetes, Docker Swarm, Mesos.

Kubernetes present obvious advantages, the growth momentum.

The cloud is a distributed environment, and Kubernetes operating system (distributed Linux).

In 2020 Kubernetes will be more powerful, will become the spine cloud environments.

Software architecture: micro-services into the mainstream

This is Google's statistics service micro trends.

Rapid heating of the main reasons is its micro service is ideal for cloud environments and rapid development features.

Development: Python will engulf the world

Machine learning, data analysis, data processing, web development, enterprise development ......, Python everywhere.

TIOBE statistics showed that: Python has become Java, the third largest after the popular language C.

And the growth momentum is quite fierce, 2019 rose to 10% from 5%.

In 2020 Python will continue to develop rapidly, narrowing the gap with Java and C's.

Why Python soaring? Mainly because of low learning curve, there is a very good community, is like science data.

Enterprise Development: Java and the JVM is king

From the above picture is TIOBE has seen the dominance of Java.

JVM runtime environment has become a lot of languages, such as Kotlin, Scala, Clojure, Groovy.

Oracle Java on the charges, but fortunately there is support for OpenJDK us free, many companies will provide enterprise-class.

Due to the size and speed, JVM language not suitable for today's Serverless mode, but in the enterprise-class stability and the level of trust, there is no better alternative than Java, java will remain so for several years ahead.

Java Enterprise Development: Spring

曾经 Spring 与 JavaEE 有着激烈的竞争,目前 Spring 完胜,因为其开发方式更加积极、对环境的变化响应更快。

2020年 spring 仍是 no. 1 的框架。

目前有2个正在开发的项目,极具吸引力,使Java更小、更灵活,从而使Java成为 Serverless 的一个好的选择。

他们是:Micronaut 和 Quarkus。

开发:Rust, Swift, Kotlin, TypeScript 会有一个突破

曾经很多人认为不再需要新的语言了,Java, C, C++, JavaScript, Python 已经足够满足所有的需求了。

然而很多有趣的语言出现了,例如 Rust, Swift, Kotlin, TypeScript。

原因是之前的主流语言对新的硬件特性不能很好的利用,例如多核、更快的网络、云环境。

还有一个因素在于这些现代的语言更加关注开发者的体验,可以更快更简单的开发。

这是开发者喜爱的语言调查结果。

最近,微软和亚马逊都对 Rust 很感兴趣,会提供支持和赞助。

Kotlin 也成为了 Java 的有利竞争者,Google 在 Android 中对 Kotlin 进行了官方支持。

Angular 使用 TypeScript 作为其主要的开发语言,替代了原始的 JavaScript。

React 和 Vue 也都开始支持 TypeScript。

Web:JavaScript 继续主导

以前,前端开发是在后端框架中完成的,例如 JSF, Ruby on Rails, Django, Laravel,然后在服务端渲染出来。

2014年被 AngularJS 改变了,之后大量优秀的web框架出现了,例如 Angular 2+, React, Vue.js, Meteor.js。

JavaScript 框架领域的创新性极强,而且随着微服务架构的升温,JavaScript 框架会继续主导前端开发领域。

JavaScript Web 框架:React 领先

React 带来了很多新鲜的创新的前端开发思想,例如事件源、虚拟DOM、单向数据绑定、基于组件的开发等等。

Google 从中吸取了经验,废除了 AngularJS,重新开发了 Angular2+。

Angular 也是一个坚实的框架,尤其是在企业开发中,Google 仍将继续大力支持。

Vue 也是非常优秀的,被很多机构和社区支持。

APP 跨平台混合开发:React Native

这个领域已经有很多选择,例如:Xamarin、Ionic、React Native、Flutter。

Facebook 基于成熟的 React 框架开发的 React Native 取得了高度成功。

Google 推出了 Flutter,提供了更好的性能,但是,需要使用非主流语言 Dart。

2020年 React Native 会继续主导此领域。

API:REST

这个领域除了传统的 REST,也有其他选择,Google 的 gRPC,和 Facebook 的 GraphQL。

gRPC 是 Google 开发的强大的远程方法调用技术,使用 Protobuf 替代了 JSON 作为消息格式。

Facebook 开发的 GraphQL 用作聚合层,避免了频繁的 REST 调用。

2020年,REST 依旧是 API 的主导,gRPC 和 GraphQL 提供辅助功能。

数据库:SQL 主导,分布式 SQL 崛起

曾经很多人大炒 NoSQL,说 NoSQL 比 SQL 更好,将替代 SQL,但现在,大家都意识到离不开SQL。

数据库排行榜:

top 4 都是 SQL 数据库,这是因为 SQL 提供了稳定的 ACID 事务保障,这是很多商业应用所需要的。

NoSQL 数据库提供了水平扩展能力,但忽略了 ACID。

SQL 的 ACID、NoSQL 的水平扩展,都是我们需要的,所以 NewSQL 兴起了,也就是 Distributed SQL。

大数据计算:Spark 继续闪耀

Spark 已经替代了 Hadoop 成为企业分布式批处理的王者。

Spark 瞄准了 Hadoop Map-Reduce 的弱点,例如用内存处理代替高成本的落盘操作。

Spark 也有明显的不足,对 CPU 和内存的耗费很高,在云环境中,账单较大。

很多公司希望能有新的框架能减少他们的账单,但很可惜,现在还没有。

以前实时流处理是不可能的,Spark Streaming 通过微型批处理提供了近似实时的流处理能力。

Apache Flink 改变了世界,提供了实时流处理能力。

直到 2019,Flink 还没有竞争过 Spark,但阿里扭转了局势。

2020,Flink 将成为实时处理领域的第一选择。

Flink 的不足与 Spark 一样,极其消耗资源,企业的成本较高。

字节码:WebAssembly 会开始大量应用

JavaScript 最大的限制就是,还有就是单线程,无法利用现在硬件的优势,例如多核、GPU。

所以,很多计算密集型的应用,例如游戏、3D图形,就无法运行在浏览器上。

Mozilla 主导开发了 WebAssembly,是服务于浏览器的底层字节码格式,可以支持其他开发语言运行与Web,例如当前已经支持 C++, Rust。

翻译整理自:

https://towardsdatascience.com/20-predictions-about-software-development-trends-in-2020-afb8b110d9a0

推荐阅读:

Guess you like

Origin www.cnblogs.com/yogoup/p/12114176.html