作为Java新手,我想知道:在世界上所有语言中,为什么Java经常用于企业应用程序?是什么让它与其他语言相比?它会在未来几年继续这样吗?
我很感激你的见解.提前致谢 :)
Rob*_*b H 41
一句话:图书馆.Java拥有大量优秀的库,可以解决开发企业应用程序时需要解决的大多数常见问题.在许多情况下,解决特定需求的方法不止一个,而且这些库通常是免费的,并且是在商业友好许可下开源的.
有些人认为,实际上Java生态系统中有太多的选择,而用Java开发企业软件需要开发人员做出大量的决策,这些决策会对最终产品产生深远的影响,无论好坏.这可能有助于推动.NET等替代产品的普及,这种替代产品的选择更少,但具有更好集成的应用程序堆栈和工具集的优势.我想,你选择的方向取决于你是否更多地重视"选择自由"或"选择自由".
Ric*_*ler 24
大型公司(企业解决方案的类型)选择Java的原因有很多.注意我并不是说所有这些原因都是正确或有效的.但相关的一点是,它们似乎对MegaCorp的CTO有效.
学习曲线
Java是一种简单的语言,没有C系列其他成员的灵活性,这会削减两种方式,但它被视为一种程序员大军使用的简单语言.企业项目往往涉及大量开发人员(无论是对还是错),并且使开发人员在Java中比C++更容易获得最低级别的能力.你也有整整一代的毕业生,他们可能已经接受过Java教育.
选择
Java拥有大量的库,框架,工具和IDE以及服务器提供程序.对于一个企业来说,有一个好的选择,即使这只是在谈判价格时用作讨价还价的筹码.该语言适用于允许执行公司标准的代码质量工具(并且如上所述,有很多这些工具).
平台独立
Java是一次编写,在任何地方运行(好,调试).Sun积极鼓励开放标准,允许多个供应商实施他们的解决方案.如果给定的供应商不足或开始收取更多费用,这些标准可以让客户感到舒适,他们可以从一个供应商迁移到另一个供应商.当然,现实是每个供应商都尽力提供一些"附加值"功能,将客户与他们联系起来.
到期
它已经存在了很长时间,运行了很多服务器.如果你的网络应用程序需要是"6西格玛"或类似的,并且你是MegaCorp首席技术官,那么你不会对开发人员希望在RoR中做这件事的Joe表示同情.
定时/营销
当编程进入网络时,Java问世了.它定位巧妙,在网站开发早期就占据了强势地位.由于开放标准,有一些非常大的公司生产这些平台,他们非常难以销售这些平台.
惯性
大公司以冰川的速度前进(很多人在5年后发布了5年后仍在使用Java 1.4),所以一旦他们选择了Java,就需要大量投资才能转移到另一个平台.随着每一天的到来,他们正在开发出更多需要迁移的Java.这些公司中的大多数并不主要是编码商店,因此说服企业花费数千万美元重写整个代码库以获得直接的商业利益是一件非常困难的事情.
另一个原因可能是Sun为保持Java向后兼容而采取的谨慎措施.绝大多数Java代码都可以在最新版本的JVM上运行而不会出现问题.考虑到Java的时代,这是一个相当大的成就.另一方面,你可能会说Java在这些年里并没有发生太大变化.
企业喜欢在平台上稳定.
Sun以Java为目标,尽早满足企业的需求.它推动了各个层面促进供应商独立性的标准.平台独立,数据库独立,应用程序服务器独立等.
此外,他们还在消息传递,事务管理以及企业所担心的其他方面为其推广了企业级工具.
在Java之前,企业级的东西往往是用C++完成的(有很多例外(有人记得PowerBuilder吗?)但这就是规则)而Java非常适合作为业务应用程序的C++的后继者,那里的那种内存管理不是值得付出的代价.
除了所有这些之外,语言本身也在向企业讲述避免难以获得的构造,这些构造实际上可能会破坏代码库,例如运算符重载.企业级应用程序倾向于由许多不同的人处理,并非所有人都是最好的程序员,并且有安全网来防止自己在脚下射击是一件令人向往的事情.
它也是在正确的时间出现的.一个新的范例(这已经存在于.NET之前),它承诺将多个供应商组合成一个与微软竞争的能力,而这个微软已经让IBM和甲骨文等公司参与其中,这恰好填补了一个新的漏洞,这是新兴的要求开发Web应用程序,其中C++不再是一个明显的选择.
商业是关于时间,金钱和机会.
使用Java意味着代码中的错误数量会下降,因为指针很难.您使用GC并立即从代码中删除整个类错误.
其次,Java是第一批提供预先编写的函数库的语言之一,它确实涵盖了很多开发阶段.这限制了事情的完成方式,但这意味着人们可以更快地学习,拥有更多的工具,并拥有一套完善的工具库来处理网络,GUI,网络,加密等.Java本身作为一种语言并不是那么特别,但Java加上Java API.
因此,如果您的语言具有较少的错误和免费的基础架构,那么您可以在更短的时间内获得更多代码.当然,代码不能治愈癌症,它不像C++代码那样快速地完成相同的任务,但它将实现企业获取应用程序的目标.
如果你以更少的钱赚更多的代码,你可以寻求更多的机会.然后,您可以根据已经在Java中实现的代码为表格带来惯性,并开始了解业务为何不想离开他们的舒适区域.