Java 是未来的第一编程语言吗?,3 分钟告诉你为什么要用 Java 开发高频交易系统
第三方库强大,可以写复杂的逻辑
当然 Python 和 Java 相比执行效率上肯定是更低了,因此主要应用于小型的网站后台,像阿里这样的大厂就是拥抱 Java 后台的了。
3.1.2 C++ 的竞争
C++语言和 Java 相比,具有以下优点:
执行效率高
对内存管理自由,而 Java 由 GC 来管理
C++适合大型高性能的服务器开发。腾讯更多的就是使用 C++进行开发,这点和阿里不同。当然 C++相比 Java,学习和开发的难度更高。
3.1.3 node.js 的竞争
pYUlzdXlCMGtBeHcxQ0owOEdLS282N3lvWlVuTm5KVGlhQS82NDA?x-oss-process=image/format,png)
node.js 的出现大概是前端程序员最高兴的事情了,因为 node.js 可以让他们写的 JavaScript 代码运行在服务端,这样就可以使得前端不用学 Java 也能自己写后台,摆脱后台爸爸的束缚(误)。得益于 node.js 的事件驱动机制,node.js 具有很高的并发性能,可以应对大规模的 http 请求。但也有缺点,因为 js 只支持单核,因此没法充分利用服务器的性能,它不适合 CPU 密集型应用。
3.1.4 Go 的竞争
Go 语言是最近很火的开发语言,适合用于开发高性能分布式系统。这是一个十分强大的竞争对手**,被认为是未来的服务端语言**。它具有下面这些优点:
学习难度低,容易上手,易于维护
得益于协程,并发性能优越
编译型语言,执行效率高
3.1.5 小结
可以看到,在后端服务器开发领域,Java 在不同方面受到多种语言的竞争,轻量小型的服务器,人们可以选择 Python,node.js 或者 PHP。而大型高性能服务器,人们可以选择 C++。Go 语言就更强大,兼具了比 Java 更简单的语法和更高的并发性能,背后又是 Google 爸爸。因此,在这一领域,Java 面临巨大的竞争压力。
3.2 安卓系统应用开发
3.2.1 Kotlin 成为 Android 开发的首选语言
在 2019 年的 Google I/O 大会上,Google 官方正式宣布,**Kotlin 编程语言现在是 Android 应用程序开发人员的首选语言。**Java 占据 Android 开发绝对统治的时代一去不复返了。Kotlin 可以编译成 Java 字节码,可以在 JVM 上面运行,也可以编译成 JavaScript,在没有 JVM 的机器上运行。Kotlin 语言比 Java 更安全,更简洁,随着谷歌爸爸推崇,将来的发展前景可期。
3.2.2 Flutter 框架和 Dart 语言
这两个都是谷歌最近推出的东西,Flutter 是一款用于帮助开发者在 iOS 和 Android 两个平台构建高质量原生应用的全新移动 UI 框架,Dart 是由 Google 开发的一门全新的计算机编程语言,而 Flutter 使用 Dart 语言开发。Fuchsia 是谷歌开发的一款全新的操作系统,Flutter 是 Fuchsia 的开发框架。Flutter 编写的代码可以同时生成 IOS 和 Android 两个平台下的应用程序,因此 Flutter 框架逐渐热门。
3.2.3 大前端时代下的 H5 应用
随着时代发展,现在的前端不再只是写 web 网页,而是逐渐发展为大前端,web,Android,IOS 通吃,H5 应用的流行就是一个例子,大家应该都发现,手机上开始出现快应用,小程序这些使用前端语言进行开发的 app,这些应用使用 HTML,JS 和 CSS 进行开发,无需使用 Java。相比之下,**H5 应用轻量级,启动快,跨平台,用户体验方面也逐渐开始接近原生应用的流畅度。**因此大有流行的趋势。
3.2.4 小结
这一小节介绍了安卓开发的现状,Java 作为曾经的安卓开发第一首选语言,正在面临诸如 Kotlin 语言,Flutter 和 Dart 语言等新的开发语言的挑战,同时,随着安卓应用开发逐渐出现 H5 应用的趋势,前端语言也逐渐开始来到 Java 的地盘。
四、Java 不擅长的领域
4.1 前后端分离和 JSP 的没落
JSP 是一度火爆的技术,Java 曾对其寄予厚望,希望通过 JSP 技术占领 web 应用程序领域。然而,随着网页开发越来越复杂,用 JSP 开发网页变得很麻烦,前端和后端混杂在一起,开发效率很低。因此前后端开始分离,而 JSP 这种运行于服务器端的网页程序也就慢慢退出了舞台。
4.2 C#和.NET 抢占桌面程序地盘
Java 曾经也被广泛用于开发桌面客户端,其中 Swing 框架就是一个有名的 GUI 框架。然而,曾经想要扼杀 Java 的微软,开发了 C#语言。C#成为 Java 的竞争对手,C#编写运行于 Windows 系统的桌面应用程序上具有优势,Java 写的桌面应用,虽然可以跨平台到处运行,这对于程序员当然是好事,但是对于用户来说,在 Windows 上运行个 Java 程序还得安装 JRE,显得十分麻烦。而且,Java 桌面程序运行起来比 C#程序慢。因此,C#和.NET 逐渐占领了桌面应用程序的市场。
4.3 C/C++活跃的嵌入式系统领域
Java 曾经是为了嵌入式系统开发而设计的。然而,Java 程序员并不能直接操作硬件,并且,Java 是相对较重的语言,对内存等硬件资源不友好,执行效率也相对较低。而在嵌入式系统中,往往只有很少的内存空间,却对运行效率有很高的要求。因此,在嵌入式领域,更多的是 C 语言和 C++甚至是汇编语言的天下。
评论