(转)为什么大公司青睐Java
转自 http://www.zhihu.com/question/25908953/answer/32119971
因为这是一个商业问题,不是技术问题。
我在面试时探讨过这个问题,对方创业期,问我如果有需要的话我能不能从.NET转Java或者PHP。我说,客观地跟你说,要选择哪个平台,是个商业问题,不是技术问题。
决定技术选型的,抛去逗比领导二产品那不知道那里来的“Java比.NET好,Linux比Windows强”的技术信仰,是个商业问题,三点:反应速度、实施成本、技术梯队。
1. 反应速度
商场无大不破,唯快不破。技术基本都是新兴市场,谁吃第一口蛋糕谁就是大哥,无谓技术好坏。你们还记得大明湖畔的IE6,还有它的好基友Flash吗?还有OpenSSL呢?
在做企业站,Java和.NET都是渣渣,1块钱5000套淘宝模板的PHP才是王道呢。如果是一些企业开发,成型的Java生态系统可谓比.NET多不少参照物。就像SSH说到底不过是MVC、IoC、ORM,大家都有这些东西,只是Java的成型产品更多,复制黏贴就能解决很多问题。
不过在这个时代,个性化的开发更加有开发市场,拼的就是框架能力、资源量、开发工具,Java并不比.NET具有明显优势。至少从创业公司或者传统公司转互联网的这个市场里,个人见到.NET比Java多。
2. 实施成本
很多人有开源崇拜,我倒觉得这里混杂了很多圣母病和共产病,得治。
事实基本上是人力和正版化。许多影响成本判断的就是对工具功能的忽视,这在中国是严重现象,说到底能是软件工程管理能力太低,没办法把投资变现。一套宇宙第一IDE才多少钱,一条内存条才多少钱,但对码农的攻击力加成有多少管理人员能变现?你花钱买IOE不就是因为花钱能解决问题么?
其实关乎.NET来说通常是Windows Server和Linux、IDE、SQL Server和MySQL的问题。在这个泡沫时代,能Build Linux优化MySQL的有几个?微软的那套东西又已经进步了多少了?没理由做技术的不相信科技的生产力吧?
实施成本在后期会放大化,在服务集群的时候。IOE不说,Windows Server确实贵,不过这个成本差异在多少台服务器的时候会体现有多少人真的算过?
在这里不得不补充一句,Mono确实是.NET的希望,虽然不一定是微软的希望。
3. 技术梯队
在IT届,牛人和渣渣是类似的。牛人要换平台,成本很低,渣渣也是。在牛人和渣渣中间的这批人,就是广大的中产,也是IT届主要“纳税人”。但稀缺领域渣渣会被当牛人用。
人脑的进步是有限的,再牛的牛人都砸不过钞票,当产品发展,你需要在合适的时候请到合适的人。在你就缺个敲代码的时候招个能敲代码的,在你到花钱请人帮你搞定的时候你要请到人。
这个时候你就要考虑人才市场的情况了。Java那么老了,加上Android带起的风,人才琳琅满目,给得起钱就有人来。.NET由于Windows不年轻,人才市场分布情况也十分乐观,只是少那种互联网式的贵价人才。如果你做两年Python、PHP、前端、iOS、Android能拿15k~25k,作为一个应届生对.NET竖中指也是很正常的。这不代表做企业开发的人弱,我想中国人都应该知道“如果当初买了房”的故事。
只是企业必须考虑人才市场对技术梯队的影响,这个领域现在花钱能不能请到我要请的人,将来花钱又能不能请得到。因为最可悲的是有钱花不出,然后渣渣当牛人用。作为企业是觉得Android拉高了Java价格而倾向.NET,还是打算未来等移动互联网泡沫破灭抄底,这是企业实际的考虑情况了。
去年的薪酬调查如果数据真实,那么反应的情况还是非常明显的:

Java狗确实比.NET狗多。你可以认为吹嘘Java的比吹嘘.NET的人多1.5倍,拍马屁的Java狗比拍马屁的.NET狗多1.5倍,需要自信的Java狗比需要自信的.NET狗多1.5倍,Java在二货领导耳边出现的次数比.NET高1.5倍......这个世界上还有人相信PHP是世界上最好的语言呢。
以上不过是客观情况的考虑问题,因为我们对理性抱有太天真的想法了,特别是技术领域。你永远应该高估犯二的产品、领导、老员工所能产生的巨大AT力场。你以为他们的所有理由都需要理由?
(转)为什么大公司青睐Java的更多相关文章
- 大公司的Java面试题集
找工作要面试,有面试就有对付面试的办法.以下一些题目来自我和我朋友痛苦的面试经历,提这些问题的公司包括IBM, E*Trade, Siebel, Motorola, SUN, 以及其它大小公司. 面试 ...
- 大公司最喜欢问的Java集合类面试题
看了一些所谓大公司的JAVA面试问题,发现对于JAVA集合类的使用都比较看重似的,而自己在这方面还真的是所真甚少,抽空也学习学习吧. java.util包中包含了一系列重要的集合类,而对于集合类,主要 ...
- JAVA集合类(大公司面试喜欢问的)
分类: 核心JAVA(11) 版权声明:本文为博主原创文章,未经博主允许不得转载. 看了一些所谓大公司的Java面试问题,发现对于JAVA集合类的使用都比较看重似的,而自己在这方面还真的是所真甚少 ...
- 大公司c#&.net转型java的原因有哪些?
历来就听说有编程语言“鄙视链”的说法,而如今月经贴上的那些事儿,还真让我给遇到了. 以下内容来自知乎,纯属扯淡,易引发口水战,看完勿人身攻击. 目的给盲目的公司决策者.开发人员科普下,有个客观清醒的认 ...
- Java面试题 BAT 大公司面试题整理总结!
本文只列出了问题,答案还是需要需要自己的总结,很多时候自己总结出来的语言在面试时比硬背的效果好很多. 这些题目是网友去百度.小米.乐视.美团.58.猎豹.360.新浪.搜狐等一线互联网公司面试被问到的 ...
- [转载] JAVA面试题和项目面试核心要点精华总结(想进大公司必看)
JAVA面试题和项目面试核心要点精华总结(想进大公司必看) JAVA面试题和项目面试核心要点精华总结(想进大公司必看)
- 各大公司java后端开发面试题
各大公司Java后端开发面试题总结 ThreadLocal(线程变量副本)Synchronized实现内存共享,ThreadLocal为每个线程维护一个本地变量.采用空间换时间,它用于线程间的数据隔离 ...
- 大公司面试经典数据结构与算法题C#/Java解答
几个大公司(IBM.MicroSoft and so on)面试经典数据结构与算法题C#解答 1.链表反转 我想到了两种比较简单的方法 第一种是需要开一个新的链表,将原链表的元素从后到前的插入到新链表 ...
- 大公司的PHP面试题
1. 禁用COOKIE 后 SEESION 还能用吗? 2. 抓取远程图片到本地,你会用什么函数? 4. 你觉得在pV10W的时候, 同等配置下,LUNIX 比WIN快多少? 5. 简述pOST 和G ...
随机推荐
- SQL Server中的事务日志管理(5/9):完整恢复模式里的日志管理
当一切正常时,没有必要特别留意什么是事务日志,它是如何工作的.你只要确保每个数据库都有正确的备份.当出现问题时,事务日志的理解对于采取修正操作是重要的,尤其在需要紧急恢复数据库到指定点时.这系列文章会 ...
- 2013/11/21工作随笔-PHP开启多进程
今天被问到一个问题,php如何开启多进程才比较稳定. php开启多进程执行一个操作有哪些方法: 首先想到的是使用pcntl的fork 具体可以参考之前的文章:PHP的pcntl多进程 其次想到的方法是 ...
- List<?>和List<T>的区别?
出自:https://www.zhihu.com/question/31429113
- 重构第23天 引用参数对象(Introduce Parameter Object)
理解:有时候我们的一个方法,需要很多个参数,太多参数,不易阅读和理解,我们就可以把多个参数封装成一个对象. 详解: 重构前代码: public class Registration { public ...
- Winform开发框架的重要特性总结
从事Winform开发框架的研究和推广,也做了有几个年头了,从最初的项目雏形到目前各种重要特性的加入完善,是经过了很多项目的总结归纳和升华,有些则是根据客户需要或者应用前景的需要进行的完善,整个Win ...
- {"集合已修改;可能无法执行枚举操作。"}
无论是向集合中添加元素还是从集合中删除元素,都会导致集合内部的变化,特别是集合遍历器的变化.例如 List<,,,,}; foreach(int x in list) { list.Remove ...
- Windows Azure开发者任务之五:配置虚拟机的“规模”
指定虚拟机的“规模”是怎么一回事? 我们可以指定角色将要部署于其上的虚拟机的“规模”.虚拟机的“规模”是指: 1,CPU核心数 2,内存容量 3,本地文件系统的体积 我们可以针对具体的角色来指定虚拟机 ...
- .NET转JAVA之拼音组件
PS:做了4年,自我感觉.NET到瓶颈了,而且公司并没有深入运用.NET技术的项目,自我学习感觉也没太大动力(请骂我懒T_T).再加上技术年限越往上走,了解到的.NET职业提升环境就越来越艰难(个人理 ...
- csharp:Nhibernate Procedure with CreateSQLQuery and GetNamedQuery
<?xml version="1.0" encoding="utf-8"?> <hibernate-mapping assembly=&quo ...
- OAuth2.0 基础概述
web:http://oauth.net/2/ rfc:http://tools.ietf.org/html/rfc6749 doc:http://oauth.net/documentation/ c ...