.NET 和 Java 是当今社会最受欢迎的两种编程语言, 长期的发展和强大的功能使他们足以在编程界立足。 十余年的争论也没得到结果的一个话题就是——他们哪个更好一些?

  今天, 我们不再去讨论JAVA和.NET的利弊因为在项目实施过程中,需要分析项目的具体要求,进而选择合适的平台和技术。相反,我们将探讨Java的优势和特点进而去理解为什么世界的各大公司 ,尤其是搞银行和保险领域的更偏好JAVA而不是.NET的原因。

  # 1. 开放源代码

  2006年,Oracle把Java开源了­——这意味着可以不用交给Oracle授权费就能开发任何软件。相反,.NET是一个需要从微软获得许可的产品,必须支付许可证费用才能使用这个框架去开发软件。

  公司使用Java得到的优势是,他们可以通过使用一个开源的软件开发框架来削减开发成本。对于预算吃紧的企业,Java是自然的选择。

  另外,作为一个开源的平台,它允许开发者去做任何事情,他们可以通过使用各种可用的支持Java的开发工具来构建他们想要的东西和创建他们喜欢的解决方案。这是目前你不能用.NET做到的一些事情,因为(它不开源,所以)使用.NET你只能使用微软提供的工具内容,并在Visual Basic(应该是VS)里玩。

  # 2. 平台无关性

  你想开发一个可以无缝运行在不同的操作系统的软件吗?想象这样一个软件,它允许您编写一段代码可以跨越设备和平台进行工作。使用Java,所有这一切都是可能。Java就是出于这个单一目的——“编写一次,到处运行”——而创建的,而且忠于愿景,Java代码只需一次书写就可在不同的平台上执行和运转。使其成为可能的是对于几乎所有主要平台都有可用的具体JVM实现。

  这是.NET没有做得很好的地方,也是Java和.NET编程语言的不同。(出于商业竞争和保护).NET被聚焦在单一操作系统上,可以让微软和它的开发者更方便地构建和开发能无缝运行在windows上的工具。使用.NET你可以通过Mono建立能工作于一些操作系统的应用程序,但它没提供象Java开发那样的方便性。所以如果你创建的软件或应用程序需要运行在不同的平台上,Java对你来说是一个理想的开发平台。它将使开发过程更简单。

  # 3. 物联网的首选平台

  物联网指的是一个未来的憧憬,所有日常用品,如设备、房屋、城市、汽车和其他物品——被注入情报器并不断地连接到互联网。Java将是物联网的一个理想平台,因为设备将运行在不同的软件和硬件上,Java可以使所有这些不同的设备相互通信。

  当然,还有其他一些语言也可以被使用,但Java已经是一个成熟的编程语言,在这方面已经有大量的开发和研究已经完成,使它成为开发人员的理想选择。

  目前,这是.NET还不能提供的能力,因为(先天不足,)它的功能主要是只对windows平台实现完全兼容,.NET不太擅长连接各种在不同的软件和硬件上构建和运行的设备。

  #4. 活跃的社区

  最好的部分Java社区使你可以免费得到你所需的解决方案,相比而言,当你走近他们寻求解决方案时微软都要收费。甚至.NET的每一次更新都要你花钱。而另一方面,Java开发人员社区的活力不断改善着Java平台的功能和有效性。这意味着你的软件和应用程序可以继续得到最新的技术的优势,而无需支付额外的钱。

  #5. 安全性

  Java比大多数其他编程语言更安全。很多功能,比如对引用的自动null检查,字节码执行之前的验证,运行时安全检查和数十个类似的特性,使得它成为创建安全的应用程序方面的老大。这就是为什么银行和保险公司都使用Java创建他们的应用程序或软件的原因。

  总结以上

  Windows操作系统仍然是在世界各地最受欢迎的操作系统之一,因此,对于想开发应用(尤其是在Windows平台上)的组织和企业家来说,.NET可以是一个不错的选择。但是Java提供了一个安全、成本有效、平台独立的方式来创建高质量的软件。并且结合从Java开发者社区产生的固定性的改进,使它对于大多数企业来说都是一个极佳选择。

  Boni Satani是工作于一家IT解决方案提供者Cygnet Infotech公司的Java技术爱好者。他照管着不同的一些Java项目,包括web应用程序开发,Web服务开发和Java报告工具。他有颗技术极客的心,爱在他的空闲时间写作。随时在twitter上@bonirulzz可与他取得联系。

企业用户选择Java多于.NET的 5个原因的更多相关文章

  1. java XML 通过BeanUtils的population为对象赋值 根据用户选择进行dom4j解析

    根据xml文件设计Student对象 <?xml version="1.0" encoding="UTF-8"?> <students> ...

  2. SQL Server 2016五大优势挖掘企业用户数据价值

    SQL Server 2016五大优势挖掘企业用户数据价值 转载自:http://soft.zdnet.com.cn/software_zone/2016/0318/3074442.shtml 3月1 ...

  3. 客户端是选择Java Swing还是C# Winform

      登录|注册     mentat的专栏       目录视图 摘要视图 订阅 [专家问答]韦玮:Python基础编程实战专题     [知识库]Swift资源大集合    [公告]博客新皮肤上线啦 ...

  4. 选择 Java 编写 iOS 与 安卓 App的八大理由

    [编者按]本文作者为 RoboVM 的 CEO 兼联合创始人 Henric Müller,主要介绍选用 Java 编写移动应用的八大理由.文章系国内 ITOM 管理平台 OneAPM 编译呈现. 在过 ...

  5. 企业如何选择最佳的SSL

    如果你的企业有意采购SSL,那么本文可以给一个很好的方向.在本文中,我们将先简要介绍SSL定义及其工作原理,并探讨目前各种可用的SSL证书类型以及企业如何选择最佳的SSL. SSL定义 SSL及传输层 ...

  6. Android6.0动态申请权限那些坑--以及避免用户选择不再提示后无法获取权限的问题

    Android 6.0 为了保护用户隐私,将一些权限的申请放在了应用运行的时候去申请, 比如以往的开发中,开发人员只需要将需要的权限在清单文件中配置即可,安装后用户可以在设置中的应用信息中看到:XX应 ...

  7. 大数据之路week05--day01(JDBC 初识之实现一个系统 实现用户选择增删改查 未优化版本)

    要求,实现用户选择增删改查. 给出mysql文件,朋友们可以自己运行导入到自己的数据库中: /* Navicat MySQL Data Transfer Source Server : mysql S ...

  8. 企业邮箱选择,商务办公为什么选TOM企业邮箱?

    企业邮箱是工作中的重要工具,它可以帮助我们更规范的上传下达.更高效的管理工作,也是拓展合作伙伴的敲门砖及必杀技.比如写一封诚意满满的合作邀请,再比如重要关头写一封合作协议.毫不夸张,企业邮箱不仅能节省 ...

  9. 自定义Vue&Element组件,实现用户选择和显示

    在我们很多前端业务开发中,往往为了方便,都需要自定义一些用户组件,一个是减少单一页面的代码,提高维护效率:二个也是方便重用.本篇随笔介绍在任务管理操作中,使用自定义Vue&Element组件, ...

随机推荐

  1. ProgressDialog 的 使用

    一 . ProgressDialog ProgressDialog是AlertDialog类的一个扩展,可以为一个未定义进度的任务显示一个旋转轮形状的进度动画,或者为一个指定进度的任务显示一个进度条. ...

  2. ubuntu下phpstorm无法输入中文的解决办法

    http://blog.csdn.net/woshiliulei0/article/details/51657356 今天期待已久的搜狗输入法linux版上线了,对于我们这种之前用习惯了搜狗输入法的屌 ...

  3. Spring AOP和AspectJ支持

    学了Spring之后发现我都不知道java为何物-- 在这一章中有好几节,讲的切面编程 第一节:在项目中启用Spring的AspectJ注解支持 第二节:用AspectJ注解声明aspect 第三节: ...

  4. 用ActionSupport实现验证

    第一种: 只要Action类继承了ActionSupport,就可以用验证方案了 是个原始的方案,需要自己写代码,但是很灵活,登陆案例 不足:业务处理和验证的代码混在一起,不方便验证部分的复用和维护 ...

  5. ubuntu下导入kali源

    Kali-Linux之前的渗透神器BackTrack是基于Ubuntu的,界面比较友好,字体渲染看起来也比较舒服(也可能是本人用惯了 Ubuntu的缘故).后来官方终止BackTrack,开发Kali ...

  6. hdu 1023 卡特兰数+高精度

    Train Problem II Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  7. CSS深入研究:display的恐怖故事解密(2) - table-cell(转)

    http://www.cnblogs.com/StormSpirit/archive/2012/10/24/2736453.html 上集<CSS深入研究:display的恐怖故事解密(1) - ...

  8. C#开发Activex控件(1)

    项目结构 创建Activex步骤: 1.选择创建类别(Windows 控件库或类库) 2.设置对应的com属性 AssemblyInfo.cs中须做以下设置:a.引入命名空间:using System ...

  9. mongoDB 类型参考表

    $type操作符是基于BSON类型来检索集合中匹配的数据类型,并返回结果. MongoDB 中可以使用的类型如下表所示: 参考资料:http://www.runoob.com/mongodb/mong ...

  10. js数组知识

    js数组   shift:删除原数组第一项,并返回删除元素的值:如果数组为空则返回undefined var a = [1,2,3,4,5]; var b = a.shift(); //a:[2,3, ...