首先分享一点数据吧:
JavaEye的PV到了140万了,一年前才100万出头,增长算不错的。仍然是单台Web服务器,Rails处理动态请求超过340万,除了真实用户访问,还有API,
RSS以及很多爬虫的请求。看JE的alexa排名,CN排92名,全球790名,不过就2台服务器(1个web+1个DB),2个
程序员而已。
所以选择技术的时候,不能盯着TOP10的
商业网站看,因为很少有创业团队最终能够走到TOP10,也不需要走到TOP10,即使现有的语言和
架构无法满足需要了,更换技术架构的网站也很多:2000年我在上海出入IDC机房的时候,旁边是易趣的服务器,都是用
FreeBSD跑PHP,可是后来易趣大了以后,迁移到了
Java平台;阿里巴巴早期也是用PHP的,后来请了SUN的团队帮助做架构,后来慢慢迁移到Java平台了。而且正如很多人所说的,一个大
访问量和高负载的网站,性能好坏取决于架构,而不取决于
编程语言,用什么编程语言都可以架构出来一个很强大的网站,所以,现实一点来说,选择什么编程语言,更多的是从团队建设的角度来出发的。
因为每个团队的情况都不同,就拿我们自己来说吧:
招聘一个PHP的10人团队难不难? 难!非常难!我们现在连一个
PHP程序员都招不到,投递简历过来的,绝大部分通知面试都不来,其中还有一个竟然这样和我们说:今天我没空,改天我面试你们附近一家公司,顺便去你们公司面试。偶然幸运的来的几个
候选人一聊,很多基本功都不过关。
上周末搞活动,有腾讯的哥们问我,有PHP程序员推荐给我啊,我们急需,我听了都想吐血。你们腾讯,百度,新浪,网易都在北京狂招PHP程序员,还给不给我们小公司活路?何况你们现在都招不到,我怎么可能招得到?
反过来说招聘一个3-4人的Ruby团队难不难? 也难,但是难度小一些,起码可以自己培养,而且自己培养出来的3-4人的Ruby团队的生产力会超过10人的PHP团队,也许单人成本高一点,但是整个团队的综合人力成本会更低,团队
战斗力还更强。
其实这里面引申出来一个问题:小公司应该组建
什么样的
研发团队? 大规模普通水平普及型编程语言团队,还是高效率高生产力小规模团队?我认为目前小公司唯一的活路就是高效率的小规模团队,这样的团队才能充分发挥小公司灵活创新的特点,才有可能在某些方面战胜大公司,也才有可能在人才竞争方面胜出。
小公司如果想组建大规模普及型编程语言团队,往往是个看似容易,实则无法实现的泡影:一方面普及型编程语言招聘需求旺盛,跳槽频繁,你比大公司在人才方面的竞争力弱,不可能招聘到很多合适的人才;另一方面小公司去管理上规模的研发团队,管理上的挑战非常大。我们都知道,研发团队每增加一个人,沟通成本都指数级上升,规模到了一定的阶段,就必须动用严格的KPI体系,而不是靠个人激励来管理研发人员,而一旦制度化管理研发团队,隐性的人力成本浪费就是惊人的。最终结果就是你的研发团队规模越大,整体生产效率越低,而整体生产效率越低,你就被迫越扩大研发团队的规模,最终陷入恶性循环。
JavaEye的实践可以证明,高效率小规模团队的生产力可以超过大规模普通研发团队。其实我也很想有大把的钞票,很好的
公司品牌,
牛人们纷至沓来的那种感觉,但是那都是幻觉。我们要以弱胜强,以少胜多,就必须选择自己build团队,自己培养人才,采用高效率的秘密武器。
最后推荐一篇文章: Rapid Development with Rails ( OSDC 演講)