New JVM polyglot framework emerges
vert.x - viable alternative to node?
The first final version of a new VMware-sponsored community project, aiming to become a JVM-polyglot alternative to the wildly successful Node.js has been released.
This is proper polyglot programming within a single application, showing some promising potential. Fox also details further support choices scheduled on the roadmap such as Scala, Clojure and Python. The core is written in Java, with a thin API for the other JVM languages.
Further features within vert.x include a distributed event bus, WebSockets, SockJS and a MongoDB persistor, straight out-of-the-box to give you a jolt in the right direction from the start.
Four design goals were in mind for vert.x as Fox notes in the release. The polyglot part is the key as previously mentioned, but there's also drivers towards making the framework as simple as feasibly possible to work with, scalable through the power of Netty and real-time concurrent.
vert.x doesn't hide from being in a similar mould to Node.js but as Tim Fox tweeted earlier today:
Seriously though. I have respect for node.js. Node is clearly a source of inspiration for Vert.x. However node doesn't do everything right..
And that's where vert.x comes in: Performance, Scalability, and Multi-language support
Not a perfect analogy, but Vert.x is to Node.js what Akka is to Erlang. Both Node.js and Erlang contain good ideas but are also flawed.
This framework is far from a homage to node.js, but merely taking ideas from it and putting a JVM spin on things. It's postured as a competitor against Node but also Typesafe's Akka. There's a benchmark below to gauge where vert.x sits amongst its competitiors, and the results are indeed promising. It's acknowledged that these benchmark tests were conducted on the desktop and more rigourous testing is needed to validate the claims:
There's a clear trend towards building applications for mobile and embedded devices at the moment and vert.x should fit well into the array of options, thanks to its multi-lingual approach. We await further developments...
For now at least, visit the website or visit the project on GitHub. To get you
started, there's plenty of code
examples, and a tutorial which shows you how to create a
real-time web application without any server side