SVN8.COM - SVN中文技术网

投递文章 投稿指南 SVN中文技术网公告:技术交流诚聘优秀版主最新公告
搜索: 您的位置主页>JAVA技术>JAVA与C++:哪个更好

JAVA与C++:哪个更好

SVN技术网 www.svn8.com 2008-05-21 13:51:02   来源:   作者:  评论:0 点击:
很多人在问:我是否应该学习JAVA;我看到,很多人在问:JAVA和C++哪个更好?
我想我没有资格回答这些问题。但我想CUJ有资格。本文出自CUJ的import.java.*专栏
——以CUJ而开设JAVA专栏,这本身已经证明广大C++程序员对JAVA的重视程度。究竟哪个好?好在何处?是否应该学?应该怎样学?应该学什么?……太多的问题。希望本文能起抛砖引玉之效。希望本文的读者能亲自看看这些专家指点,从而形成自己的判断。

本文作者Chuck
Allison对程序设计有丰富的经验,并且有多年使用C++的历史。而我也是一个C++的狂热爱好者。因此,我想这篇文章应该很对你——C++开发者——的胃口。

一次JAVA旅游的质量取决于本次旅游的向导。我们是幸运的,Chuck
Allison是一个经验丰富的向导,无论对于C++还是对于JAVA都是。
----------------------------------------------------------------------

再一次向你问好。“import
java.*”欢迎你们——C/C++程序员们——来学习JAVA。在你以前的案例中,你可能有很多理由想要这样做。JAVA远不止是一种增强WEB页面的机制。它是一种用途广泛的面向对象程序设计语言,它建立在对软件工程工业的许多需求之上。当你开始学习JAVA之后,你将成为一个更好的C/C++程序员,因为JAVA的语法与C++非常相似。并且,如果你是一个喜欢面向对象编程原则的C++程序员,你将感到象是回到了自己的家。就如同很多C程序员选择了C++一样,许多C++程序员正在寻找自然转向JAVA的途径。

我将分析JAVA所有的特征:语言、库、以及思想,但是从C/C++的视角。这意味着我不是一个JAVA的盲目信仰者(可能是一个狂热爱好者,但不是一个盲目信仰者:-))。实际上,我对C++的掌握和爱好可能在某些时候让我偏向另一个方向。这也意味着我将可能做一些坏不堪言的事情:我将比较这两种语言并尝试说明一些有用的东西。在这篇文章中,我只提供对JAVA的一个大概的观察,而把具体的教学留在将来的部分中。但首先,我让你看一点背景。
关于“骗局”的一些话
在1984年与Apple
MacIntosh的联系中,我第一次听到了“面向对象”这个术语。当我问“面向对象是什么意思”时,他们胡乱说了一通关于屏幕上的图形对象的话。这就是一个神话:图形化用户接口让某些东西变得面向对象。

在20世纪80年代中期,“面向对象”这个术语被滥用,以至于刺穿这个骗局唯一的方法就是:找到一种毫无疑义的面向对象编程语言并使用它。当我在1987年发现LISP时,我开始领悟面向对象的思想,并对“语言对封装、继承和多态的支持”有了第一手的经验。

在那一年的晚些时候,我参加了某个关系数据库管理系统(relational
DBMS)厂商的现场销售演示会。我已经非常精通他们的产品,并且我是我们公司内的“专家”。在演示会的过程中我听到这样的说法:“<产品X>是面向对象的。”我跑到前面问那位演示者:“你说<产品X>是面向对象的,这是什么意思?”然后我在整个演示会中再也不说一句话。其后的讨论表明,<产品X>根本不是面向对象的——它只是他们经常说的一种东西:骗局。

你也许知道,70年代的时髦词汇是“结构化设计”,它最终在80年代的工业中得到了很好的应用;80年代的骗局是“面向对象”,而它正是今天的正统。那么,今天的骗局是什么?模式,我猜;以及,是的,JAVA

基础 vs. 骗局
C++的声望在没有任何推销的情况下如此爆炸性的增长,这是件有趣的事。在1982年,C++的设计者Bjarn
Stroustrup面临一个困难的选择:对“C with
Classes”(后来被命名为C++)的用户的支持吞噬掉了他一大半的时间,但还没有足够的用户让他有资金成立一个正式机构。对于这种情况,Bjarne说:

“我看只有两种脱离困境的办法:
1. 停止支持C with Classes。
2. 开发一种更好的新语言,使它拥有足够多的用户,以获得足够的资金来支持和发展一个机构。当时我估计至少需要5000个工业用户。
第三种选择——通过推销(骗局)来增加用户数量——从来没有在我的脑海中出现过[1]。”
在1991年,C with
Classes诞生后的第12年,C++的用户数量已经达到了四十万,而且这个数量每7.5个月就翻一番[2]。(一点点数学知识告诉我:如果这个增长率一直保持下去,到2000年时地球上的每个人都将是C++开发者——一个真正可怕的Y2K问题!)

因为没有计划周密的销售计划,而且,因为C++是如此“复杂的语言”(也许我们曾经听到过这种说法),我们可以相当有把握的说:C++只靠它的技术优势成为了面向对象开发工具的领袖。就和以前的C语言一样,C++从基础做起,它满足开发者的热情,它不断增强自己的能力以满足更多的需要。

技术交流 录入:SVN中文技术网[www.svn8.com]
Tags:  
责任编辑:
  • 请文明参与讨论,禁止漫骂攻击。 用户名:新注册) 密码: 匿名:
    评论总数:0 [ 查看全部 ] 网友评论
    关于我们 - 联系我们 - 广告服务 - RSS订阅 - 网站地图 - 返回顶部