• Java是否还能再辉煌十年?


    Java是否还能再辉煌十年?

    一、前言

    java

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

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

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

    二、如今的Java语言

    2.1 位居TIOBE榜首

    TIOBE

    上图是2020年4月的TIOBE Index,

    Snipaste_2020-04-13_18-48-00

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

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

    2.2 革命性的语言

    s

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

    一次编译,到处运行。

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


    三、Java受到的挑战

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

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

    3.1.1 Python

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

    3.1.2 GO

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

    更简单、更高效

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

    pkkjm7g101


    3.1.3 PHP

    传说中世界上最好的语言

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

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

    3.1.4 Node.js

    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

  • 相关阅读:
    如何通过cocosStudio将plist大图拆分成原来的小图
    斯坦福大学深度学习视频(CS231n课程)
    杂谈——杭州考驾照历程
    机器学习基础自学笔记2
    深度学习笔记1
    GAN学习指南:从原理入门到制作生成Demo
    GAN实现半监督学习
    无监督深度学习图像分类思路
    无监督学习:从基本概念到四种实现模型
    深度学习-无监督
  • 原文地址:https://www.cnblogs.com/linzworld/p/12695319.html
Copyright © 2020-2023  润新知