对 Java 语言的一些看法总结

一、积极看待 C++ 与 Java 的遗产

源自《ON JAVA 中文版 基础卷》,作者布鲁斯·埃克尔(Bruce Eckel),是《Java 编程思想》的作者对新版本 Java 的升级版。自 C++ 标准委员会诞生之日起,担任了8年委员。
 
“我的语言之局限,即我的世界之局限。”——Ludwing Wittgenstein(1889~1951)

要理解 C++ 语言为什么既复杂难用,又有优秀的设计。是因为 C++的一切设计首要目标是为了兼容 C 语言。C++ 衰退到只会在某些特殊场合用到。

Java 也有类似的问题:

  • 向后兼容性的约束始终是 Java 向伟大迈进的阻碍。
  • 比如 “为了性能,必须引入基本类型”。应该坚守 “一切事物都是对象” 的原则,并在性能有要求时提供巧妙的底层操作能力。基于该思路,热点(hotspot)技术做到了。
  • 还有无法直接使用浮点处理器来计算 超越函数(Java 是在软件层计算的)。
  • 泛型的设计真的很难用等等
Java 是一门派生语言,来自于对 C++ 的改造,最主要的改动就是加入了虚拟机和垃圾收集机制。
Java 面向对象思想和 C++ 一样都是来自于 SmallTalk 语言。
Java 把所有内容都封装为对象不仅是一种负担,而且还会将许多程序设计推向错误的方向。
但是不可否认的是,面向对象编程思想在一些情况下依然十分有用。

但是不意味着 Java 语言是失败的语言,Java 将主流程序员带入了垃圾收集虚拟机统一错误处理模型的世界,尽管并不完美,但它让我们更上一层楼,准备好接纳更高级的语言了。

由于 JVM (其规范使之并不限于只支持某一门语言)的缘故,Java 已经使自己可以被轻而易举地替换掉了。现在任何人都可以创建一门新的语言,并在短时间内使其像 Java 一样高效地运行。但是在以前,对于一门新的语言来说,大部分开发时间往往花在实现正确、高效的编译器上。

例如:即出现了像 Scala 这样高级静态语言和各种动态语言,也出现了各种新语言和嫁接语言,
如 Groovy、Clojure、JRuby 和 Jython。

Java也终将会老去,就像 C++ 那样衰退到只会在某些特殊场合用到。但是 Java 为自己的替代品创造了一条非常平坦的道路,即使 Java 本身已经到了无法再进化的地步。

未来语言有两个参考点可以借鉴:

  • 要么创造一种可以不断重构的文化(如 Python 和 Ruby做到的那样)
  • 让竞争者可以在自己的基础之上茁壮成长,Java 做到了这点。

编程是一门管理复杂性的艺术

如果你了解了一门语言的不足之处和局限性,当你遇到某个语言特性不可用时,就不会被卡住,以致无法继续。同时,因为你已经知晓其局限性,所以就可以更好地进行程序设计。

下面这段话也提到了,Java 向后兼容的问题。

Java 本来有潜力成为一种卓越的程序设计语言,但可能有些为时过晚。一旦一种语言得到广泛应用,与现代代码尴尬的兼容性问题就摆在了人们面前。由于兼容性的需求,新增的一些特性就没有原有的特性那么精巧。 ——《Java 核心技术 卷一》 第12版

Java 并不只是一门语言,Java 是一个完整的平台。

Java 深受欢迎的原因如下:

  • Java 是一个完整的平台,有一个庞大的库,其中包含了大量可重用的代码。
  • 提供了诸如安全性、跨操作系统的可移植性
  • 以及自动垃圾收集等服务的执行环境。

二、关于 Java 的常见误解

误解:1、Java 将成为适用于所有平台的通用编程语言

从理论上讲,这是完全有可能的。但在实际中,某些领域其它语言由更出色的表现,比如,Objective C 和后来的 Swift 在 IOS 设备上就有着无可取代的地位。浏览器中的处理几乎完全由 JavaScript 掌控。Windows 程序通常都用 C++ 或 C# 编写。Java 在服务器端编程和跨平台客户端应用领域则很有优势。

误解:2、Java 是解释性的,因此对于关键应用速度太慢了

早期的 Java 确实是解释性的,现在的 Java 虚拟机使用了即时编译,因此用 Java 编写的 “热点” 代码运行速度与 C++ 相差无几,有些情况下甚至更快。

误解:3、Java 是一种非常容易学习的程序设计语言

像 Java 这种功能强大的语言大多都不太容易学习。首先必须将编写玩具式程序的轻松与开发实际项目的艰难区分开来。Java 类库包含数千个类和接口,还有数万个函数。好在,不需要知道其中每一个类或函数,不过,要想用 Java 解决实际问题,还是需要了解不少内容的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值