且说前一段时间听淘宝的黄裳讲解淘宝网站架构发展的时候,说起 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–
哪么到底什么样的情况下该用什么编程语言呢?
确实,看csdn就知道了。
对于这个问题, 正好工作周边经历着变革, 所以细细品读了一番, 但是也有些疑问.
这句,
“对于电子商务网站来说,语言的选择意味着不同的架构路线、不同的开发框架、不同的测试框架、不同的部署流程,最后更为主要的是不同的开发效率,意味着可以把更多的开发资源并入到当前的环节中。”
这句话没大看懂.
对于非电子商务网站, 语言就不会影响到您说的其他环节了吗? 我的问题是, 没从这句话中看出来电子商务在这些环节上有何不同和特点.
“更多的开发资源并入到当前的环节中”, 这个是指?
还有京东的”作坊方式”在哪里能略了解一二, 想和周边比较一下:)
非电子商务网站,我不懂。
更多资源并入…是指到了某个阶段,加入更多的开发力量能够有相关的收益。而不是什么作用都没有。
京东的作坊模式,没有地方可以了解。早晚,你会知道的。
明白了, 就是横向扩展, 加1个人头多1份进度/质量.
后面这句话, 很有吸引力, 静观其变呢 :)
前面说工作周围经历的变化, 是从.NET切JAVA, 不知道算不算这个问题的一个特例呢? 以大佬的视角看, 国内做电子商务和支付的多选JAVA, 银行也是, 所以…
从这个角度上, 我能理解的就是好挖人, 别的公司一直都在给储备:D 大家互相储备
记得豆瓣的阿北提到为什么选python而不选ruby时,提到过当时国内的ruby开发都不够多。怕后面不好招人。这也是考量点之一吧。
语言的流行度
或者我说详细一点,什么网站适合php,什么网站适合java?
这一点也是挺有趣的。
如果当时豆瓣流量暴涨 100 倍,用户需求上来的话,豆瓣或许真的很难应付。毕竟团队规模有局限性。他们现在的团队增长差不多和网站的增长匹配了。
用什么更适合,我怎么能告诉你? 自己不知自己的情况么?
什么时候变迁,则是需要勇气和策略的事情。
看来一日还在这个岗位上, 就要琢磨着转换下轨道, 抛开优胜劣汰不谈, 我得顺着做电子商务JAVA+Oracle/MySQL是主流这个国情才行.
恕我寡闻,请问国内哪些网站是基于Ruby的?
另,倒数第二段中,"镇痛"应为"阵痛"。
P1.CN
caibangzi.com
都是RoR 的
> 恕我寡闻,请问国内哪些网站是基于Ruby的?
robbinfan内牛满面 http://www.javaeye.com
是我遗漏了。
Javaeye 的流量应该更大
.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阵营目前来说,整个体系比其他语言完善些,而且有更多的开源软件可以选择。