为什么大多数公司都用Java

1,703 阅读6分钟

文章目录

为什么感觉所有公司都在用Java?

四个原因:一个是因为阿里巴巴凭借其在互联网和开源社区的影响力不断推进Java,二是因为大学和培训结构都教Java,三是因为Java作为高层应用语言独特的优越性,四是因为如果没有任何语言偏好的情况下,大家都默认选择了Java,因为招人好招。

天朝有一个现象,那就是如果一个人有钱了,那他说什么都是对的,放个屁的都是香的。恰巧,阿里巴巴成功了,赚钱了,发财了,所以阿里巴巴用Java作为后端语言就成为了互联网特别是电商领域的一种政治正确,给人一种感觉,如果一个公司的后端不是用Java来写,那这个公司的技术栈就是low。这种现象很多,比如阿里的人事部地位高,造成很多互联网公司的人事部牛叉,阿里提倡996福报,造成杭州的很多公司都提倡996福报。

但是,同作为AT的腾讯也不比阿里差呀,华为也不比阿里差呀,为什么 C/C++ 没有 Java 这么火?这就涉及到另外一个原因,那就是阿里不断向开源社区输出影响力,积极确定自己在技术领域的标杆地位,但是腾讯或者华为就没有这么积极。比如 RocketMQ Dubbo 这些主流技术都是阿里弄出来的,当然这些都是用Java写的,随着这些中间件在各个中小型互联网公司使用,Java就被吹的神乎其神了。

大学的时候,大一会教一下C语言,然后辅之C++语言,然后大二的时候会将Java作为一门功课学一个学期,然后所有人就都有了一些写Java的底子,都知道一些 public static void main(String[] args)System.out.println("hello world"); 然后大三的时候学校里的课就少了,然后很多培训机构就会到学校里来搞宣传,让同学们去培训,基本就是Java或者前端,移动端火的时候还有培训Java+Android的,所以大学和培训机构联手,为社会培养一大堆 准Java程序员。对于大多数懵懵懂懂的大二大三的同学来说,为什么要学Java,那就是大学和培训机构的都教这个,周围的同学都学这个,所以就跟着上车了。

每年这样一大批的 准Java程序员 进入市场,市场总是要消化的。打比方说,如果一个公司的后台是用C#写的,要招一个C#程序员招不到,或者面试者不理想,就只要到招聘后面写一句 “Java程序员愿意转C#亦可”,或者到互联网大厂去挖一个架构师大牛来给自己搭建电子商务系统,发现这些大牛都是写Java,这样一来,所以技术人员,无论大牛还是小白都是写Java,让他们所有人都转.net也不适合吧,所以新的业务只能用Java来写,然后新的系统慢慢地取代老的系统,公司整个技术栈就慢慢地Java化了。我记得我上家公司,后端用C#写,但是就是招不到C#程序员,新业务只能慢慢Java化。这样看来,京东.net换成Java,携程.net换成Java,知乎、饿了么后端的招聘纷纷由 Python 渐渐转向 Java,除了Java本身的语言特点,也有一部分向市场妥协的原因。

Java作为高层应用语言独特的优越性以及开源社区的繁荣:如果是语言设计的优美,Java语言确实比php优美,而且开源社区相对有序,可以完成支撑高并发场景,而php不可以,所以Java战胜了php。那么如何解释Java战胜C#呢?Java完全没有C#设计的优美,但是Java就是火,C#就是没人,无他,一是Java开源社区更加繁荣,能提供各种各样的中间件,满足公司业务需求,当然,也满足天朝面试的内卷需求;二是Java抓住了多次市场方向,移动端兴起的时候Java可以写Android,但是C#不可以写移动端,只有一个大家没听说过的Window Phone,大数据兴起的时候Java可以写大数据,但是C#又不可以,在一次又一次的市场浪潮下,Java培育了越来越多的程序员。

如果没有任何语言偏好的情况下,大家都默认选择了Java,因为招人好招:比如说,一个小公司创业,招人招不到,最好的就是招Java程序员,如果这个公司以后活下来了,那么技术栈就是Java了。再比如说,一个传统公司要开发一个软件系统,招人招不到,最好的就是招Java程序员,那么技术栈就是Java了。

除了Java就没什么好用的吗?

除了Java是不是没什么好用的,当然不是

我们要搞懂什么是前后端分离,啥叫前端语言,啥叫后端语言,这个没有确定的界限,可以简单理解,给用户看的就是前端,和数据库交互的就是后端。

以游戏为例,小时候玩的小霸王游戏,直接将代码放到游戏卡里面,用户买回去玩就好了,到了互联网时代,大型网络游戏兴起,后端工程越来越大,而且后端代码全部给出去也不安全,所以用户下载的时候就只能下载客户端了,一来下载的少,二来保证了安全性,所以就有了前后端分离。

那什么是后端语言?可以这么说,凡是可以连接数据库的都可以是后端语言,Java、C#、C/C++、 python、php、node.js 都可以是后端,后端有这么多语言,至于为什么现在后端被Java霸占,这就是上面四个原因了。

为什么Java收费?

再谈一个问题,Java收费,收费的是 OracleJDK,而不是 Java 语言一些无脑带“Java 收费”节奏的人可以省省了。

Oracle收费!=Java收费,这是偷换概念。
Oracle JDK收取技术支持费用!=Java收费。
Oracle JDK != Java JDK。