选择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++中简单得多(理论上只需重编译即可,但实际仍较难实现;其他语言也曾作出类似的保证)。

在本书附录,大家可找到与Java/C++比较.对Java现状的观察以及编码规则有关的内容。

时间: 2025-01-30 10:17:11

选择Java还是C++的相关文章

选择 Java 编写 iOS 与 安卓 App的八大理由

[编者按]本文作者为 RoboVM 的 CEO 兼联合创始人 Henric Müller,主要介绍选用 Java 编写移动应用的八大理由.文章系国内 ITOM 管理平台 OneAPM 编译呈现. 在过去的十年中,Java一直很火.2015年,它又被再次证明是业内中坚力量--在TIOBE语言指数中占据绝对优势.虽然TIOBE排名的计算方法存在一些问题,但是与其他流行排名如RedMonk和PYPL结合来看,Java语言的受欢迎程度还是显而易见的. 作为行业内的领先选手,Java语言的增长步伐一直比较

选择Java接口还是抽象类

选择Java接口还是抽象类 作者:俞良松 本文选自:开放系统世界-赛迪网 2003年03月12日 很多人有过这样的疑问:为什么有的地方必须使用接口而不是抽象类,而在另一些地方,又必须使用抽象类而不是接口呢?或者说,在考虑Java类的一般化问题时,很多人会在接口和抽象类之间犹豫不决,甚至随便选择一种. 实际上接口和抽象类的选择不是随心所欲的. 要理解接口和抽象类的选择原则,有两个概念很重要:对象的行为和对象的实现.如果一个实体可以有多种实现方式,则在设计实体行为的描述方式时,应当达到这样一个目标:

选择java的理由:java之父访谈实录_Java编程

文章来源:pconline 作者:郁小夫 微软的.NET和SUNone的争夺由来已久,并且有愈演愈烈之势,最近微软的Server2003活动刚落幕,在16日上午"Java之父"JamesGosling在北京出席第六届全国Java技术与应用大会,面对以COM+为核心Server2003凌厉攻势,让我们听听这位传奇人物是如何评价微软还有java的. 以下是James Gosling答记者和Java爱好者的提问: "微软是一个很难合作的公司,在微软的字典里似乎没有合作二字!&quo

WSE3.0选择JAVA生成的证书时提示“selected certificate does not surpport data encryption”

问题描述 JAVA做的CAS服务端,我这里是.net客户端,我想用wse3来做代理,引用webservice,但是在配置的时候选择导入的服务器证书提示数据不支持加密,哪位大侠有过CAS的项目经验啊? 解决方案 解决方案二:看来这确实没什么有实力的,可能还不如我,浪费我的积分

新人求助,关于笔记本的选择(Java程序员)

问题描述 我是一个在学的Java程序员,是大学毕业之后在一个培训机构学习的(也不指望学出什么名堂,关键是是转行,之前是国际船员)平时要使用的软件是jdk_8u20:MyEclipse:Tomcat:Oracle数据库,和PL/SQL.现在这个笔记本是联想Y471A,i3的处理器,4G内存,配置不怎么样,只要运行Oracle就卡出翔.散热风扇转的也很厉害.<----------------------------------------------------下面进入主题-------------

北风网权威解答:如何选择Java、.NET、C/C++

有相当多的计算机初学者,都喜欢关注哪一个专业更好,深怕学了之后会出现厌学.误学等方面的问题,为此,北风网的IT培训学校专家则表示:在软件行业,每个专业都一样很热门,主要是看个人对什么更感兴趣一点,特别是注意4点. 第一:看你的兴趣.很多人对游戏感兴趣,但是要搞清楚你是对"玩游戏"感兴趣还是对"编写游戏"感兴趣. 第二:看哪一个更容易就业,不要相信任何培训机构的忽悠,到招聘网上去搜"java.C/C++..NET..."看看哪个需要的人多就可以了.

java与.net怎样选择?

问题描述 大家都知道,java和.net是当今编程语言的两大阵营,也正是如此,笔者近日一直在思考一个问题,根据当今语言的发展形势和未来潜力来看(比如说国内软件行业的发展状况以及各公司软件需求情况),到底何种方向更具竞争力呢?对于程序员而言到底是选择JAVA方向发展更大,还是选择.net方向更加明智?java和.net哪种更容易上手呢?java的一大优势是开源,相比之下,对于.net编程而言,是否意味着在编程过程中有所限制呢?(例如:一些资源不是开源的)又是否因为这样而会影响到国内很多软件公司对程

spring mvc-EasyUi跟bootstrap选择

问题描述 EasyUi跟bootstrap选择 java小菜鸟,现在想学习一个前端框架,想在easyui和bootsrap中选择一个,希望 有明白的给解释一下,哪个上手快一些,还有谁有Spring SpringMVC Mybatis的项目, 希望有人可以指点一下,谢谢 解决方案 bootstrap datetimepicker 选择月份 选择年 解决方案二: 我当时学习java的时候是直接用简单的html页面实践的,没必要用前端,除非你要开始做项目.另外,如果要学前端的话,推荐bootstrap

Java核心技术 卷Ⅰ 基础知识(原书第10版)

Java核心技术系列 Java核心技术 卷Ⅰ 基础知识 (原书第10版) Core Java Volume I-Fundamentals (10th Edition) [美] 凯S.霍斯特曼(Cay S. Horstmann) 著 周立新 陈 波 叶乃文 邝劲筠 杜永萍 译 图书在版编目(CIP)数据 Java核心技术 卷Ⅰ 基础知识(原书第10版) / (美)凯S. 霍斯特曼(Cay S. Horstmann)著:周立新等译. -北京:机械工业出版社,2016.8 (Java核心技术系列) 书