美国上市公司,专注Java培训21年

京东等大公司转型Java的原因


历来就听说有编程语言“鄙视链”的说法,而国内技术转型Java的大公司,京东、点评,携程也在慢慢转型java,数据库由sql server在转型MySQL,原因有哪些呢?本文来自知乎问答,达内java培训(java.tedu.cn)希望能给盲目的公司决策者、开发人员科普下,有个客观清醒的认识。顺带给妄自菲薄的开发人员鼓励。

我想到的原因有以下几点:

1、源语言,免费,相关产品不用花钱,微软的产品一年会花费多少?

2、开源插件会很多,可替代性强

3、移动端火,安卓占据很大一部分

下面是我的回答:

每家公司都有背后的原因吧。就算是内部的人,可能三言两语也说不清楚。

有些公司决策可能是理性的,有些公司决策可能就是不怎么懂技术的在拍脑袋。

两者都有太多的优点和缺点。冒着被喷的风险,简单的说下吧:

C# .NET的优点

1、从使用者角度来看,语言层面C#是领先Java的。C#最初设计可能借鉴了Java,可谓“青出于蓝而胜于蓝”吧。这点,C#很多的语法糖就可以说明。至于平台层面,CLR是否一定优于JVM,这个没有透彻研究,不敢轻易下结论。

2、微软拥有号称世界上最强大的IDE工具VS,编写C#非常愉快。

3、微软作为一家商用公司,一贯是比较体贴开发者。制定好各种标准和实现,版本兼容性那些也做的很好。加上2中提到的IDE强大。易用性是更加好的(至少对于初学者是这样)。同时,微软的很多技术让编程的门槛更低(例如早几年搞的拖控件,绑数据...堪称是“傻瓜式”的)。在一些小公司,或者一些要求不高的项目,这种开发技术可能比较有优势。

4、跨平台游戏引擎支持。跨平台APP开发的支持。

夸了那么多,优点就不往下展开,泼下冷水:

1、由于早年不开源,且捆绑windows紧密,所以跨平台特性被人诟病。虽然Mono崛起,并且开源了,但是很难改掉人们对微软“封闭、臃肿、不安全”的印象了。很多人对Mono也是半信半疑。世上很多事情就是这样的,也算是一种恶性循环吧。

2、开源生态确实不如Java,虽然是在努力追赶,但是很多方面还有很大差距。成熟方案和选择性相对少。很多框架和组件,是先在Java平台上出现,后来移植到.NET,更新维护都成问题。很多优秀的中间件、平台,在开发API的时候,都是优先支持Java、python这些,后支持C#(好在大部分的都还支持C#,要不然真的只能靠微软官方去造了)

3、招聘难度大。受国内这种不良风气和环境影响,高端的.NET开发确实特别的少。

4、从身边的例子和一些招聘信息来看,相同工作年限、级别的.net程序员的薪资水平应该是略低于Java的(具体的也要看公司和行业,而且人的技术水平、背景、综合能力那些不同,很难横向比较)。这点对一般的开发人员热情来讲是比较有打击性的。当然,高端的技术人员不管是哪个方向和领域,薪资都不会低的。

5、由于目前很多企业和个人对Mono和Linux .NET还是半信半疑甚至毫不知情,所以还是会捆绑在windows上。这就造成了授权费用的风险。还有就是windows自动化运维的缺点了。

(为了避免口水战,特别说明:上面说到的几点,有些是客观存在的事实,有些确实是国内的不良风气、误解等造成的恶性循环)

再说说Java的优势:

1、问世早,跨平台,很早就占领了市场,名声已经在那里

2、开源生态好,技术方案的可选性多。良性循环

3、成功的案例多。从企业级系统,到大规模互联网系统,再到现在一直占主流。最后扯到最近几年火热的android、hadoop...可以看出java的地位了

4、由于1,2,3的优点。所以Java高端技术人员相对也会多一些

泼下冷水:

1、语言层面不如后来的C#,很多应用场合下也不如新型的go或者scala之类的

2、易用性不如C#.NET。平台入门的门槛高一些

(见过一些开发人员,配置个环境变量就摸索了半天。有些被微软惯坏了的.NET开发人员,再去开发java,框架整合和一大堆的配置文件就可能弄个半死)

3、IDE不如VS好用(也和个人习惯有关,各有千秋吧)

Eclipse的最大优势在于灵活、可扩展、占用资源少

而myeclipse貌似很少有人在用了

IDEA还不错,不过感觉离微软的VS还是有差距

4、java的母公司sun被Oracle收购后,总让人感觉不太踏实。

5、别总抱怨说微软的某些体系和标准臃肿,反人类。其实JavaEE体系里也有很多不成功的设计标准(EJB JPA JSF那些使用并不广泛),只不过后来都被轻量级的开源框架取代了。

说了那么多,大概都明白要迁移的理由了。理性的理由大概如下:

1、对Mono和.NET跨平台不太了解,捆绑在windows上面了。因此又担心IDE和服务器费用问题,又担心windows的安全性、自动化运维不方便。而Java跨平台特性早就为人所知。

2、看到.NET开源生态不是很好,Java成功的案例多,开源的方案选择性更多。

3、Java的高端技术大牛好像要容易找一点,至少国内是这样的(很多大厂用Java,企业会认为Java大牛多)

至于那些拍脑袋想的理由,可谓五花八门:

1、决策者对微软的技术有成见或者误解。或者技术管理者本身具有Java开发背景(这种通常是领导想着急的搞出点业绩来)

2、公司高层变动,与其说“战略调整”,不如叫政治斗争(例如:新官上任三把火,新来的技术高管想给团队换血)

3、听别人说.NET不行,不安全,性能低等等(这种人通常都是没有深入了解过.NET的)

4、早期没有重视到技术和架构的重要性,没有重视人的重要性,而往往把责任推给.NET或者.NET开发人员。

5、听别人说Java好,所以就换Java吧(这种通常是病急乱投医)

6、听说“京东、大众点评、携程”那些大公司都迁移了,我们也迁吧。(毫无主见类型)

零基础学习java要多久能学会?京东、大众点评等公司喜欢什么样的java程序员?如何才能成为一个企业争抢的java程序员?如果你还有这样的疑问,欢迎关注微信公众号:“达内java大数据培训”留言咨询达内java培训(java.tedu.cn)。


【免责声明】本文部分系转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,如涉及作品内容、版权和其它问题,请在30日内与我们联系,我们会予以重改或删除相关文章,以保证您的权益!

Java开发高端课程免费试学

大咖讲师+项目实战全面提升你的职场竞争力

  • 海量实战教程
  • 1V1答疑解惑
  • 行业动态分析
  • 大神学习路径图

相关推荐

更多
  • 为什么学习Java编程?学编程选择Java的原因?
    为什么学习Java编程?学编程选择Java的原因?
    为什么学习Java编程?现在市面上的编程语言非常多,为什么很多小伙伴选择学习Java编程语言呢!接下来和大家分析一下为什么学习编程就选Java。 详情>>

    2022-03-11

  • 2021年热门的大数据技术有哪些?
    2021年热门的大数据技术有哪些?
    2021年热门的大数据技术有哪些?大数据是现在非常热门的一种技术,学好了大数据,也就意味着进入了有前景的IT行业。但大数据的内容太多了,大数据领域的技术涵盖了Linux操作系统、Hadoop、Hive、HBase、Zookeeper、Kafka、Scala、Spark、Flink等等。这么多的技术,我们从哪开始学起呢?哪些技术是最有需求和最有增长潜力的? 详情>>

    2021-03-24

  • 达内的讲师怎么样?
    达内的讲师怎么样?
    近日,国内领先的职业教育品牌达内教育,参与了一场带动2亿+话题热度的线上活动。活动由达内、蘑菇街、欧莱雅等10多家企业共同发起,以“不穿白衬衫”为主题,鼓励毕业生在面试时,勇于表达出自己的个性和态度,不穿白衬衫。 详情>>

    2020-10-19

  • Java编程地位不可撼动的12大理由
    Java编程地位不可撼动的12大理由
    如今,面对曾经在程序员中被各种新技术掩盖直至堙灭的技术值得怀念。犹如COBOL这当年被老程序员们尊为神器的语言如今也基本没有价值。而Java作为现代程序员的中坚力量在这点上或许会成为下一个COBOL。 详情>>

    2020-07-22

  • Java开班时间

    收起