2020 年最火的技术预测
关于 2020 年前端最火的技术,我将从编程语言、移动开发技术、科技趋势这三个角度进行预测:
2020 最火的编程语言
如果说 2020 之前最火的编程语言,非 Python 和 JavaScript 莫属,这是两门非常有影响力的编程语言,二者都被用于打造跨平台 Web 应用。作为脚本语言,Python 和 JavaScript 有很多共同的特性,比如都需要解释器来运行、都是动态类型、都支持自动内存管理、都可以调用 eval ()来执行脚本等等。
但是俗话说:长江后浪推前浪,青出于蓝胜于蓝。2020 年,我大胆预测以下编程语言或许会在不同领域,对 Python 和 JavaScript 发起挑战。
1.Dart
由于 Flutter 框架和 Google 的认可,这门语言得以迅速流行。Dart 使用了与 Ruby 相似的后台驱动:Rails 框架。 未来,如果 Google 的新操作系统 Fuchsia 取得成功的话,Dart 势必会成为核心。
- 主要优势:它是一种比 JavaScript 更优秀的编程语言。
- 主要劣势:它将面对来自 JavaScript 及其衍生群体的对抗。
2.Elixir
Elixir 是 Erlang 的派生语言,具备与 Erlang 相同的、惊人的并发性支持。作为一种纯函数式语言,它很有可能将这一范式提升为主流。
- 主要优势:它使函数式编程变得异常简单,非常适合高并发。
- 主要劣势:用户需要提前了解全部一次性可编程基础知识,这可能是一项艰巨的任务。
3.Golang
Golang,得益于其闪电般的编译速度、简单高效的并发性以及卓越的简单性。唯一缺少的就是泛型,不过,这个特性已经出现在其 2020 年的路线图上了。
- 主要优点:超级简单,对并发性支持非常好。
- 主要缺点:它(目前)缺少泛型。
4.Julia
Julia 的优势在于它对数学计算的出色支持。数学友好的语法对数学家来说非常有用。如果有哪种语言可以推翻 Python,那么 Julia 肯定是一个有力的竞争者。
- 主要优点:这门语言是为科学家精心设计的。
- 主要缺点:这门语言面临数据科学之王 Python 的挑战。
5.Kotlin
Kotlin 可以看做是一种更先进的 Java。事实上,它实际上就是 Java 的一个可以立即使用的替代品。Google 已经将其打造成 Android 开发的主流语言。
- 主要优点:它是一种升级版的 Java。
- 主要缺点:它是一种非常庞大的语言,即使与 Java 相比也是如此。
6.Lua
- 主要优点:Lua 是一种小巧、简单、快速、可嵌入、可移植的灵活的语言。
- 主要缺点:Lua 是一种小巧、简单、快速、可嵌入、可移植的灵活的语言。(容易被人忽视)
7.Pharo
Pharo 是 Smalltalk 的现代变体,Smalltalk 是一种非常高效的面向对象编程语言。作为世界上最简单、最优雅的语言之一,你可以在 15 分钟内学会 Smalltalk 的全部语法!
- 主要优点:它的工作效率非常高效,就像工作效率提高了 5 倍一样!
- 主要缺点:掌握这种语言,需要一种不同的编程思维。但人们往往害怕改变。
8.Rust
Rust 因其内存安全特性:借位检查器,而得到了广泛认可。这个特性实际上消除了所有与内存相关的编程错误。因此,Rust 在一定程度上,保证了编程的安全性。
- 主要优点:它有助于使软件更可靠。
- 主要缺点:这门语言很难学习,而且借位检查器也很难理解。
9.TypeScript
TypeScript 是 JavaScript 的扩展,相比于 JS,TS 带来了更多好处,如静态类型。借助与 JavaScript 的良好兼容,TypeScript 迅速成为前端 Web 开发人员的最爱。
- 主要优点:它就是 JavaScript,因此对 JavaScript 开发人员来说没有什么太大的变化。
- 主要缺点:它仍然是 JavaScript,所以仍然继承了 JavaScript 的所有包袱。
10.WebAssembly
2020 年,WebAssembly 将是一匹黑马。在未来十年左右的时间里,它可能会衍生出一系列的语言,这些语言有望最终登上榜首。
2020 最火的移动开发技术
1.Kotlin
Kotlin 通常被视为下一代 Java,它是由谷歌和 JetBrains ( Android Studio 开发者)赞助的。Java 从一开始就一直是 Android 应用的首选开发语言,但近年来 Kotlin 迅速普及,如今在 10,000 种 Google Play 应用中有近 60 %使用了 Kotlin。虽说在少数需要访问底层原生代码的情况下,仍会继续使用 C++;但在其他情况下,Kotlin 都可以代替 Java。
Kotlin 的主要优势是与 Java 的完全互操作性,这意味着开发人员可以尽可能迁移旧代码,而不用完全重写整个应用程序。这两种语言兼容得很好,Android Studio 甚至可以自动从 Java 转换为 Kotlin。
2.Jetpack
谷歌的 AndroidX/Jetpack 库是一组实用工具,旨在简化常见的应用需求。例如用于设备上数据库的 Room,或用来在底层数据更改时更新显示内容的 LiveData。
有了 Jetpack 库,新项目就省掉了重新发明轮子的麻烦,也不必等待其他开发人员来开源他们的实现方式,现在每位开发者都能获取到那些基础要素了。这些库更新非常频繁,新功能不断推出,错误修复也会及时发布。由于这些库是为了协同工作而构建的,因此多使用 AndroidX 库有助于最大程度地减少应用中出现意外。
3.模块化设计
一直以来,应用都被构建为一个巨大的“应用”模块,其中包含整个应用所需的一切。尽管这样做确实能让资源共享起来更容易,但也意味着这个应用的某些部分无法为其他应用 / 开源项目所重用;更重要的是,对应用做出更改时必须重新编译整个代码库。
相反,如果应用由许多较小的模块组成,则只需重新编译做出更改的代码即可,从而大大缩短了构建时间。此外,模块化设计还为高级 Android 特性(例如即时应用——用户无需安装任何内容即可使用你的应用的部分功能,和动态特性——按需安装应用的各个部分)的应用打开了大门。
4.App Bundle
使用传统的 APK 将应用分发到用户的设备时,必须安装针对所有设备准备的所有资源。这意味着每张位图图像可能会有多个副本(用于不同的屏幕精度),还要安装针对不同设备架构的多个库版本,甚至还得安装多组边距和填充值。
使用 App Bundle 分发一款应用时,用户下载的 APK 只包含他们实际所需要的资源。这样一来,平均的应用大小就会减少 20 %左右,而未经优化的应用改换格式后应用大小将会得到更显著的缩减。
5.测试
看似这是个老生常谈的话题,但其重要性不言而喻。2020 年测试并没有什么闪亮的新特性,也不是用户能看到的内容,但想要确保一款已有一定用户基础的应用程序的可靠性,就必须要经过彻底测试才可放心。
2020 最火的科技趋势预测
- 硬件:5G、互联网+工业、物联网+AI、计算存储一体化
- 软件:云服务、区块链
- 中国芯片:全新的半导体材料(代替硅)、模块化芯片设计有所突破
- 量子计算:更高投入、更偏向落地应用
- AI 将从感知智能向认知智能发展,将从人类科学、心理学、社会历史中汲取灵感,形成更完善的 AI 认知体系
- 保护数据隐私的 AI 技术将加速落地