2008-12-03 71 views
6

我前几天和某人聊天,他们建议Rails和PHP是最适合Web应用程序的平台,并避免使用Java。我的背景主要是Java,我知道某些人认为它太冗长和“重量级”,但偶尔会使用(例如,LinkedIn)。Java适用于“Web 2.0”应用程序吗?

所以我想知道是否有人使用Java成功地使用了Java的最近的Web应用程序已经上线,要么使用语言本身(例如Stripes/Spring + Hibernate),要么使用动态语言作为JRuby,Groovy,Jython)?如果是这样,请分享一下有效的工作和你会做的不同。

一些背景(后来加入): 的Tim O'Reilly创造了措辞“网络2.0”,这里是他的定义:http://www.oreillynet.com/lpt/a/6228

我认为它是“的发布周期结束”和“轻量级编程模型”,涉及快速迭代和简化部署,其中Java可能不太合适。思考?

+0

我并不是Java的粉丝(尽管我在工作中使用它),但我现在选择Java over PHP。 PHP太特别,需要花费很多精力为大型项目维护一个干净的代码库。我的所有意见当然。 – Dan 2008-12-03 15:48:48

回答

9

有两种完全不同的概念,称为Web 2。0:

  1. 用户生成内容(通常是用一些 '社交网络')

  2. 动态的基于AJAX的Web应用程序

第二个有点决定了你有技术(至少一些JS和机器可读内容在(一些)响应中)。当然,在服务器上使用Java(或CGI,Perl,不管)是什么都没有。

第一个与技术无关,与您提供的服务本身无关。再次,你可以使用任何你想要的。

为什么这两个混合在同一个therm?更重要的是:为什么动态语言对它更合适?我猜这只是偶然的巧合,所有三件事(用户生成的内容,AJAX,严肃的动态语言)大致同时跃升到了众人关注的焦点,每个概念的大多数支持者都在使用其他两个。

总之,最好避免像“web 2.0”这样的未定义的marketroid术语,并使用适当的描述。至少在工作时。当卖给风险投资商和PHB使用任何和所有流行语时!

19

我认为没有针对Web 2.0的特定技术。 Web 2.0应用背后的主要概念是大部分内容是由用户提供的,而不是一个特定的人。如果你可以用Java实现这一点,那很好。许多人创建的创业公司的技术是免费的,因为他们没有资金。

+0

+1,因为web 2.0更像是一种“风格”或一种Web应用程序。某些语言可能比其他语言更适合于某些类型的应用程序,但是这些语言并没有规定您必须使用语言X或Y. – Dan 2008-12-03 15:51:02

3

我在哪里工作,我们所有的应用程序都是使用Java构建的。它们是Web应用程序,使用hibernate或数据端的直接JDBC构建,并使用Struts或JSF作为演示文稿端。除非我们能够访问最新版本(由于我们的IDE,因此我们被困在1.0版本中),否则我将不再使用JSF,因为我们遇到了许多问题,并被告知它们已在更高版本中修复。至于其他技术,如果你知道如何使用它们,它们工作得很好。

总的来说,用一种你熟悉的语言进行开发并且能够完成这项工作的能力要比你几乎不知道但能够成为这份工作的“最佳”语言的能力要好。

5

当然是了。 Java有一些非常成熟和经过测试的Web应用程序框架,包括所谓的Web 2.0网站。 Hibernate,Spring,甚至Struts和Tile,甚至是Plain Old Servlets都可以。

此外,与Ruby相比,Java非常快速(请参阅Debian速度测试),这对于处理大量请求的网站非常有用,而Ajax确实会增加数量! :)

1

我使用Java构建Web应用程序,然后将PHP用于我的个人项目。虽然Java当然可以满足您可能需要的所有功能,但有时我发现它有点麻烦,并且希望我使用PHP(或其他语言)。它取决于你正在构建的应用程序的类型和大小,但我认为很多人为什么选择PHP,Ruby和Python作为他们的个人项目,也就是他们可以选择他们构建的Web应用程序在(而不是他们的上级)。

2

“Web 2.0”通常指的是用户界面,而不是支持Web应用程序的底层技术。

什么阻止基于Java的webapp在UI层完全浮华和AJAX-y?没有。你将用Java编写中间层 - 对用户来说这是透明的。

我认为,谁给你这个建议的人都比较关心的是“时髦”和(他们认为是)当前什么是“热”,现在 - 这是完全无关的标记你的UI。我不会听他们的。

4

你的朋友,所有应有的尊重,都是玩偶。 Java是一种丰富的语言,具有令人难以置信的工具支持你可以在Java中创建一个梦幻般的后端,并使用任何你想要的前端。

我花了一段时间才弄清楚在这个答案中说什么,因为我很喜欢这个概念的疯狂。

2

美好的一天,我再次发布约Wicket! :)

只要您知道如何使用可用的工具,Java就非常适合Web2.0应用程序。我刚刚链接的Apache Wicket是一个基于POJO的Web应用程序框架,它以令人难以置信的方式隐藏所有无聊的服务器 - 客户端内容,它可以让你做任何你能想到的事情。这里的重点在于,由于Wicket只是POJO,因此您可以获得非常快速,迭代和单元测试的代码,这些代码的工作方式与浏览器期望的一样。

要使用Java创建Web2.0站点,您当然不必使用Wicket,但无论如何我都会推荐它。

相关问题