如今云服务愈来愈普及了,不光是创业公司在使用云服务,连一些很保守的公司,和一些对很重视安全的公司都开始上云了,2020年上云的势头将更猛,各类体积的公司、各类类型的公司都会向云迁移。前端
在容器编排领域,主角包括 Kubernetes, Docker Swarm, Mesos。java
Kubernetes 目前的优点很明显,增加势头强劲。web
云是分布式环境,而 Kubernetes 是操做系统(分布式的 Linux)。spring
2020年 Kubernetes 会更增强大,将成为云环境的脊柱。数据库
这是 Google 统计的微服务趋势图。后端
微服务的快速升温的主要缘由是其很是适合云环境和快速开发的特性。浏览器
机器学习、数据分析、数据处理、web 开发、企业级开发 ……,Python 无处不在。安全
TIOBE 统计结果显示:Python 已经成为 Java、C 以后的第3大受欢迎语言。网络
并且增加势头至关猛,2019年从 5% 涨到了 10%。架构
2020年 Python 会继续快速发展,缩小与Java和C的差距。
Python 为啥飙升?主要是由于学习门槛低,有很是优秀的社区,被数据科学领域喜欢。
从上面 TIOBE 那张图中已经看到 Java 的主导地位。
JVM 已经成为不少语言的运行环境,例如 Kotlin, Scala, Clojure, Groovy。
Oracle 对 Java 收费了,但幸亏还有 OpenJDK 供咱们无偿使用,不少公司会提供企业级的支持。
因为大小和速度的缘由,JVM 语言不适合现在的 Serverless 模式,但目前在企业级稳定性和信任程度上,尚未比 Java 更好的替代者,因此几年内 java 仍将领先。
曾经 Spring 与 JavaEE 有着激烈的竞争,目前 Spring 完胜,由于其开发方式更加积极、对环境的变化响应更快。
2020年 spring 还是 no. 1 的框架。
目前有2个正在开发的项目,极具吸引力,使Java更小、更灵活,从而使Java成为 Serverless 的一个好的选择。
他们是:Micronaut 和 Quarkus。
曾经不少人认为再也不须要新的语言了,Java, C, C++, JavaScript, Python 已经足够知足全部的需求了。
然而不少有趣的语言出现了,例如 Rust, Swift, Kotlin, TypeScript。
缘由是以前的主流语言对新的硬件特性不能很好的利用,例如多核、更快的网络、云环境。
还有一个因素在于这些现代的语言更加关注开发者的体验,能够更快更简单的开发。
这是开发者喜好的语言调查结果。
最近,微软和亚马逊都对 Rust 很感兴趣,会提供支持和赞助。
Kotlin 也成为了 Java 的有利竞争者,Google 在 Android 中对 Kotlin 进行了官方支持。
Angular 使用 TypeScript 做为其主要的开发语言,替代了原始的 JavaScript。
React 和 Vue 也都开始支持 TypeScript。
之前,前端开发是在后端框架中完成的,例如 JSF, Ruby on Rails, Django, Laravel,而后在服务端渲染出来。
2014年被 AngularJS 改变了,以后大量优秀的web框架出现了,例如 Angular 2+, React, Vue.js, Meteor.js。
JavaScript 框架领域的创新性极强,并且随着微服务架构的升温,JavaScript 框架会继续主导前端开发领域。
React 带来了不少新鲜的创新的前端开发思想,例如事件源、虚拟DOM、单向数据绑定、基于组件的开发等等。
Google 从中吸收了经验,废除了 AngularJS,从新开发了 Angular2+。
Angular 也是一个坚实的框架,尤为是在企业开发中,Google 仍将继续大力支持。
Vue 也是很是优秀的,被不少机构和社区支持。
这个领域已经有不少选择,例如:Xamarin、Ionic、React Native、Flutter。
Facebook 基于成熟的 React 框架开发的 React Native 取得了高度成功。
Google 推出了 Flutter,提供了更好的性能,可是,须要使用非主流语言 Dart。
2020年 React Native 会继续主导此领域。
这个领域除了传统的 REST,也有其余选择,Google 的 gRPC,和 Facebook 的 GraphQL。
gRPC 是 Google 开发的强大的远程方法调用技术,使用 Protobuf 替代了 JSON 做为消息格式。
Facebook 开发的 GraphQL 用做聚合层,避免了频繁的 REST 调用。
2020年,REST 依旧是 API 的主导,gRPC 和 GraphQL 提供辅助功能。
曾经不少人大炒 NoSQL,说 NoSQL 比 SQL 更好,将替代 SQL,但如今,你们都意识到离不开SQL。
数据库排行榜:
top 4 都是 SQL 数据库,这是由于 SQL 提供了稳定的 ACID 事务保障,这是不少商业应用所须要的。
NoSQL 数据库提供了水平扩展能力,但忽略了 ACID。
SQL 的 ACID、NoSQL 的水平扩展,都是咱们须要的,因此 NewSQL 兴起了,也就是 Distributed SQL。
Spark 已经替代了 Hadoop 成为企业分布式批处理的王者。
Spark 瞄准了 Hadoop Map-Reduce 的弱点,例如用内存处理代替高成本的落盘操做。
Spark 也有明显的不足,对 CPU 和内存的耗费很高,在云环境中,帐单较大。
不少公司但愿能有新的框架能减小他们的帐单,但很惋惜,如今尚未。
之前实时流处理是不可能的,Spark Streaming 经过微型批处理提供了近似实时的流处理能力。
Apache Flink 改变了世界,提供了实时流处理能力。
直到 2019,Flink 尚未竞争过 Spark,但阿里扭转了局势。
2020,Flink 将成为实时处理领域的第一选择。
Flink 的不足与 Spark 同样,极其消耗资源,企业的成本较高。
JavaScript 最大的限制就是慢,还有就是单线程,没法利用如今硬件的优点,例如多核、GPU。
因此,不少计算密集型的应用,例如游戏、3D图形,就没法运行在浏览器上。
Mozilla 主导开发了 WebAssembly,是服务于浏览器的底层字节码格式,能够支持其余开发语言运行与Web,例如当前已经支持 C++, Rust。
翻译整理自:
https://towardsdatascience.co...
推荐阅读: