前几天我和某人聊天,他建议Rails和PHP是最适合Web应用程序的平台,并避免使用Java。我的背景主要是Java,我知道有些人认为它太冗长和“重量级”,但偶尔也会使用(例如通过LinkedIn)。
所以我想知道是否有人使用Java成功使用了最新的Web应用程序,无论是使用语言本身(例如使用Stripes / Spring + Hibernate),还是运行时使用dymamic语言(例如JRuby,Groovy,Jython)?如果是这样,请分享有用的内容和不同的内容。
某些背景 (稍后添加): Tim O'Reilly创造了措辞“Web 2.0”,这是他的定义:http://www.oreillynet.com/lpt/a/6228
我认为这是“发布周期的结束”和“轻量级编程模型”,涉及快速迭代和简化部署,其中Java可能不太适合。想法?
答案 0 :(得分:19)
我认为Web 2.0没有特定的技术。 Web 2.0应用程序背后的主要概念是,大部分内容都是由用户提供的,而不是由一个特定的人提供的。如果你可以用Java实现这一点,那就没关系了。许多人正在创建具有免费技术的创业公司,因为他们没有资金。
答案 1 :(得分:9)
有两个完全不同的概念叫做'Web 2.0':
用户生成的内容(通常带有一些“社交网络”)
基于动态AJAX的网络应用
第二个有点决定你必须使用的技术(至少一些JS,以及(某些)响应中的机器可读内容)。当然,没有什么可以反对在服务器上使用Java(或CGI,Perl等)。
第一个与技术没有任何关系,而且与您提供的服务本身有关。再一次,你可以使用你想要的任何东西。
为什么这两种混合在一起?更重要的是:为什么动态语言被认为“更合适”呢?我猜这只是暂时的巧合,所有这三件事(用户生成的内容,AJAX,严肃的动态语言)大致同时引起了人们的关注,而且每个概念的大多数支持者都在使用另外两个。 / p>
简而言之,最好避免像“web 2.0”这样的未定义的marketroid术语,并使用正确的描述。至少在工作的时候。当卖给VC和PHB时,使用附近的任何和所有流行语!
答案 2 :(得分:5)
当然是。 Java有一些非常成熟且经过良好测试的框架,用于执行Web应用程序,包括所谓的Web 2.0网站。 Hibernate,Spring,甚至是Struts和Tiles,甚至是Plain Old Servlets都可以。
此外,与Ruby相比,Java速度非常快(参见Debian速度测试),这对处理大量请求的网站很有用,而Ajax确实倾向于夸大其数量! :)
答案 3 :(得分:4)
你的朋友们,应该得到应有的尊重。 Java是一种具有令人难以置信的工具支持的丰富语言您可以在Java中构建一个梦幻般的后端,并使用您想要的任何前端。
我花了一段时间才弄清楚在这个答案中该说些什么,因为我对这个概念的疯狂感到兴奋。
答案 4 :(得分:3)
在我工作的地方,我们所有的应用程序都是使用Java构建的。它们是Web应用程序,使用数据端的hibernate或直接JDBC构建,并使用Struts或JSF进行演示。我不会再次使用JSF,除非我们可以访问最新版本(我们因为我们的IDE而被卡在1.0上),因为我们遇到了很多问题并被告知它们已在以后的版本中得到修复。至于其他技术,如果您知道如何使用它们,它们的工作正常。
一般来说,你最好用你熟悉的语言进行开发,并且能够完成这项工作,而不是那种你几乎不知道的语言,但可能是这项工作的“最佳”语言。
答案 5 :(得分:2)
“Web 2.0”通常指的是用户界面而不是支持webapp的底层技术。
什么阻止了基于Java的Web应用程序在UI层中完全浮华和AJAX-y?没有。您将在Java中编写中间层 - 无论如何这对用户都是透明的。
我认为那些给你这个建议的人更关心的是“嘻嘻哈哈”和(他们认为是什么)目前正处于“热门”的潮流 - 这与标记完全无关/ strong>您的用户界面。我不会听他们的。
答案 6 :(得分:2)
美好的一天,我再次发布关于Wicket的信息! :)
只要您知道如何使用可用的工具,Java就非常适合Web2.0应用程序。我刚刚链接的Apache Wicket是一个基于POJO的Web应用程序框架,它以一种令人难以置信的方式隐藏所有无聊的服务器 - 客户端内容,它允许您做任何您能想到的事情。这里的优点是,由于Wicket只是POJO,因此您可以获得非常快速,迭代和单元测试的代码,其工作方式与浏览器中的预期相同。
要使用Java创建Web2.0站点,您当然不必使用Wicket,但无论如何我都会推荐它。
答案 7 :(得分:1)
我使用Java构建Web应用程序,然后将PHP用于个人项目。虽然Java肯定能够满足您的所有要求,但我发现它有时很麻烦,并希望我使用PHP(或其他语言)。它取决于你正在构建的应用程序的类型和大小,但我认为有很好的理由为什么许多人选择PHP,Ruby和Python作为他们的个人项目,即他们选择什么他们构建Web应用程序的语言(而不是他们的上级)。