编程语言跨平台性的思考,以c和java为例

一开始接触java的时候,没有想通为什么要再发明一个java语言出来,c,c++不是已经很好了吗?再弄一个和c很像的java出来,有什么必要呢?

现实很好的教育了我,现在java是编程界最火的语言之一。顺便说一句,在我的理解中,python算是另一种风格的java吧,在跨平台上与java一样都做得很好。

我个人的理解,java做到了两点c没有做到的事情,使得java青出于蓝而胜于蓝。

  1. 用java编程比用c语言简单,有人或许会说,c语言的语法很简单的呀,我没几天就学会了。我要说的是,学会了C的语法,与用C写出好的代码是两回事,就像你学会了英文的语法,与成为莎士比亚是两回事,顺带说一句,莎翁时代的英语与现代英语差别很大。汇编语言的语法也并不复杂,实现同样的功能,用汇编语言来完成就比用c语言来完成麻烦得多。别小看java比c语言只是这里简单一点,那里简单一点点,汇集在一起,就是java比c的生产效率要高得多,当然这是以执行效率为代价的。但在硬件飞速发展的今天,执行效率成了第二位考虑的因素。
  2. 用java编程的跨平台性好,比c语言要好太多。java编写的代码基本上不用再做改写就可以在多个操作系统上运行,但用c写的代码,基本上都要做不少改动才能在另一个操作系统上运行。这就是为什么很多用C实现的项目都要单独做一个操作系统的隔离层,在此层之上,尽量与操作系统无关,在此层之下,各个操作系统都有相关的代码,有时虽然写在同一个文件中,但用了不少#if #else之类的条件预编译指令。也就是说java的跨平台性不用开发人员实现,但C语言的跨平台性要由开发人员实现。这样一来,两者的开发工作量就完全不一样了。

java实现跨平台性是由虚拟机 jvm完成的,这是一个在操作系统虚拟机上再实现的更高一层的虚拟机,它屏敝了操作系统的差异。而c实现的跨平台性则要由开发人员手工编程来实现,没有语言的虚拟机这一层,这就使得用c做跨平台要难得多,复杂得多。

做一点延展性的思考,一种跨越各种手机操作系统的编程语言是历史的呼唤。现在有不少的人在开展这方面的工作,但最终谁会是下一个java呢?拭目以待!!!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值