Asynchronous network progamming with JRuby and Netty
updated almost 5 years ago; latest suggestion almost 5 years ago
This proposal has been withdrawn...
Through this presentation, I will show the audience that JRuby combines the power of the JVM and the elegancy of Ruby through popular Ruby topics such as asynchrony and web applications.
More and more people are migrating from Ruby to Node.js because it's easier to do asynchronous applications and web applications can be faster and more scalable. But easy asynchrony, performance and scalability can be achieve with JRuby using Java libraries.
To show that, I will show an example based on a popular Java library named Netty – an asynchronous event-driven network application framework (it is similar to Node.js and EventMachine). Netty – like a lot of Java libraries – is complex but JRuby can easily hide this complexity and let Ruby developers use a very fast library without the quirks of the Java syntax.
I'll show some code examples of a web framework I've made based on Netty and how it can easily be used in association with Ruby libraries like ActiveRecord. I'll show a real-world usage, a REST API for an iOS app.
In summary, I think it's a great practical guide to JRuby and how it could help to achieve great performances for your applications while still writing normal Ruby.
I've edited my proposal. I'm now explaining Netty and I've removed useless terms (that I can explain in the presentation but are not necessary here) to clarify and simplify the proposal.
I think the context is clearer now, my framework and the use of JRuby make asynchronous applications easy to write for Ruby developers.
I'd say 30% is about general JRuby stuff (using Java libraries in Ruby for example)
70% are not only about the framework but asynchronous network programming with Netty too (why it is easy, how does it compare with other libraries and frameworks, etc)
What proportion of the talk would be about general JRuby stuff vs the specific framework you wrote?
I think this proposal would benefit from a few words explaining what your framework is actually used for. It assumes that I know what "Netty", "Vert.x" or "Celluloid::IO" are, and that I already know what problem you were trying to solve when you were considering using them. You could briefly explain the "real world usage" you're going to demonstrate?
There could be a great talk here, but we need to clarify the context -- the problem(s) your framework solves -- as well as the extent that you're going to talk about more general approaches.