论《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编程只具有理论上的可能性。现实开发中若真有人这么做,也许他不是天才就是疯子了。 :)
分享到:
相关推荐
基于java语言开发的C语言词法分析器,附带界面,可以打开文件,可以识别常数、界符、运算符、关键字和标识符,常数中又可以区别整数和实数。
各种学习资料 Android Python Java Java web C语言 C++ 汇编 Android逆向 Arm开发 51单片机 Photoshop 会声会影 Windows Unity cocos2dx 教程 视频 各种学习资料 Android Python Java Java web C语言 C++ 汇编 ...
各种算法 java和c语言两种实现各种算法 java和c语言两种实现各种算法 java和c语言两种实现各种算法 java和c语言两种实现
Java和C语言实现各种经典算法_含代码图例_
Java和C语言的对比.pdf
java调用c,总结了各种类型
adfadfdsfasdf java编写 c语言词法分析器
数据结构算法 java和c语言两种实现 数据结构算法 java和c语言两种实现
java调用C语言动态链接库
java程序与C语言程序通过SOCKET通信的简单例子
Java和C语言实现各种经典算法(含代码图例),对于学习JAVA很有帮助,帮助掌握经典算法。
java 语言模拟C语言的结构体,以方便java 与C语言使用socket通信。
四则运算--Java、C语言 代码(记事本保存)。点个赞再走啊,客官~ 四则运算--Java、C语言 代码(记事本保存)。点个赞再走啊,客官~ 四则运算--Java、C语言 代码(记事本保存)。点个赞再走啊,客官~ 四则运算--Java...
在java中调用C语言的函数,对初学者很不错的实例! 在java中调用C语言的函数,对初学者很不错的实例!
Java与C语言混合开发是一种强大的编程技术,它结合了Java的跨平台性和C语言的高执行效率。通过JNI(Java Native Interface)技术,可以在Java代码中调用本地方法(Native Method),实现更高效、更灵活的程序设计。...
java实现c语言编译器,包括词法分析,语法分析,语义分析,目标代码生成四个部分,总体实现编译器功能,有运行界面,代码精简,值得下载。
经典常用算法 Java和C语言两种实现,一些常用算法的java与c语言的实现.
使用java和C语言描述的,保证加密的结果是一致的。
使用java实现了基本的c语言词法分析器,实现的功能是对导入的DFA转换表进行词法分析,输出Token序列,并输出转换表。