我发现在JVM上进行类似Node.JS的开发有很多潜力,其运行时间非常优化。
在这个时刻,我看到三个项目旨在将类似node.js的开发风格带入JVM:
这些项目应该合作吗? 他们的相对优势和劣势是什么? 哪个项目的势头最大?
答案 0 :(得分:31)
披露 - 我是vert.x家伙:)
Vert.x是一个完善的平台,用于构建多语言,可伸缩,异步的支持Web的应用程序。
它受到node.js的启发,但比node.js更进一步,并提供了一个分布式事件总线,它从服务器到达客户端JavaScript,从而为所谓的“实时”Web创建一个超级简单的模型应用程序。我们还附带邮件程序和mongodb persistor。这里有一个完整的教程http://vertx.io/tutorials.html
但可能是它与其他异步框架区别开来的主要因素是它的多语言性质。 Java,Ruby,JavaScript和Groovy中提供相同(或类似)的API(可以使用Clojure,Python和Scala支持)。
Vert.x确实利用了JVM上真正的多线程来提供可扩展性和性能,而不是node.js无法触及。
如果你不想要整个平台。 Vert.x还可以用作库,用于在Java或Groovy应用程序中提供HTTP,TCP,websockets,sockjs,eventbus等支持。
有关详细信息,请访问网站http://vertx.io
答案 1 :(得分:28)
免责声明:我是Webbit的人
3个项目之间肯定有很多重叠。当我建立Webbit时,我不知道其他两个 - 如果我去过,它可能不存在,或者我可能花时间为其他人做贡献。
我可以谈谈Webbit ...
它不是一个多功能的事件IO框架。或网络协议工具包。或者文件系统抽象。 Webbit只做了其他人做的一小部分。
Webbit也不是一个功能齐全的网络框架。与Node.JS或Servlet API一样,它提供了构建更高级别框架的核心构建块,但将其留给了外部项目(如Webbit-EasyRemote或Webbit-REST)。
Webbit关注的是一个简单的,可嵌入的,非阻塞的HTTP和WebSocket服务器。
因为它采用“做一件事,做得好”的方法,它也被设计成与其他库一起使用。它允许传入外部java.util.concurrent.Executors并避免单例线程上下文,使其特别适合与Actor样式并发库(如Jetlang和HeySync)集成。
Vert.x和Deft为开箱即用的Node样式开发带来了完整的框架。 Webbit只是一个小工具,可以帮助HTTP / WebSocket启用您的应用程序。这两者都需要,这实际上取决于你的需求(和个人风格)哪个更合适。
答案 2 :(得分:21)
免责声明:我是Apache Deft的提交者。
Apache Deft与龙卷风有更多共同点,而不是与node.js相比,而vert.x受node.js的影响很大。来自wmware的Tim Fox在vert.x方面表现非常出色,开发速度确实令人印象深刻。
vert.x有几个examples可用。 一些Apache Deft examples。 Apache Deft还有一个更大的“demo application”,它可以让你了解如何将框架用于除http之外的其他内容。
AFAIK webbit目前的目标是成为“WebSocket和HTTP服务器”。
他们应该合作吗?绝对:)