java和.net是两种旨在消除平台依赖性的语言。这是通过在代码和操作系统之间添加虚拟机/框架来实现的。那么,在服务器端使用它有什么意义呢,因为所有的网站都可以通过浏览器访问,而且是独立于平台的?使用它们有什么特别的原因吗?
waxmsbnn1#
虽然平台独立性非常值得努力,但我认为java和.net是常用的,因为有大量的框架可用,这使得开发企业级应用程序变得非常容易。java尤其如此,在java中,您可以选择高质量的技术,其中大多数技术都足够灵活,可以满足大多数项目的需要,使您能够专注于应用程序的功能。另外,java和.net没有发动一场战争的意图,它们有更好的开发工具支持,并且对于普通程序员来说更容易/更快地进行开发。
tkqqtvp12#
我是这样理解你的问题的:如果客户端使用http访问服务器,那么有其他更合适的方法来设置服务器,为什么选择java或.net呢?服务器操作系统或框架通常对客户机不重要,这是对的。但是,客户端也可以包含小程序或代码,这些小程序或代码需要与服务器上的对应程序进行通信。然后jsp或.net变得更加有趣,因为您不必管理不同的客户端操作系统。然后网站变得容易扩展。如果你想集成一些很好的绘图和图表解决方案(telerik,dundas。。。或者不管是什么-不意味着广告-)从第三方你也必须选择一个兼容的服务器基础设施来运行它们。
ddhy6vgd3#
实际上,选择它们的理由几乎完全相反:java的平台独立性意味着您不必局限于一个平台,因此在选择最经济高效的平台或最可靠的平台时更加灵活。你可以让你的应用程序运行,即使你不得不改变服务器平台,因为旧的不再支持。选择.net是因为如果你想把自己绑在一个操作系统上,那么微软是最大的参与者,因此也是风险最小的选择——或者仅仅是因为公司通过exchange这样的网关药物落入了“全微软商店”的陷阱。一旦你到了那里,.net就是微软希望你使用的,它支持并集成了微软目前的所有工具。
0ve6wy6x4#
在早期的web时代,主要是perl和偶尔勇敢的灵魂不喜欢perl或希望使用c获得更高的性能。然后sun为java开发了jdbc和servlet,然后又开发了其他j2ee组件,java成为perl的高性能替代品,并且比c更简单。随着j2ee的出现,很多应用服务器产品都来自大公司,现在你有了一个很大的javaweb/app服务器社区。后来,微软在与sun的j++/java大战中失利,并与.net一起创建了一个类似的web应用基础设施。有了.net,你的选择就少了,它带来了所有的优点和缺点。因此,我认为解决办法是综合考虑良好的性能、安全性和企业特性,以及主要的企业支持。c++对大多数人来说太难和危险了。perl、php、python和ruby有自己的粉丝,但没有公司的支持。我认为java/.net在虚拟机上这一事实对于服务器端并不重要。java最初为客户机使用vm。sun不得不努力制造一个快速服务器vm。我认为微软使用虚拟机是为了与sun竞争,使其更容易支持多种语言。谷歌的go语言能否腾飞将是一件有趣的事情,它在安全性和功能上可能会超过java和c语言,但没有虚拟机。
bsxbgnwa5#
java和.net在服务器端都有各自的优点。例如,使用.net,您可以自由地为正在处理的应用程序部分选择最佳语言,并且所有这些.net语言都可以协同工作。因此,您可能希望使用f#实现数据挖掘功能,使用c#处理数据库,使用非托管c++(通过瘦托管c++层)实现快速网络连接或系统调用,还有许多其他语言。net目前不太独立于平台,但与语言无关。java可以在几种不同的操作系统上使用,这对于销售解决方案是有利的,因为您不关心客户在使用什么操作系统。现在jvm越来越不依赖于语言,clojure和scala已经不再依赖jvm了,因此java在设计应用程序方面变得更加有趣。
1tu0hz3e6#
.net仅适用于windows平台。java是这两种语言中唯一一种独立于平台的语言。由于许多原因,这些语言在服务器端具有强大的影响力:许多处理问题子任务的库这两个框架的构建都考虑到了安全性它们是托管语言,很难对付典型的软件攻击。它们被认为是成熟的技术,它们已经被大量滥用,并且经受住了考验。他们得到了业界的支持。两者都是面向对象的这意味着可以通过使用可重用组件或第三方组件来开发网站。这两种语言都允许非托管组件的“沙盒”(java:jni.net:boxing)[允许包含遗留组件]
knpiaxh17#
那么,在服务器端使用它有什么意义呢,因为所有的网站都可以通过浏览器访问,而且是独立于平台的?嗯,web应用程序不仅仅是为了好玩而呈现html,它们在服务器端做的事情可能涉及到与数据库交谈、向妈妈发送消息等。使用它们有什么特别的原因吗?这是一个部分的答案,但我想至少在这里介绍一下java的情况。我可以从java是一种安全的、健壮的、垃圾收集的、面向对象的、高性能的、多线程的、解释的、与体系结构无关的、跨平台的、符合流行语的编程语言开始。。。但这并不能真正回答你的问题。实际上,在服务器端使用java的最大好处是,您可以从标准化的企业API(又名j2ee)中获益,这些API允许您以标准的方式处理“企业事务”(jdbc、jta、jms等),并独立于硬件、操作系统和软件供应商(这对于合同谈判来说是一大优势)。换句话说,java非常适合于异构环境,这种环境在大型组织中几乎总是如此,而且不会将您锁定。
w8biq8rn8#
浏览器不能访问那些框架可以访问的服务器资源(数据库、文件等)。你不可能有一个只有javascript的应用程序(并且做有意义的事情)
btqmn9zl9#
它们将底层系统虚拟化,因此可以在不同类型的服务器操作系统上运行。而且,它们被设计成通用的应用程序开发系统,因此它们可以在任何带有处理器的设备上运行。如果您是因为不明白为什么会接受抽象层的开销而问这个问题,请记住java和.net jit都是本地代码。
9条答案
按热度按时间waxmsbnn1#
虽然平台独立性非常值得努力,但我认为java和.net是常用的,因为有大量的框架可用,这使得开发企业级应用程序变得非常容易。java尤其如此,在java中,您可以选择高质量的技术,其中大多数技术都足够灵活,可以满足大多数项目的需要,使您能够专注于应用程序的功能。
另外,java和.net没有发动一场战争的意图,它们有更好的开发工具支持,并且对于普通程序员来说更容易/更快地进行开发。
tkqqtvp12#
我是这样理解你的问题的:如果客户端使用http访问服务器,那么有其他更合适的方法来设置服务器,为什么选择java或.net呢?
服务器操作系统或框架通常对客户机不重要,这是对的。
但是,客户端也可以包含小程序或代码,这些小程序或代码需要与服务器上的对应程序进行通信。然后jsp或.net变得更加有趣,因为您不必管理不同的客户端操作系统。然后网站变得容易扩展。
如果你想集成一些很好的绘图和图表解决方案(telerik,dundas。。。或者不管是什么-不意味着广告-)从第三方你也必须选择一个兼容的服务器基础设施来运行它们。
ddhy6vgd3#
实际上,选择它们的理由几乎完全相反:
java的平台独立性意味着您不必局限于一个平台,因此在选择最经济高效的平台或最可靠的平台时更加灵活。你可以让你的应用程序运行,即使你不得不改变服务器平台,因为旧的不再支持。
选择.net是因为如果你想把自己绑在一个操作系统上,那么微软是最大的参与者,因此也是风险最小的选择——或者仅仅是因为公司通过exchange这样的网关药物落入了“全微软商店”的陷阱。一旦你到了那里,.net就是微软希望你使用的,它支持并集成了微软目前的所有工具。
0ve6wy6x4#
在早期的web时代,主要是perl和偶尔勇敢的灵魂不喜欢perl或希望使用c获得更高的性能。然后sun为java开发了jdbc和servlet,然后又开发了其他j2ee组件,java成为perl的高性能替代品,并且比c更简单。随着j2ee的出现,很多应用服务器产品都来自大公司,现在你有了一个很大的javaweb/app服务器社区。
后来,微软在与sun的j++/java大战中失利,并与.net一起创建了一个类似的web应用基础设施。有了.net,你的选择就少了,它带来了所有的优点和缺点。
因此,我认为解决办法是综合考虑良好的性能、安全性和企业特性,以及主要的企业支持。c++对大多数人来说太难和危险了。perl、php、python和ruby有自己的粉丝,但没有公司的支持。我认为java/.net在虚拟机上这一事实对于服务器端并不重要。java最初为客户机使用vm。sun不得不努力制造一个快速服务器vm。我认为微软使用虚拟机是为了与sun竞争,使其更容易支持多种语言。谷歌的go语言能否腾飞将是一件有趣的事情,它在安全性和功能上可能会超过java和c语言,但没有虚拟机。
bsxbgnwa5#
java和.net在服务器端都有各自的优点。
例如,使用.net,您可以自由地为正在处理的应用程序部分选择最佳语言,并且所有这些.net语言都可以协同工作。
因此,您可能希望使用f#实现数据挖掘功能,使用c#处理数据库,使用非托管c++(通过瘦托管c++层)实现快速网络连接或系统调用,还有许多其他语言。net目前不太独立于平台,但与语言无关。
java可以在几种不同的操作系统上使用,这对于销售解决方案是有利的,因为您不关心客户在使用什么操作系统。
现在jvm越来越不依赖于语言,clojure和scala已经不再依赖jvm了,因此java在设计应用程序方面变得更加有趣。
1tu0hz3e6#
.net仅适用于windows平台。java是这两种语言中唯一一种独立于平台的语言。
由于许多原因,这些语言在服务器端具有强大的影响力:
许多处理问题子任务的库
这两个框架的构建都考虑到了安全性
它们是托管语言,很难对付典型的软件攻击。
它们被认为是成熟的技术,它们已经被大量滥用,并且经受住了考验。
他们得到了业界的支持。
两者都是面向对象的
这意味着可以通过使用可重用组件或第三方组件来开发网站。
这两种语言都允许非托管组件的“沙盒”(java:jni.net:boxing)[允许包含遗留组件]
knpiaxh17#
那么,在服务器端使用它有什么意义呢,因为所有的网站都可以通过浏览器访问,而且是独立于平台的?
嗯,web应用程序不仅仅是为了好玩而呈现html,它们在服务器端做的事情可能涉及到与数据库交谈、向妈妈发送消息等。
使用它们有什么特别的原因吗?
这是一个部分的答案,但我想至少在这里介绍一下java的情况。我可以从java是一种安全的、健壮的、垃圾收集的、面向对象的、高性能的、多线程的、解释的、与体系结构无关的、跨平台的、符合流行语的编程语言开始。。。但这并不能真正回答你的问题。实际上,在服务器端使用java的最大好处是,您可以从标准化的企业API(又名j2ee)中获益,这些API允许您以标准的方式处理“企业事务”(jdbc、jta、jms等),并独立于硬件、操作系统和软件供应商(这对于合同谈判来说是一大优势)。换句话说,java非常适合于异构环境,这种环境在大型组织中几乎总是如此,而且不会将您锁定。
w8biq8rn8#
浏览器不能访问那些框架可以访问的服务器资源(数据库、文件等)。你不可能有一个只有javascript的应用程序(并且做有意义的事情)
btqmn9zl9#
它们将底层系统虚拟化,因此可以在不同类型的服务器操作系统上运行。
而且,它们被设计成通用的应用程序开发系统,因此它们可以在任何带有处理器的设备上运行。
如果您是因为不明白为什么会接受抽象层的开销而问这个问题,请记住java和.net jit都是本地代码。