Web:我应该何时考虑使用Java而不是PHP,Python / Django,Ruby / Rails等?

如果收集中型到大型基于Web的项目的需求,那么在什么时候应该考虑使用基于Java的后端,JSP等,而不是像PHP,Python或Ruby这样的脚本语言?

听说“使用正确的工具……”,什么时候Java是基于Web的项目的正确工具?

什么是“最佳”语言经常会因情绪化而不是实际而退化。 每种语言的冠军都非常善于为每种语言最好的原因提出论据。 我通常会看几个因素:

A)您和您的团队使用哪种语言?

B)是否有现有的应用程序/系统需要扩展或集成? 如果是这样,哪种语言对于这种集成最有效

C)是否有内置或可用的图书馆,组件等,可以让您更有效地用一种语言产生结果而不是另一种语言

我的决定几乎总是归结为我的团队在开发和维护方面最有效的语言/平台。

在我看来,语言决策不能独立于更大的开发和运行时平台。 詹姆斯· 康尼格利亚( James Conigliaro)所写的内容以及乔尼(jonnii)所写的内容暗示了这一点 ,但两者都没有具体说明。

做出这样的决定,人们经常使用不必要的相对权重来评估不同的评估标准。 例如,其中一个标准可能是“在iPhone上运行”。 但如果你实际上没有在iPhone上开发,你真的不在乎。

“表现”是另一个可以获得无根据权重的标准。 如今,大多数基于英特尔的服务器,如果没有存储空间而花费2000美元,无论您选择何种语言,都可以快速支持相当高容量的网站。 如果您的负载超过可以在单个服务器上运行的负载(不要假设!),或者如果您需要在不同的工作负载之间共享服务器,则perf可能会变得更加重要。 但通常您的应用程序加载将适合1服务器框。

在我看来,开发环境,包括IDE,还有源代码控制,配置管理和缺陷跟踪 – 我猜你可能称之为应用程序生命周期的东西 – 比语言本身更重要。

您可能希望考虑的另一个方面是语言本身对您的团队的开发人员的“拉动”。 在Java的早期阶段,你可以通过说“我们在Java中实现它”来吸引开发人员。 现在,这种现象在很大程度上已经消失了,但在口袋中,它可能仍然适用于其他langs和平台。 这个因素对您来说可能重要,也可能不重要。

选择您的团队最适合使用的语言/平台,与您的部署目标相匹配的语言/平台以及您最熟练的语言/平台。

我有超过20年的编程经验,我学到了一个重要的事实:只要您习惯使用该工具,使用哪种工具无关紧要。 对于规模较大的团队,所有团队成员必须对您的选择感到满意。 我总是告诉别人你用来创建应用程序的工具并不重要。 重要的是它是否能按预期工作。

我打算将Java用于使用Google App Engine服务的项目(当然是Java支持)。 这不是答案[tm],但只有我的2美分:-)

拥有所需库的人:如果要自定义预先制作的库,请使用PHP。 这通常是购物车,论坛和CMS

Java将有更多的随机内容库(比如获取RSS提要)

不知道Python / Ruby on Rails;

Rails易于学习,组织良好且文档齐全。 它也是敏捷和RAD(快速应用程序开发)。 它并不完美,但你可以尝试一下。 这是对Web开发的另一种看法。 Java Web框架并不那么容易理解,启动并不是那么简单恕我直言。

如果你必须使用rails构建一个大型Web应用程序,你可以将整体应用程序与不同的应用程序分开,然后重新使用ActiveResource。

http://guides.rubyonrails.org

几乎总是 :-)

我的意思是你可以用Java / JSP添加更多或更少的混合(Spring,iBatis等)来做任何web项目

但是,正如已经指出的那样,有些情况下你决定使用别的东西,例如你的团队有很多younameit的经验,没有java或类似的经验。