编程语言的选择并非无关紧要

| 40 Comments

且说前一段时间听淘宝的黄裳讲解淘宝网站架构发展的时候,说起 2004 年底淘宝为何从 PHP 向 Java 转移的事情。为何转换,他阐述了几个理由,其中一个是非常有趣的:当时的 PHP 缺少一个 IDE。而合适的 IDE 能够有效提升规模化软件开发的效率。

我们知道 eBay 在 2002 年的时候也在 Sun 技术团队的帮助下,将整个应用架构从 C++ 迁移到 J2EE 。也就是 eBay 内部所说的 V3 版本(refer)。

最近一件有趣的事情是,据说腾讯的财付通在招聘 Java 方面的高手,"参与系统架构选型",要把底层架构从 C/C++ 迁移到 Java 架构上来。另外,百付宝的后台技术据说也是基于 C++ 的(最开始的时候只是一两个人写核心代码)。我相信,现在百付宝或许规模还比较小,总有一天,也要面临向 Java 的迁移。这和阿姆达尔定律有点类似,要得到更大的计算能力,就要尽量减少整个系统中的非并行的环节。只是一两个人能搞定的地方,再加入更多的开发人员也是无济于事的,除非,改变协作的模式。

去年接触到的一些国内的电子商务公司,有些已经在进行技术架构上的变迁,当然,多数是从 Windows 平台迁移到 LAMP 平台,究其原因,也无非是成本与效率,而后者,更为大家所看重。当然,也有一些顽固派,比如京东,仍然固守原来的手工作坊技术模式。

如果单兵作战的话,很多程序高手会说,"用什么语言都是无所谓的"。但是如果是团队协作开发的话,用什么语言,影响则是不一样的。对于电子商务网站来说,语言的选择意味着不同的架构路线、不同的开发框架、不同的测试框架、不同的部署流程,最后更为主要的是不同的开发效率,意味着可以把更多的开发资源并入到当前的环节中。

事实上,对于一个高速发展中的网站,每隔18 或 36 个月,几乎总要有一次架构上变革的阵痛。没有这种变革的勇气,意味着以后也不会有人敢做这个尝试。没有这种阵痛,就不会有成长。

变化的节奏最后影响一切。编程语言的选择并非无关紧要,短期看来似乎影响不大,从长期来看,决定最终的竞争结果。这就是我要说的。

--EOF--

40 Comments

哪么到底什么样的情况下该用什么编程语言呢?

确实,看csdn就知道了。

对于这个问题, 正好工作周边经历着变革, 所以细细品读了一番, 但是也有些疑问.

这句,
"对于电子商务网站来说,语言的选择意味着不同的架构路线、不同的开发框架、不同的测试框架、不同的部署流程,最后更为主要的是不同的开发效率,意味着可以把更多的开发资源并入到当前的环节中。"

这句话没大看懂.
对于非电子商务网站, 语言就不会影响到您说的其他环节了吗? 我的问题是, 没从这句话中看出来电子商务在这些环节上有何不同和特点.

"更多的开发资源并入到当前的环节中", 这个是指?

还有京东的"作坊方式"在哪里能略了解一二, 想和周边比较一下:)

明白了, 就是横向扩展, 加1个人头多1份进度/质量.

后面这句话, 很有吸引力, 静观其变呢 :)

前面说工作周围经历的变化, 是从.NET切JAVA, 不知道算不算这个问题的一个特例呢? 以大佬的视角看, 国内做电子商务和支付的多选JAVA, 银行也是, 所以...

从这个角度上, 我能理解的就是好挖人, 别的公司一直都在给储备:D 大家互相储备

记得豆瓣的阿北提到为什么选python而不选ruby时,提到过当时国内的ruby开发都不够多。怕后面不好招人。这也是考量点之一吧。

语言的流行度

或者我说详细一点,什么网站适合php,什么网站适合java?

看来一日还在这个岗位上, 就要琢磨着转换下轨道, 抛开优胜劣汰不谈, 我得顺着做电子商务JAVA+Oracle/MySQL是主流这个国情才行.

恕我寡闻,请问国内哪些网站是基于Ruby的?

另,倒数第二段中,"镇痛"应为"阵痛"。

> 恕我寡闻,请问国内哪些网站是基于Ruby的?

robbinfan内牛满面 www.javaeye.com

.net平台不是不好,还在于积累得少

小声的说,java风格在豆瓣内部被不少人抵制:)

EQenglish.com也是RoR的。

其实不严格的说,语言的确无所谓,因为理性的选择就不多,C++除外。。

javaeye流量不是想象的那么大。
我个人觉得淘宝,支付宝用java是因为java企业级别支持很优秀,出了事情,有地方可以解决,PHP之类企业支持太少。IBM,ORACLE大公司基本都支持java,fenng说的其他理由,例如扩展,IDE,不能算主要原因。

php可能比较适合提供内容的网站吧,而博主说的电子商务不仅仅是网站,有很多交易和金钱上的瓜葛。

rails招人是个问题
只能是招有编程基础的,然后给时间培训
应届生是不错的选择

一直觉得java主要用于企业级的应用,基本上要求:cpu不是问题,存储不是问题,内存不是问题。不然的话,单是开发java的开发也比php 对机器要求高(Exclipse现在是越来越吃内存了)。
还有我觉得超大型的应用系统如支付宝,应该存在使用多个语言的情况,充分利用各个语言的优势,只是以java主导而已。
java虽然各种开源框架模式什么甚多,但java程序员尤其是有了一定的经验的多有过度设计的倾向

同是 Rails 的,更加喜欢快速简洁的开发模式
我的观念是先跑起来,赚了钱再说,在加上 Linux 环境下面扩展也比较方便

@mahb45
Rails 招人其实最好是招有个两三年其他语言开发经验的,1个月就熟悉

最起码的,我觉得java开源软件越来越多,比如apache的一些项目,并且越来越涉及原来c/c++的领域,这个本来就是一个巨大的优势

技术上有孰优孰劣,但是个人觉得技术并不是制约商业IT公司发展的瓶颈。更多地要关注模式,口碑,推广等等“非技术”因素

恩 从人员的角度考虑。容易上手并且风险低的自然会得到偏爱。毕竟工程是要人去做的。

个人也觉得IDE,扩展不是主要理由..

关键是还是能不能招到足够多的符合技能要求的优秀工程师..

如果这个语言相对小众,就很难招到足够多的优秀工程师, 随着公司规模的扩大, 以及协作规模的扩大, 往往就比较容易遇到瓶颈..

大型项目的协作并不是java针对C语言的优势, 看看Linux操作系统如何走到今天就大概知道了, 能走到linux这一步的项目并不多, 这也暴露出在C语言领域要找到足够多的优秀工程师代价也非常大.

其实说到底还是人才储备的原因啊,开发团队里面还是要人的。

关键是看技术团队的规模,如果能够保留稳定的技术团队,这样应对网站的变化就好了

怎么可能一样的呢?同样的代码,用不同的语言来写,代码行数都会差别很大的。

如果一个人只会专一门语言,不管多牛,都谈不上喜欢做程序。

对他来说,这就是个饭碗,就要经济收入最大话,最大化的办法就是把一门语言的边角料都搞的特别清楚,显得很牛。

当项目越来越庞大,就不是选择开发语言,而是选择成套的开发体系了。

这已经不是“语言”的选择而是平台的选择了吧

电子商务网站向Java的迁移是必要的, 大多企业的核心业务也是基于Java构建, 电子商务网站需要和这些业务系统进行适当的对接.

呵呵,正好有同学在京东做开发,改天问问他们是怎么个作坊模式。
不过本人所在的小公司(四五个项目组,3、40个程序员)基本上是作坊模式,看了《走出软件作坊》那本书,发现就像写我们公司一样……

动态语言比较适合互联网开发 发布简单

起步阶段,考虑的是快速上线问题。代码再优雅,上不了线没饭吃。真正有一定规模 && 收入稳定,才会考虑架构变革。

PS:只知道,许多公司(特别是小公司)的作坊模式许多都有着无奈之处,表面是技术人员频繁变动,实质则是如素包子所言——“总希望拿60分的钱做100分的事”(http://baoz.net/google-say-goodbye-to-china-because-hacked-by-ie-0day/)

编程语言的选择并非无关紧要
非常赞同题目

但是内容却不敢苟同
看来你的知识结构决定了你的眼光

有个疑问,为什么要从C++转向JAVA?

C++的运行效率是>JAVA的,

难道是为了开发的效率?

谢谢!

我觉得是开发体系的选择,甚至阵营的选择。
我是做php的,网站做大了之后,面临的很多问题都要到java阵营里面找方案,渐渐的也喜欢上了javaeye。
java阵营目前来说,整个体系比其他语言完善些,而且有更多的开源软件可以选择。

关于本文

This page contains a single entry by Fenng published on January 31, 2010 8:48 PM.

大象跳舞 was the previous entry in this blog.

Oracle Exadata 技术浅析 is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.