被人邀请来回答这个问题,我觉得这个问题有三个部分:
1)为什么京东选Win/.NET平台
2)选Win/.NET平台行不行?
3)京东的系统的问题是什么?
1)为什么京东选Win/.NET平台?
我觉得京东用.NET的原因应该很简单:一开始他就用.NET/Windows了,所以长期就这样了。
那么,为什么他会一开始用.NET呢?这个东西就只能我就只能推理了。Windows的东西门槛低,而且有很多媒体为Windows做宣传,所以,在这个大多数人是井底之蛙的国度里,大多数人都会用Windows平台的。(10年前,这个社会上非Windows的工作很难找,几乎全是Win的天下,我在CSDN上写了一些文章来告诉大家其实Unix/Linux比Windows要好得多。当时没人理解,现在大家可能能够理解了)
所以,我估计京东的选型用.NET的最一开始是报着这样的心态:
1)随便找几个程序员帮写一下,越快越好,所以可能是那几个程序员觉得熟悉Win/.NET,可以快速搞起来。
2)觉得业务比技术重要,技术无所谓,做出来了就好了。
这是我觉得最有可能选择Win/.NET的原因,是无心去选择的。
2)选Win/.NET平台行不行?
接下来的问题是选 Windows和选Linux有没有哪个更好,我想说的是,都还不错,不要以为选Windows就不好。但选 Windows 的好处并不一定在技术方面,而是在服务方面。
很多金融机构都是用Windows的平台(你可能会和我争吵国内的银行都不是Windows的平台,都是Unix的平台,是的,我也是在银行里做过的,中国的银行几乎都是IBM/SUN/ORACLE的领地,所以,那里都是AIX、RISC600,Solaris,Java,C/C++的地方),但是国外很多金融机构却更多用的是Windows。为什么呢?
金融机构并不在乎钱,他们有的是钱,他要的是稳定,不出错,出了问题能得到最好的售后服务,以及赔偿。这里我说一个我的亲身经历,我的上一家公司是做金融的,他们用的是Windows,有一天在生产线上,因为升级McAfee把Windows搞蓝屏了,dump了一个16GB的dmp文件(内存16GB)。打电话找微软,开了一个0级的ticket,于是,微软的工程师每一个小时都给我打一个电话,告诉我他们的进度,并让我帮他们收集信息,相当的专业,直到很晚很晚,我问他们什么时候下班?他们说,0级的问题他们无法下班,7x24小时,每一个小时要做出响应,不能睡觉,直到问题解决。这是我第一次享受微软的技术支持,我觉得相当地满意。
另外,关于Windows的性能,我在上一个公司用Windows 2008 RC1,发现UDP的I/O性能相当差,我们10GB的光纤带宽用了不到1GB,CPU 0的利用率就顶到天了,还是内核级的,我们怎么优化我们的程序都不行,发现这是Windows的问题,UDP的驱动性能太差,而且操作系统总是会把内核级的程序绑死在CPU0上,我们知道,对于多核的CPU,CPU0有调度的作用,如果CPU 0性能被占满了,这意味着这个CPU上的其它核的性能也不行了。后来,问题报给了微软,Windows 2008 RC2解决了这个问题,解决地非常好。
从上面的我的经历,我想说:
◆ Windows的服务是很不错的,只要你愿意花钱。
◆ Windows平台的性能有很多问题,但是可以看到MS在很努力很努力地解决。
当然,我个人是相当不待见Windows的。不过,这只是我的个人喜好。并不能说Windows不是一个成功的操作系统或是服务器。我觉得比Unix成功多了(这里的Unix是各种公司的Unix,比如:HP-UX, AIX, Solaris, IRIX ...)。
这是我想回答的第二个问题,京东的问题和用Windows没有关系。但是作为超低利润的零售业来说,能用Windows这个平台真是大手笔啊。
3)京东的系统的问题是什么?
京东的系统的问题,明显是自己架构和管理的问题。这个东西不能说得太细,不然就泄露机密了。 呵呵。
1)首当其冲是管理者的问题。不觉得技术重要,不听技术人员的建议,急功近利,超,快,猛。
2)其次是开发团队的人的问题,乱来。当然,有客观条件和上级逼着他们不得不乱来。
总之,我并不觉得这是技术问题,这分明就是管理问题,管理上的问题则暴露的是人的问题。
下面有些个人观点:
1)有些人说有问题就有机遇,还有些人说花高薪招人吧。我觉得这还得要看是什么情况,如果公司注重技术,那么就会有机遇。但是重视技术绝不仅仅是用高薪请人,向技术部多投钱,这是肤浅的认识。所谓重视技术,就一定要能让技术部门有话语权,没有话语权的技术部门,是不可能有机遇一说的。(京东已经在花高薪挖人了,花相当的高的钱,但是如果不注重技术,一切都是白搭)对此,我觉得不换高管,别无他法。
2)有些人让京东换架构。是的,很明显这个架构太差了。但是你真的无法对一辆正在高速行进的车更换(核心)零部件。你必需得让车停下来!而且,还得需要像F1那样的设计,那才能很快地更换部件。从这点来说,我觉得京东除了重新开发一套,别无他法。
以上回复,不见得对,仅供参考。