跨平台,跨出心域


  by Yazy,2005-5-31

现代的程序设计语言被谈论很多的话题有“跨平台”。Java语言有“Write once, Run every”的平台无关
性广告,很多Java程序员以此倍感自豪。C++语言也被称为“跨平台”性最好的语言之一,信仰C++的程
序员也会为此倍感自豪。

Java跟C++相比,谁更加跨平台?我觉得它们都有很强的跨越能力,都已是大气里不可缺少的一部分,都
已容入大气,无所不在,无处不有。

Java从原来生存于WebBrowser的Applets成长起来,如今的Java已经可以生存于Windows桌面,Linux桌
面,Web服务器,手机、掌上电脑等移动设备……Java与生俱来的网络生存能力无与伦比,Java无所不在,
其生命力由人所见。

Sun控制着Java试图侵犯信仰其它语言的神圣领地,比如C++。在市场气氛的熏陶之下,Java会将自己所
有的“特长”展现出来,并以此打击其它信仰者神圣不可侵犯的圣地。Sun就像一个精力十足的传教者,
将Java带到每一寸纯洁的地域,甚至是侵入已经被其它文化熏陶过的地方。Sun试图使用一些贬低、讽刺
的语言来诋毁其它文化,以达到侵入其它文化的忠实者内心,并取而代之的目的。

毫无疑问,Sun是在市场魔手的驱动之下,在试图默默地控制人自由选择的权力。信念不够的人便被其精
辟的广告语、以及幽默的诋毁性短语动摇,以至放弃原有的信念,重新选择。这种诋毁也在很多人言行之
中有意无意的表露出来,说明了普通人也有意无意地会有这些诋毁的言行。如果这种诋毁成为一种意识,
那么人类命中注定要活得更累。抛开所有宗教气氛,人最基本的就是尊重别人,包括尊重人的自由选择权。
诋毁人的选择,这是在侮辱人,是在默默将气氛紧张,并使之带有敌意。

跨平台在商业上是商家们竞争的一个切入,从社会效益的角度去看,跨平台更有益于社会的发展,更容易
得到用户的青睐。用户可以使用同一个工具在不同的操作平台上工作,省去了学习新工具的时间,提高了
社会运行效率。

Java的跨平台基于动态的二次编绎,C++的跨平台基于开发者所使用的编绎工具集以及库。Java的跨平台
层次止于其字节码,C++跨平台层次止于其源代码。Java字节码的执行全懒于其二次编绎程序,C++源代
码的执行全懒于编绎平台。从运行的效率讲,Java字节码需要经二次编绎的过程,而C++编绎后的原生代
码不需要这个过程,可以想象两者的执行效率的不同。Java字节码的执行可以有更多的定制化,而C++等
语言生成的原生程序不会有定制执行。

.NET平台也是二次编绎的运行平台,任何高级语言只要能编绎成.NET的“字节码”,即Intermedia Language,
就可以运行于.NET平台。现代的很多解释型语言都增加了二次编绎平台,以加快程序运行效率以及语言的
灵活性,提高跨语言交互性。例如Perl社区与Python社区共同提出的Parrot平台。Parrot的思想的形成时期
并不.NET晚,两都的出现没有模仿或者跟随的情况,两者不约而同的出现可能就说明了这种“二次编绎”
的运行方式有它的需求空间。

脚本、Java、.NET、Parrot和C++,这一切最基本的不同就是程序运行的方式不同,而用户需要哪种运行
方式,需要什么样的运行效率用户完全可以自由选择。用户的选择直接影响到的是程序的开发方式以及开
发效率,脚本程序相对来说开发效率是最快的,次之是基于中间代码的语言,相对开发时间最长的是
C/C++。用户有权力在这些选择之中作出权衡。

开发者是个特殊的用户,是开发工具及语言的最终用户。程序员有权力选择自己喜欢的开发平台,而为各
种诋毁性短语所默默左右便显不够自信,定力不足,任何诋毁都是极俱侮辱的言语。我们没有理由否定人
的选择……

我喜欢强大灵活的工具。语言我喜欢C++,平台我喜欢GNU的开发平台。然后强大的工具都不是万能的,
总有不足之处。而我并不追求完美,亦都不追求完美与第一,“第一”是别人的哲学。

工具以及平台的强大与灵活换来的是学习曲线的陡峭,学习时间需要更长。这也常常是程序员选择开发平
台的要求之一。“人不能被束缚于工具”,所以一个工具如果需要花更多时间去掌握,可能会被更多的人
拒绝。这也是个权衡选择的问题。

程序员应该跨出语言之间、操作系统之间、工具之间的商业竞争所带来的污染地带,跨出绝对信仰与绝对
排斥的心域才能够活得更轻松。我心中的程序员是多才多艺的,是刻苦耐劳的。程序员热爱生活、积极向
上,程序员是情感丰富的动物。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值