论《Java替代C语言的可能性》

时间:2021-07-22 00:27:30

论《Java替代C语言的可能性》

在CSDN BLOG上看到孟岩兄的文章:《Java替代C语言的可能性》,挺有意思的,自己也来凑个热闹。瞎说两句。

1. Java真的不可能替代C语言吗?
引用一下孟岩兄中的文字:“C语言目前称王的主要领域是作系统、虚拟机和设备驱动程序开发。”,对这点,大家都没有异议,这太明显了,在这些领域,以目前的计算机技术现状来看,Java不太可能替代C语言。
然而,这只是现状,现在是这样,不等于永远是这样。

如果随着硬件的发展,将JVM直接做到硬件中,让计算机一起动就自动执行JVM,那么,Java倒也真的成为“底层语言”了,让C走开不是不可能的,使用这样的硬件基础,用Java开发一个操作系统又真的是一句笑话?我看不出有什么理由说这件事100%不可能发生。这种操作系统,可以说是一种抽象层次相当高的“操作系统”,底层硬件完成许多原先由软件完成的功能,因此,“Java操作系统”不可能是象Vista这样占了我十几个G的“霸道”OS,会变得相当简单,但会提供独具特色的服务,与现在的当红OS会有很大的不同,同志们:喝点啤酒,在头脑有点晕乎乎的时候想象想象吧!

如果没记错的话,计算机技术发展史上曾出现过ROM-BASIC(还记得那古老的时代吗?绿色的显示器,闪烁着一个光标,输入一句代码计算机就执行一句……)。这种电脑一启动就自动进入BASIC解释执行状态。当时在这种计算机上编程BASIC是绝对的“主流”,没C什么事,Java就更不知道在哪里了。

计算机硬件是“经济基础”,操作系统/应用软件是“上层建筑”,经济基础决定上层建筑。我们只能说在目前的计算机“经济基础”之上,Java取代C还是看上去不太可能的事。

2.JVM与OS一定要用C来开发?
不管用什么语言,编写出什么样的软件,最终都是由CPU执行的。但CPU根本不认识任何高级语言,它直接执行0和1的二进制代码
所以,JVM与OS也不一定非要用C来开发。从理论上说只要是一种能生成可供特定硬件架构执行的机器指令代码的语言可以开发JVM和OS,最极端的,不用任何高级语言,用0和1直接编出JVM和OS(呵呵,梦回穿孔纸带的年代……),只是这样做,等把OS给写出来,地老天荒了……
当然,目前好象还找不到比C更合适开发JVM和OS这种基础软件的高级语言。用Java取代C只能当成笑话说说。

直接用0和1编程只具有理论上的可能性。现实开发中若真有人这么做,也许他不是天才就是疯子了。 :)