首页 > 编程语言 > 详细

Java是否还能再辉煌十年?

时间:2020-04-14 09:26:48      阅读:70      评论:0      收藏:0      [点我收藏+]

Java是否还能再辉煌十年?

一、前言

技术分享图片

Java语言,熟悉的coffee标志,一直以来在后台开发领域都是比较吃香的语言。想必有学过后台开发的同学,应该都有听说过Java衍生出来的工具和框架。为什么Java会备受人们追捧呢?它今后的发展又会是怎样的呢?能否再次辉煌十年?而最近热门的人工智能,备受欢迎的是Python语言,它相对于Java的优势所在是什么?

我们这个世界,Java这门语言究竟主要运用于什么领域?而市场上有许许多多的编程语言,Java并不是一家独大,同时有许多的编程语言正在侵蚀Java的市场。有这么多的语言,为什么我们有些人选择Java去开发呢?

本文将结合Java的应用领域和不擅长的领域中与其它编程语言的对比进行分析,讲讲Java究竟是一门怎样的编程语言?

二、如今的Java语言

2.1 位居TIOBE榜首

技术分享图片

上图是2020年4月的TIOBE Index,

技术分享图片

2020年4月的TIOBE Index的前十名,其中Java仍然位居榜首,但是与第二名C语言的差距非常之小,由此可见Java的受欢迎程度多么之高。

在java的基础上可以做web开发,可以做安卓开发,可以做小程序。有丰富的生态圈,已经造好的轮子有很多,可以使开发专注于业务代码的实现。而且Java代码还能跨平台运行(基于不同的JVM)。但是也是由于JVM,Java的代码运行效率明显没有C++和C语言这种编程语言高效。

2.2 革命性的语言

技术分享图片

Java 之所以被称作革命性的语言,是因为传统的软件往往与具体的实现环境有关,一旦环境发生变化就需要对软件做出一系列改动,既费时又不省力。而 Java 语言所编写的软件,能在执行码的层次上相容,只需要计算机提供了 Java 的虚拟机环境,用 Java 语言编写的软件程序就能在其本地运行。

一次编译,到处运行。

但是,并不是Java一家独大,仍受到许多挑战。


三、Java受到的挑战

3.1 后台服务器软件的语言竞争

技术分享图片

目前主流电商平台的编程语言,还是Java占主流,但是有另外的互联网公司,如知乎,B站,还是用GO语言等编程语言来写后台。

3.1.1 Python

技术分享图片

目前Python在人工智能领域十分火爆,简短的代码许多的库可以导编程方式变得更加新手友好,使其越来越受编程人员的喜爱。

3.1.2 GO

技术分享图片

说起GO语言,不得不提的是它的协程,语言级别支持协程(goroutine)并发(协程又称微线程,比线程更轻量、开销更小,性能更高),操作起来非常简单,语言级别提供关键字(go)用于启动协程,并且在同一台机器上可以启动成千上万个协程。

更简单、更高效

下面是使用GO语言的实际案例。

技术分享图片


3.1.3 PHP

技术分享图片

传说中世界上最好的语言

做中小型网站的一门十分热门的语言。

  1. PHP语法简单,短平快,代码易懂。(没有那么多sao操作)
  2. PHP可以支持热部署,而JAVA需要重新编译。PHP改完一段代码,发布后就可以看到结果了,这省去了不少维护的工作量。
  3. 开发环境轻量化

3.1.4 Node.js

技术分享图片

Node.js 推出后统一了前后端
前端常用的后台语言,比如说前端自己模拟后台的数据,或者想创建自己的服务,这是十分前端程序员十分友好的编程语言。

3.6 小结

中小型网站用PHP和Node.js或者Python的比较多,为了提高性能,大型网站的后台会用到GO语言编写,而Java由于生态比较好,有各种框架,通常都适用各种网站的开发,但是效率方面肯定没有GO语言的高。

四、在Java不擅长的领域

4.1 前端领域

4.1.1 为什么JSP当不了主流的前端语言?

技术分享图片

JSP(全称JavaServer Pages)的缺点所在:

  1. 传说中的用后台思维写前端页面。写的时候爽,后面看代码MMP。
  2. JSP调试困难,新手用断点调试不友好。
  3. 占用大量内存。

4.1.2 前端三剑客的称霸

技术分享图片

想必学前端的同学,肯定对这三个东西十分熟悉。

4.1.3 百花齐放的前端框架

技术分享图片

  1. 在大型超大型web应用开发上,看好Angular
  2. 小型应用上,看好vue
  3. 个性化需求、中型应用,更倾向react

4.2 安卓软件领域

4.2.1 Java在安卓端最棘手的对手Kotlin

技术分享图片

Kotlin 是一种在 Java 虚拟机上运行的静态类型编程语言,被称之为 Android 世界的Swift,由 JetBrains 设计开发并开源。

Kotlin 可以编译成Java字节码,也可以编译成 JavaScript,方便在没有 JVM 的设备上运行。

技术分享图片

在Google I/O 2017中,Google 宣布 Kotlin 成为 Android 官方开发语言。有强大的官方支持

4.2.2 与JS进行对抗的Dart语言

技术分享图片

优势所在:

  1. 由 Google 主导开发,于 2011 年 10 月公开。它的开发团队由 Google Chrome 浏览器 V8 引擎团队的领导者拉尔斯·巴克主持,目标在于成为下一代结构化 Web 开发语言

    知乎网友:等到chrome一统江山那天,就是dart君临天下的时刻!

  2. Flutter

技术分享图片

Flutter应用程序可以使用Dart编程语言编写

作为谷歌的开源移动UI框架,Flutter可以快速在iOS和Android上构建高质量的原生用户界面,今年,Google I/O 大会宣布了 flutter 支持 web 开发。

flutter 目前的目的就是全平台开发一套代码同时运行在 iOS 、Android、web和桌面端

4.3 嵌入式开发

技术分享图片

简介

? 嵌入式系统是指以应用为中心、以计算机技术为基础,软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。举例来说,大到油田的集散控制系统和工厂流水线,小到家用VCD机或手机,甚至组成普通PC终端设备的键盘、鼠标、硬盘、Modem等均是由嵌入式处理器控制的。

4.3.1 C++

技术分享图片

名副其实的专业造轮子的语言

对新手不友好,开发学习代价太高。

  1. 泛型编程
  2. STL库的支持
  3. 嵌入式应用中每小段内存都昂贵的情况下,C++十分吃香

4.3.2 C

技术分享图片

C语言的应用领域

  1. 应用软件。Linux操作系统中的应用软件都是使用C语言编写的,因此这样的应用软件安全性非常高。
  2. 对性能要求严格的领域。一般对性能有严格要求的地方都是用C语言编写的,比如网络程序的底层和网络服务器端底层、地图查询等。
  3. 嵌入式设备开发。手机、PDA等时尚消费类电子产品相信大家都不陌生,其内部的应用软件、游戏等很多都是采用C语言进行嵌入式开发的。

4.3 小结

Java相对于C和C++这两种语言,在性能上还是比不过编程语言的祖师爷。

Java = C++-- ,即Java的起源。

五、总结

在技术新陈代谢十分迅速的编程世界中,没有一项语言能够完全没有缺点,都是为了实际需求而进行使用。Java的生态圈好,有成熟的框架,但也不是说最好的编程语言,只有最适合你的编程语言。

技术分享图片

编程语言的本质也就是为了简化人类的工作,如果你现在做这项工作,用这门语言能够更适合的话,何乐而不为呢?编程语言相通的方向有许多,我们往往只需掌握其中最重要的共同点,贯通共同的编程思想。就算一门编程语言再火,其本质也是一个工具,其目的都是为了让人类更好地“偷懒”。


参考资料

https://www.zhihu.com/question/304531859/answer/877587651

https://www.cnblogs.com/qcloud1001/p/9199246.html

https://www.php.cn/php-ask-430212.html

https://www.jianshu.com/p/61570c030b90

https://www.yoytang.com/dart-intro.html

https://www.zhihu.com/question/25058236?sort=created

https://www.leiue.com/what-is-dart

Java是否还能再辉煌十年?

原文:https://www.cnblogs.com/linzworld/p/12695319.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!