服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

java还是c++?


  java还是c++?
  java特别象c++;由此很自然地会得出一个结论:c++似乎会被java取代。但我对这个逻辑存有一些疑问。无论如何,c++仍有一些特性是java没有的。而且尽管已有大量保证,声称java有一天会达到或超过c++的速度。但这个突破迄今仍未实现(尽管java的速度确实在稳步提高,但仍未达到c++的速度)。此外,许多领域都存在为数众多的c++爱好者,所以我并不认为那种语言很快就会被另一种语言替代(爱好者的力量是容忽视的。比如在我主持的一次“中/高级java研讨会”上,allen holub声称两种最常用的语言是rexx和cobol)。
  我感觉java强大之处反映在与c++稍有不同的领域。c++是一种绝对不会试图迎合某个模子的语言。特别是它的形式可以变化多端,以解决不同类型的问题。这主要反映在象microsoft visual c++和borland c++ builder(我最喜欢这个)那样的工具身上。它们将库、组件模型以及代码生成工具等合成到一起,以开发视窗化的末端用户应用(用于microsoft windows操作系统)。但在另一方面,windows开发人员最常用的是什么呢?是微软的visual basic(vb)。当然,我们在这儿暂且不提vb的语法极易使人迷惑的事实――即使一个只有几页长度的程序,产生的代码也十分难于管理。从语言设计的角度看,尽管vb是那样成功和流行,但仍然存在不少的缺点。最好能够同时拥有vb那样的强大功能和易用性,同时不要产生难于管理的代码。而这正是java最吸引人的地方:作为“下一代的vb”。无论你听到这种主张后有什么感觉,请无论如何都仔细想一想:人们对java做了大量的工作,使它能方便程序员解决应用级问题(如连网和跨平台ui等),所以它在本质上允许人们创建非常大型和灵活的代码主体。同时,考虑到java还拥有我迄今为止尚未在其他任何一种语言里见到的最“健壮”的类型检查及错误控制系统,所以java确实能大大提高我们的编程效率。这一点是勿庸置疑的!
  但对于自己某个特定的项目,真的可以不假思索地将c++换成java吗?除了web程序片,还有两个问题需要考虑。首先,假如要使用大量现有的库(这样肯定可以提高不少的效率),或者已经有了一个坚实的c或c++代码库,那么换成java后,反映会阻碍开发进度,而不是加快它的速度。但若想从头开始构建自己的所有代码,那么java的简单易用就能有效地缩短开发时间。
  最大的问题是速度。在原始的java解释器中,解释过的java会比c慢上20到50倍。尽管经过长时间的发展,这个速度有一定程度的提高,但和c比起来仍然很悬殊。计算机最注重的就是速度;假如在一台计算机上不能明显较快地干活,那么还不如用手做(有人建议在开发期间使用java,以缩短开发时间。然后用一个工具和支撑库将代码转换成c++,这样可获得更快的执行速度)。
  为使java适用于大多数web开发项目,关键在于速度上的改善。此时要用到人们称为“刚好及时”(just-in time,或jit)的编译器,甚至考虑更低级的代码编译器(写作本书时,也有两款问世)。当然,低级代码编译器会使编译好的程序不能跨平台执行,但同时也带来了速度上的提升。这个速度甚至接近c和c++。而且java中的程序交叉编译应当比c和c++中简单得多(理论上只需重编译即可,但实际仍较难实现;其他语言也曾作出类似的保证)。

扫描关注微信公众号