java跨平台有什么用_为什么有人说 Java 的跨平台很鸡肋?

原标题:为什么有人说 Java 的跨平台很鸡肋?

个人认为持这种看法的人要么是没把Java用对地方,要么是没有进行过大规模的企业级Java开发。

Java开发的长项是服务器端编程。当然,近年来随着Eclipse的流行,Eclipse的RCP框架让Java在客户端工具方面也有了一些应用,但主要的用途还是脱离不了服务器端编程。

服务器端编程就意味着最终会在服务器上运行。(好吧……这句是废话。)

但众所周知,比较好的服务器端操作系统,至今还是Unix-like操作系统的天下。说起Unix-like操作系统,有些了解的人就知道,包含了Linux、Unix、FreeBSD等一大帮兄弟。这哥儿几个虽然长得很像,但差异还是有的。使用C语言之类不具有跨平台特性的语言时就常常因为API的差异导致在更换服务器时总要进行大量的代码修改和测试。而如果一份代码需要在不同操作系统的服务器上运行,就有可能需要维护多份代码。无论开发成本、维护成本还是文档制作都要高出很多。

这还只是说运行方面,如果考虑到开发,问题就更大了。

开发的时候,不可能给每个开发人员都配一台服务器,肯定用的是普通的PC。而PC领域的操作系统,你恨它也好爱它也罢,Windows还是很难不进来插一脚的。于是就出现了这样的局面——在Windows下开发,在Unix-like上运行。

人非圣贤孰能无过。写代码就一定会犯错。所以层层测试必不可少。相信很多人都习惯于一边写一边测,有些问题顺手改掉。如果让你每次要测试的时候都要先编译,然后挪到服务器上,然后再运行,出错了要调试还得换个操作系统去做。哪怕你不嫌麻烦,上面的老板也会嫌效率低下。

而Java恰恰解决了这个问题。开发人员可以在Windows的开发机上搭建轻便简单的服务器环境,可以随时进行测试和调试。而且只要项目制定好合理的开发规约(例如没有特别申请不要写绝对路径,不要使用与操作系统相关性强的API等)并严格要求开发人员遵守,通过测试和调试的模块拿到服务器端基本不会出现问题。只需要做一下集成测试即可。大大减轻了开发者的负担和整体的开发效率。

另一方面,从代码的管理角度上看。因为实现了跨平台,代码只需要维护一份。遇到版本升级、增加分支版本等问题的时候也不会有太大的麻烦。

还有,当服务器端更换操作系统时——例如因为经费问题,从收费的Linux版本更换为免费的Linux版本,因为性能问题从免费Linux更换为商业的AIX系统等,也可以直接将模块打包发布,然后只需要重新进行集合测试即可。

所以,当将Java使用到其擅长的领域时,其跨平台特性应该说是非常有效的。

关于你说的iOS应用开发,因为也是属于客户端开发,不是Java擅长的应用领域。又因为苹果的封闭策略,目前还没有iOS上的Java虚拟机,所以导致了Java目前还无法在苹果上运行,自然也没有可能用Java开发了。

另一方面,因为Java天生不擅长用户界面编程,而iOS又不适合做服务器端操作系统。所以,让iOS支持Java目前看也没有什么益处。

如果你用Java可以进行Android编程来反驳我的话,我想说Android编程中使用的Java并非传统意义上的Java。可以说是Android的开发者很聪明,利用了Java开发人群巨大的特点,为Android准备了一份特殊的Java虚拟机,从而降低了Android的开发的学习成本和人员成本。但本质上,与那个所谓的跨平台的Java不是一回事儿。Android里的Java在做Android编程时所调用的API是标准Java中没有的,所以无法做到跨越到Android以外的平台。

最后总结一句,那些说Java的跨平台很鸡肋的人,就好像用斧子切菜,说斧子的结实和厚重很鸡肋一样。原因是斧子本来就不是让你用来切菜的,那家伙是应该用来劈柴的。

有想学Java的朋友欢迎来报名 。机不可失哦。更多技术交流者或想获取JAVA资料请加微信(858568103)返回搜狐,查看更多

责任编辑:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值