C是王道
C++是正道
erlang是大道
python是歪门邪道
java是无间道
公司网站在用java作了3个版本后,终于选择要基本废弃java了。
缘由有如下几个方面
一、单一堆的内存管理,stop the world的full gc
公司在不少服务层上须要高性能和及时的运算,而且要加载大量的数据到内存中,这些服务都会因full gc带来错误。
二、java打包部署的过程太过痛苦,如今生产环境使用hadson(原来用CC)作CI,每次代码提交,打包上生产的过程都很麻烦,再加上maven/ivy和ant这类的东西,几乎得有一个专职的配置管理人员。
三、java程序员是不少,但高水平的就太难找了,熟悉多线程、NIO等特性的更是难寻,对GC,分代管理,回收算法熟悉的更少。
这点上java很适合作外包型的企业应用。找两个架构师,再找一群码工就完成工做。
四、java程序员之间的沟通成本很高,这点在团队规模大了后尤为明显。比之python,ruby,c#都高,并且若是和用其余语言构建的系统的团队沟通,彷佛就更难了。
五、java语言自己的发展让人很不满意,1.7也就C#2.0->3.0之间的水平。
六、oracle的作法让人心寒,James Gosling,Doug Lea都离开了,你还留着吗?
固然还得部分保留java,不然就不是基本放弃了。
一、neo4j:SNS的图数据库如今就它能知足要求,只能尽可能精细的控制full gc的发生了
二、hadoop/hbase:hadoop/hbase如今没有更好的替代方案了,hadoop的full gc到不是什么大问题,hbase就严重的,好在还有MSLAB来缓解一下。
废掉java后用什么?下面的部分来逐个分析,大致上会是C++/python/erlang再加部分java,用thrift做为跨语言调用的规范。
让每一个技术用在最适合的地方,不要让语言成为瓶颈。java