跨平台,跨出心域

原创 2005年05月31日 17:19:00


  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的开发平台。然后强大的工具都不是万能的,
总有不足之处。而我并不追求完美,亦都不追求完美与第一,“第一”是别人的哲学。

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

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

跨出第一步

应该说昨天就跨出了第一步,然后今天想到通过CSDN来记录每一天的收获,同时可以经常查看当作一种复习资料把。 最近感觉是想要同时学学java和windows驱动。但是还有好多东西想学,Linux啊,w...
  • xsg_BK
  • xsg_BK
  • 2015年09月01日 22:18
  • 143

[文艺向]MATLAB画心

此贴为整理贴 感谢网上各位matlab大神。 %O(∩_∩)O哈!我很厉害吧 clear d=300 r1=16 r2=8 f=0.45 x=1:1:d q1=f*2*pi+r1*pi/d...
  • qq754406613
  • qq754406613
  • 2015年02月01日 19:15
  • 1461

画心

// // HeartView.h // Heart // // Created by targetcloud on 2017/7/27. // Copyright © 2017年 targe...
  • callzjy
  • callzjy
  • 2017年07月27日 20:02
  • 314

双远心镜头原理及选型(一)

转自 http://jingyan.baidu.com/article/a3aad71aab11e9b1fb0096e7.html 工业镜头是机器视觉采集系统的重要组成部分,远心镜头是镜头大家族中相...
  • yu_fujiang
  • yu_fujiang
  • 2017年02月21日 13:30
  • 1231

【CSS3】动画之跳动的心

【CSS3】动画-跳动的心 情人节心跳动动画 html, body{ width: 100%; height: 1...
  • zuncle
  • zuncle
  • 2017年02月09日 17:16
  • 450

求二值图像的形心

对于一张二值图像而言,假如白色像素区域为目标像素区域,黑色像素为背景,用1表示白色,0表示黑色像素,则图像目标的形心求取公式如下: 其中x0,y0是质心坐标,f(x,y)是二值化图像在点(x,y...
  • gxiaob
  • gxiaob
  • 2013年03月16日 22:50
  • 8715

跨平台C、C++代码注意的事项

在我们的开发中,跨平台的需求越来越强烈,如何保持C/C++代码能在多个平台上编译,是一个比较值得研究的问题。关于跨平台的文章网上很多,跨平台的库网上也很多。那么我从自己的跨平台开发经验谈一谈自己的心得...
  • zhouxuguang236
  • zhouxuguang236
  • 2015年04月21日 09:49
  • 5327

#学习笔记#(41)CSS3画心

原理,两个圆与正方形组合而成,正方形边长与圆的直径相等 代码如下 .box{ width:200px; height:200px; margin:50px ...
  • qq_24734285
  • qq_24734285
  • 2016年02月11日 23:48
  • 1133

心蓝订票助手破解

心蓝订票助手破解
  • q317379184
  • q317379184
  • 2014年02月23日 15:50
  • 6295

C语言画心

作为资深笑点寻觅者,今天发现了个很好玩的程序分享给大家~~画心的C语言 #include int main() { for (float y = 1.5; y > -1.5; y -= 0....
  • qq_32146369
  • qq_32146369
  • 2016年10月16日 18:53
  • 1345
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:跨平台,跨出心域
举报原因:
原因补充:

(最多只允许输入30个字)