Java : 一个帝国的诞生
作者:网友投稿 时间:2018-09-13 16:23
1.C语言帝国的统治
现在是公元1995年, C语言帝国已经统治了我们20多年, 实在是太久了。
1972年, 随着C语言的诞生和Unix的问世, 帝国迅速建立统治, 从北美到欧洲, 从欧洲到亚洲, 无数程序员臣服在他的脚下。

帝国给我们提供了极好的福利:贴近硬件, 运行极快, 效率极高。
使用这些福利, 程序员们用C 开发了很多系统级软件,操作系统, 编译器, 数据库,网络系统.....
但是帝国也给我们安上了两个沉重的枷锁: 指针和内存管理
虽然指针无比强大, 能直接操作内存, 但是帝国却没有给我们工具去做越界的检查, 导致很多新手程序员轻易犯错。
至于内存管理, 帝国更完全是放任的态度: 你自己分配的空间, 自己去释放 !
更要命的是这些问题在编译期发现不了, 在运行时才会突然暴露, 常常让我们手忙脚乱, 昏天黑地去调试。
我们的大量时间和宝贵的精力都被浪费在小心翼翼的处理指针和内存分配上。
每个程序员都被这两个东西搞的焦头烂额! 帝国宣称的可移植性骗了我们,他宣称我们在一个机器上写的程序, 只要在另外一个机器上编译就可以了, 实际上不是这样。 他要求我们尽量用标准的C函数库。其次,如果遇到了一些针对特定平台的调用, 需要对每个平台都得写一份 ! 有一点点小错误,都会导致编译失败。
1982年,帝国又推出了一门新的语言C++, 添加了面向对象的功能,兼容C, 有静态类型检查, 性能也很好。
但是这门新的语言实在是太复杂了, 复杂到比我聪明的多的人都没有办法完全掌握这门语言,它的很多特性复杂的让人吃惊。
C++在图形领域和游戏上取得了一些成功, 但是我一直学不好它。
2.反抗
我决定反抗这个庞大的帝国, 我偷偷的带领着一帮志同道合的兄弟离开了,我们要新建一块清新自由的领地。
为了吸引更多的程序员加入我们, 我们要建立一个新的语言,这个语言应该有这样的特性:
语法有点像C , 这样大家容易接受没有C语言那样的指针 再也不要考虑内存管理了, 实在受不了了真正的可移植性, 编写一次, 到处运行面向对象类型安全还有,我们要提供一套高质量的类库, 随语言发行。
我想把这个语言命名为C++-- , 即C++减减, 因为我想在C++的基础上改进,把它简化。
后来发现不行, 设计理念差别太大。
干脆重启炉灶。
我看到门口的一棵橡树, 就把这个语言叫做Oak。 但是后来发布的时候, 发现Oak已经被别人用了, 我们讨论很久, 最终决定把这门新的语言叫做 Java。
为了实现跨平台, 我们在操作系统和应用程序之间增加了一个抽象层: Java 虚拟机
用Java写的程序都跑在虚拟机上, 除非个别情况, 都不用看到操作系统。
3.一鸣惊人
为了吸引更多的人加入我们的新领地, 我们决定搞一个演示, 向大家展示Java 的能力。
出世未久的Java其实还远不完善。 搞点什么好呢?
我们把眼光盯上了刚刚兴起的互联网, 1995年的网页简单而粗糙, 缺乏互动性。 于是我们在浏览器上弄了个小插件, 把java 运行环境放了上去。
然后在上面开发了一个图形界面的程序(Applet), 让它看起来美轮美奂, 震撼人心。
每一个看到他的程序员都会发出“Wow”的惊叹 !为之倾倒。
Java 活了!
通过Applet , 无数的程序员看到了Java这门语言,了解了这门语言特性以后, 很多无法忍受C帝国暴政的程序员, 很快加入了我们, 我们的领地开始迅速扩大。
连C语言帝国里的一些商业巨头也纷纷来和我们合作, 其中就包括Oracle , 微软这样的巨头 , 微软的头领Bill Gates还说 :这是迄今为止设计的最好的语言!
但是Bill Gates非常的不地道, 买了我们的Java 许可以后,虽然在自家的浏览器上也支持Applet, 但是他们却偷偷的试图修改Java , 想把Java绑死在自家的操作系统上赚钱, Java会变的不可移植。
这是我们难于忍受的, 我们和微软发起了一场旷日持久的游击战争, 逼着微软退出了Java领域, 开发了自己的.NET , 这是后话。
4.开拓疆土
从1995年到1997年,我们依靠 Java 不断的攻城略地, 开拓疆土,我们王国的子民不断增加, 达到了几十万之众, 已经是一个不可忽视的力量了。 但是大家发现, Java除了Applet, 以及一些小程序之外, 似乎干不了别的事情。
C帝国的人还不断的嘲笑我们慢, 像个玩具。




