什么时候Java是基于Web的应用程序的正确选择

时间:2009-09-28 20:54:52

标签: java web-applications

由于个人兴趣和当地市场力量的结合,我一直在研究我的编程经验并进入java编程市场。正如你可以从标题中收集的那样,我的绝大部分经验都是建立基于网站的网站和应用程序,我想尽可能多地移动我之前的经验。

有一件事我无法找到一个具体的答案,一个网站或基于网络的应用程序设计师何时应该使用基于Java的解决方案,而不是目前市场上的其他选项。 Java提供了哪些选项可以让设计人员选择Java作为基础编码语言来基于项目?

感谢您提出的任何建议性回复。

编辑:如果其他因素相同,我应该包含一些警告,例如,如果java中的硬件,软件,开发人员技能达到了应该用于此类项目的位置,等等。

10 个答案:

答案 0 :(得分:13)

主要因素是您的开发人员擅长的。如果您有一群Java开发人员,请使用Java。

答案 1 :(得分:4)

同样考虑这一点:Java倾向于在运行持久全局程序的应用程序服务器上运行,并且单独的线程/进程会产生以服务于单个请求。但是,如果由于某种原因主要的全局虚拟机崩溃,您的整个应用程序可能会崩溃。当然,您可以获得可以在所有请求中连续初始化和使用的应用程序/系统级资源

PHP等其他环境基本上拆除并重建每个请求的整个环境。您可以使用数据库在应用程序级别数据持久性中进行编码,但是您不能免费获得它。另一方面,如果一个php进程在处理应用程序数据时出现问题,它就不会杀死整个系统,因为整个环境只是为了下一个请求而被拆除/重建。

答案 2 :(得分:3)

同意许多以前的海报,但一个可能的考虑因素是运行速度。

如果您使用非常基本的LAMP堆栈服务器,运行PHP4或更低版本,Python或Perl,如果您未设置预编译,则必须在运行时重新编译所有脚本。这可能会导致服务器对高强度应用程序产生巨大压力。如果您处于无法为LAMP启用预编译的情况,但您可以使用Java(大多数Java服务器需要这样),那么这应该是值得关注的。缺点是每次编辑时都可能需要重新编译Web应用程序的大块。我意识到现在这个问题越来越少,但需要检查一下。

答案 3 :(得分:2)

我认为关于这个主题的传统观点是Java更适合需要静态类型学科的大型系统。此外,在非常繁忙的站点上,Java可以使用更少的内存并且比大多数解释器运行得更快。

(开箱即用,Java需要大量内存。但在繁忙的系统中,Java只有一个正在运行的代码的副本。)

对于特定网站,坚持使用Java也有一些平凡的理由。他们可能需要后台集成或其他一些现有代码。

答案 4 :(得分:2)

如果开发人员不熟悉所选语言,请确保在开发时间中包含学习曲线。

答案 5 :(得分:2)

在大多数情况下,最好的技术是您已经使用的技术。

如果你有编程知道java,有系统管理员可以配置java应用程序并知道当Java应用程序停止工作时该怎么做,以及知道如何准确安排和规划java部署的项目经理,你需要一个非常非常令人信服的理由为新项目选择.NET之类的东西,即使.NET“更好”(无论这意味着什么)。

当然有例外;如果您使用过时和/或将来不会支持的东西(如经典ASP),或者您没有遗留系统,那么就该使用新的东西了。

答案 6 :(得分:1)

如果有一个库或框架提供了其他语言所没有的特定功能(或者不是这样),我会使用Java。

例如,如果我有一个内部构建的Java库来运行我们的Gruntmaster岩石破碎机,那么使用Java构建一个需要控制Gruntmaster的应用程序自然是有意义的。

有些人可能会说,无论商店的官方语言是应该使用的语言 - 我都不同意这条规则,因为根据我的经验,优秀的开发人员可以学习任何语言。

否则没有严格的规则;每种语言都有自己的优点和缺点。你问这个关于Java的问题的事实告诉我你不熟悉它。

我建议你继续用Java构建一个或三个应用程序 - 然后你就会知道。 :)

答案 7 :(得分:1)

目前可用于网络编程的各种技术的功能之间几乎没有分离。

Java曾经是默认选择,因为它远远超过了竞争技术的能力,但现在已经不再适用了。

微软的答案迅速成熟;经典ASP的时代已经过去了.Net现在提供了Java所提供的所有功能和易编程。

PHP和Ruby等新语言已经到来或变得更加主流,并且根据您的编程需求也是有效的选择。

正如许多其他人所说,它归结为您或您的开发人员熟悉的语言。

答案 8 :(得分:1)

另一个需要考虑的方面是能够使用庞大的开源库生态系统。

像PHP,Perl或Ruby这样的语言有(几乎)内置的lib市场。在这种意义上,.Net相当封闭。另一方面,Java有一个非常大的企业级图书馆生态系统可供选择,社区也可以从中学习。

答案 9 :(得分:1)

实际上,我同意这些人利用现有的人力基础设施。

从技术上讲,Java非常适合非标准Web事物 - 比如大量使用AJAX(GWT,DWR,Comet spring to mind),Mobile(你通常需要大量的会话数据和较少的前端bling),非常简单的事情将被置于巨大的负荷之下(它肯定会每次都击败Apache mod_XXX,在广泛使用中唯一更快的是原生代码)。