1、谁好谁坏?
如同当初我没有想到会进入Java阵营一样,这次闯入c++阵营也是意料之外的。多年前,受到微软的影响,我几乎是微软的铁杆,对从QB到c#都是深入学习过的。我一直以为微软的软件是做的最人性化的,最好的。2年前,不经意的走进了java的大门,虽然我学习过java,但是对于这个不能做漂亮界面的语言一直有抵触的思想。这一次走入,让我成了java的忠实支持者。支持java的开源社区,群众的力量远远大于微软的那几个,和他们相比,微软的东西(除了操作系统)就算是机械时代的产物了。
再次转移到c++阵营,迎面而来的是一阵担忧的云雾。无论是Linux创造者对c++的鄙视,还是c++应用范围的严重萎缩,都不得不让我担惊害怕。经过1个多月的熟悉之后,我又慢慢的恢复了一点点感觉。我们承认,做应用c++不如c#(java)等没有指针的语言,做底层c++不如c等速度快的语言。但,我们不能否认,在复杂度较高的算法级别,在使用了stl和boost等大量优秀库后,c++绝对比c#(java)运行快,比c编码快。要注意,这时的c++,拥有了c#(java)的内存处理的优点,也拥有c的速度的优点。
如果你要编写复杂的算法,那么c++是最好的选择。如果你只是测试算法,你可以用java(c#);如果是要在单片机上面运行,你可以用c。但是,如果你要做一个在pc上运行的程序的算法底层,c++绝对是最好的选择。
2、java的编程特点
java的成功完全得益于它在网络应用上的推广。广大开源阵营的兄弟们也是java得以红遍天的主要推动者。虽然js和java没有什么本质联系,但js标准也成了java语言的宣传者。比较起来,java自己宣称的跨平台特性反而并不受人关注。
java语言目前最成功的地方至少有3个方面:1)jvm速度的不断提高;2)大量优秀ide的出现;3)数也数不清的开源库。简单的说,可以用java的地方,一个审时度势的人不会使用c/c++。
java的最大优势是它的不断持续的发展。在java世界,早就是j2ee的分布式部署、rmi的远程调用、spring的反转控制、aop的切片控制等其他语言想都不敢想的技术的天下了。使用java的人,永远都要走在技术的最前沿!
使用java编程,你必须理解各种构架,你必须理解各种设计模式;使用其他语言,可能你就只需要知道怎么写函数即可。举例来说,有个用c/c++写了10年代码的人,猛然看到java的程序,他看的头晕目眩,说到处是接口,跳来跳去都看不清楚怎么回事。他只理解到函数级别,当然看不明白基于对象级别设计的java程序。