为什么在你心中,Java就是No.1.其它语言靠边站?

体娱   2024-07-24 20:00   山东  
很多人都看过古龙的小说-《楚留香传奇》,它讲述了传说中的盗帅-楚留香的故事。

其实,在那个里面,楚留香并不是武功天下第一,但是他确实有非凡的“实战智慧”,明明武功不如对方,却总在关键时刻识破对方的弱点,从而取得胜利。
在大漠里面,对战石观音的时候,他利用石观音对于自己美貌的迷恋,打破了镜子,从而在关键时刻让石观音因为镜中倒影的破碎而失神落败。
在对战天下第一水母阴姬的过程,对方虽然武功因为在水中练成而威力无穷,因为水的负重让水母时刻保持练功状态,但是依然被楚留香自己的”缺点“而被打破。楚留香的缺点,就是天生鼻窦炎,鼻子无法呼吸空气,反而让他练成了”皮肤呼吸“的特殊功能。在对战水母的时候,楚留香居然亲吻住了水母,让其无法呼吸,从而让水母落败。
而Java在编程语言里面,其实就非常类似于”楚留香“。
一方面,它的语法比较繁琐,并没有C#、Kotlin的灵动,语法糖非常匮乏;另外一个方面,实现功能也非常缓慢,目前为止其泛型实现依然采取”擦除类型“的方法。
这也是很多人不喜欢用Java的原因,据一个调查显示,Java程序员在自己个人的程序里面一般不会再用Java,而C#程序员则大部分继续使用C#。
由此可以看出Java程序的”笨拙“,语法之僵硬让很多使用过的人都避之不及!
但另外一个方面,Java也确实是一个非常均衡的选择,简直就是一个”六边形战士“,各方面都拿不到第一,但总分却很高。
首先,Java是编译型语言里面使用GC比较早的一个。我们知道,语言分为编译型和解释性语言,编译型语言就是C、C++、Delphi、Java等源代码需要先编译成底层代码的程序,C/C++会变成exe文件格式,a.out格式;Delphi需要先变成Exe格式,Java会变成class文件。另外一种就是解释型语言,像PHP、Python、Ruby等,他们的源代码可以直接运行,便于修改。
而Java则是编译型语言里面最早提出”内存自动管理“的语言,从而把大量的程序员从内存分配/释放的泥沼中释放出来。而C/C++则依然在里面艰难前行。
第二个是Java语言的速度。虽然比不上C/C++、Rust语言,但是Java虚拟机的速度已经非常接近。在早期,Java的速度非常缓慢;但虽然JIT技术的引入,代码逃逸分析、内存GC算法的改进,都让Java虚拟机的速度能够有了大幅度提高。
从某种角度来讲,其实Java也是一个”进化“的语言。在最早提出”内存自动收集“这个目标之后,正是围绕这个目标的优化让Java的实用性越来越强!
第三是,Java的”开源“。正是SUN公司(Java的母公司)的真知灼见,把全世界都团结起来,让人人可用Java开发,大大提高了适用人群。在互联网发展的早期,让Java坐上了快车!
第四个是,Java的”虚拟机“机制,提供了一个通用的”二进制兼容“的class机制,让大家可以直接使用即可。这点,比起C/C++的那种include机制,还有各种不同的lib编译,不知道高到哪里去!非常容易共享编译好的class,这点让maven等Java库站点集中了成千上万的package,非常方便使用。
总之,Java也有缺点,但是它的优点真的是太突出了。可以说,正是Java最初卓越的设计,让Java后来的路越来越宽。另外互联网、安卓手机等IT世代大潮,Java都可谓站在了风口浪尖!
很多人说,Java并不是最好的语言。
但我说,Java其实跟楚留香一样,总是能赢!
我是明月,
Java也很OK!

明月三千
将进酒,杯莫停。与君歌一曲,请君为我倾耳听。荔枝成为linux大师!
 最新文章