by Brian Ford
What do RubyVM, Rubinius, JRuby, IronRuby, MacRuby, and MagLev all have in common? They all aspire to run your Ruby programs. But how do you know whether your programs will run as expected?
The RubySpec project aims to write a complete executable specification for the entire Ruby programming language and its core and standard libraries.
This talk will discuss the purpose, history, and status of the project. It will also describe the specialized spec runner, MSpec, and look at how its architecture and features assist in using RubySpec both to help drive development of Ruby implementations and to verify that an implementation is correct and compatible.
Since RubySpec looks at every nook and cranny of Ruby, there is plenty of opportunity to have a participatory conversation about Ruby and Ruby programming. Also, since RubySpec is a nexus of effort among many competing and sometimes complementary projects, we can also discuss issues surrounding organizing a project like RubySpec.
The Rails community is notoriously fickle when it comes to hosting, monitoring, and packaging their applications. In a few short years, we've seen no less than three "recommended" deployment models come and go: FastCGI + lighttpd, Mongrel + load-balancing proxy, and now Passenger/mod_rails. There's another option which gets much attention, though, despite its many strengths: running Rails in a Java application server via JRuby.
There are good reasons to consider this model all by itself, but websites are only one small part of what the Java ecosystem supports. Once you open yourself up to the possibility of using Java infrastructure for your Ruby code, there are a whole raft of other high-quality services and libraries available to you, covering everything from scalable message queues, shared object caching, and distributed computation frameworks. You can even tame legacy databases and enterprise platforms like Oracle, SAP, and the dreaded "portal".
Furthermore, now that Google App Engine supports Java -- and JRuby was a big part of that announcement -- you can deploy your Ruby code onto Google's servers for free. Once you're ready to upgrade to your own deployment, there are numerous high-quality open source Java application servers available (Glassfish, Tomcat, JBoss, Jetty, etc.) which you can run on your own system.
Come see how JRuby makes writing Java apps less painful, and how the Java ecosystem's focus on stable, scalable infrastructure can make your Ruby apps more reliable and performant. Bring a laptop with a recent JDK installed, and you'll be able to follow along with the entire process of getting basic Ruby apps up and running in a Java application server, using JDBC to talk to backend databases, and even wrapping a legacy Java library in a "Ruby-like" API layer, all without ever going anywhere near a compiler or an XML config file.
17th–19th June 2009