跨平台技术浅析

     今天是假期的第一天,下午与同伴们一起去参观了下南阳汉画馆,感受到了浓烈的科技与艺术气息,这让我灵感阵阵,借助难得的状态,写成此文,以了我几日的心愿。    

     

     软件发展到今天,跨平台已经成为了一个不可阻挡的趋势,对现今的几种主要跨平台技术,在这里我们简单的分析一下它们的基本实现原理,在开始之前,我们要先弄明白几个基本的概念。

    

 概念一:

     语言与其链接库:语言通常会伴随有对应的链接库,没有链接库的语言,几乎什么什么程序也写不出来,打个简单的比方:你用C语言写一个“HELLO Word!!”小程序,你就要用到“stdio”的链接库,如果你没有使用它,将什么也出不来。

 

概念二:

     平台与链接库:开发平台同样也附带的有对应的链接库,如果一个平台没有链接库,那将是一个没有任何开发空间的平台(此平台没有任何前途...),同样,打个简单的比方,你用Visual C++开发Windows程序,你需要用到GDI32,USER32或MFC等链接库。

 

    搞明白前面的概念,我就好向你们解释跨平台了,我们在一个操作平台上开发的程序,为什么拿到另个平台上重新编译后就不能正常运行了?原因就在于平台的链接库上,比方说,你用C语言搭配Win32链接库(Windows的)开发一个程序,你把它拿到Linux上编译,却无法编译成功,问题就出在Linux没有Win32链接库。

   

   下来我们来看看几种跨平台技术实现的基本原理:

  

 QT:

     QT的是这样做的,用一个链接库将各个主要平台的链接库抽象出一个共通的链接库,实践证明,你用C++搭配QT链接库做的程序,可以在不同的平台上编译后运行。

 

 JAVA:

     JAVA就要比QT先进了,它不但将链接库统一了起来,更将平台也统一了起来,它使用了一层JVM(Java虚拟机),Java的程序不用再重新编译,就可以直接跨平台运行,正因为如此,Java的口号是,“一次编译,到处运行”,但也因为如此,它牺牲了一部分的运行效率。

(哎~。。。。遗憾。。。。。)。

 

.NET:

     微软的.NET技术的出现晚于Java,按照事物发展的规律来判断,.NET应该比Java做的更好,事实也确实如此,.NET的眼光更高,甚至想把编程语言的规格也统一起来,可以用一个公式来形象的表示.NET,语言规格+平台+链接库=.NET,其程度可以用包罗万象来形容,但是,这样做的很大缺点在于,统一了.NET平台上的语言规格,导致了各个编程语言的千遍一律,特点不突出,比如,如果Delphi准备移植到.NET平台上,为了符合平台要求,它要改掉许多很有特点的语言特性,这对Delphi来说恐怕非常不好,感觉用削足适履来形容这个弊端最合适。

 

   看到这里,你应该对现在主流的跨平台技术有清楚的了解了,它们的实现方式各具特色,为了实现同一个目标,采用了不同的设计思想,但都实现了平台的跨越,这正是程序设计艺术的体现,不是吗?

      

 

                                                                                                                                                     2010年4月2日(清明节)

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值