-----------------
前言
-----------------
本人最近受朋友邀请,转战webgame。可是这个行业的人,排的上名次的,都是统一口径:使用java+linux+flash,拒绝dotnet+windows server.
我试图说服,可是发现问题不是.net性能如何好、如何廉价,而是更深层次的问题。
-----------------
为啥选择Java而不是.net?
-----------------
人们常说:java比.net赚钱。 要注意的是,这句话是从一个开发者角度说的,而不是一个经营者角度。
那么就需要首先分析,为什么java比.net赚钱。这个原因搞清楚了,那么这个结论导致的一系列社会现象就明白了。
java比.net赚钱的最直接原因,就是因为java行业比.net行业门槛高! 要注意的是,我没有从纯粹的语言角度去对比,而是行业角度对比。
比如我是个开零售店的,只有我这里有卖《魔兽世界》这个游戏,自然我可以垄断价格,让利润很高;可是一旦《魔兽世界》这个游戏满地开花,周边的所有零售店都有出售,必然导致竞争和价格下降,最终价格很低利润很少。
这个最简单的经济活动原理就说明了Java和.net在“赚钱” 方面的原因。
首先,Java是Sun公司开发的,而素我直言,Sun公司在市场竞争中的策略和智谋是相当的失败的。我猜测,当初Sun主打Java的原因是为了搭在他们的操作系统和服务器;因此Java是免费的,而服务器和操作系统是主营收入。
可笑的是,Sun压根没有利用“开源”去塑造行业标准、去有组织有计划的进行“洗脑”,目光相当短浅;因此Java被IBM Oracle的巨头利用,形成各自为政的局面了。
假设在一个竞争的市场,你和我是竞争者,那么我们如何去宣传自己以赚到更多的钱呢?一个最低水平的口号就是:我的功能和你一样但是比你便宜。这个是所有竞争者都不希望的结果,因为这样导致整体的利润下降,最终大家没钱赚。
那么一个最高水平的口号就是:我提供了你没有的功能,所以卖的比你贵。这个就是Java的现状。
一方面这种竞争者形成了一定的内部联盟(也许是非盈利组织),他们之间避开对方的强势,突出自己的优势。另外一方面,他们在软件某些特点大肆宣传,对消费者洗脑,声称自己拥有别人没有的特点,从而人为的造成了某领域的行业标准,形成了门槛。
一旦出现了行业标准和门槛,自然就拥有竞争优势,有了利润来源。所以,在Java,可以看到一大堆的所谓开源、几乎搞的我头昏眼花。连一个Http服务器,都有好几个,每个都好像一样,但是每个在不同层次又似乎有区别。
现在回到了我们开发者角度。我们要进入一个java行业,java语言本身已经不是一个门槛了,真正的门槛是XXX框架、XXX开源项目这些“第三方开发包”。比如我为了搭建一个webgame,就要用flex+blazeds+spring+hibernate。你不用?那你就不是这个行业的。你自己搞一套?那么你走人了,谁接上你的工作?出现问题了找谁?
所以,各位面试的朋友们,面试官有多少会问你Java某个方法吗?当然不会,他们更关注的是你做一个项目,用过什么框架、架构。
小结一下,Java就是因为有无数的组织、公司制定了自己的入门门槛,同时又使用了Java这个招牌去洗脑,所以产生了高额的利润。而他们永远不希望这些利润被瓜分,所以Java必然不会轻易没落。
-----------------
.net到底出了什么事?
-----------------
Java口水喷完,回到.net。.net只有一家公司在推广,那就是MS。所以.net的发展理论上就应该比Java好,毕竟重复劳动少、磨擦少、效率高。而微软本质上是个软件公司,没有了软件就完蛋,因此他的利润收入就是软件,不像Sun/IBM可以卖服务器。
那么,就很明显了,微软的基因决定了他不可能和Sun一样,对.net采取和java相同的策略。他绝对不会允许有人利用.net和他构成直接的竞争。所以即使现在所谓的.net开源社区等,基本上就是微软在投资帮助形成的。
这种单一局面,首先就没有了门槛, 毕竟MS就是庄家,大家向他朝拜就拥有了一切。没有了门槛必然是我们这些小弟开始自相残杀,毕竟你有的东西,我也能有,你卖100元,我就90元贝。你说你的功能优秀,谁信?比workflow,信MS的WF,比数据库访问,用MS的ADO.NET。你能比的过MS?
可以看见,到底是谁在断我们程序员财路了,自然就是微软。
我回忆起之前和公司老板建议技术转型的时候,列举的论点:除了性能之外,就是“.net便宜、微软服务器便宜” 。回想起来,我等于直接在断自己的财路,在降自己的薪水。。。
-----------------
.net到底怎么办好?
-----------------
作为程序员,我比较肯定的认为:如果微软愿意“塑造多个听话的竞争对手,构成一个和谐的竞争局面” ,那么.net大有前途,身为程序员能用来赚钱。
可是这个是个不可能的情况,因此.net的程序员们,你们学习.net的时候就不要为了写代码赚钱,这个是个不可能的事实。
可是如果我是个创业的人,.net是个绝对明智之举,因为能够在最短的时间,最小的成本下,发展到行业的平均水平。毕竟利润来自与我的行业经营活动,而不是我的代码。
java,用起来真的很不爽,一大堆配置文件、一大堆狗屎框架混来混去、调试起来麻烦要死、 出现exception还不知道哪里的问题,可能是开源框架也可能是自己代码。
可是,java赚钱啊。 真是郁闷。。。
-----------------
补充
-----------------
发帖后,3个回贴2个反对我,一个没有表态。
我觉得这说明一个问题,程序员重来就没有思考过经济活动。
性格即命运。