I'm back from Rubyconf.

Some people say Ruby is dead. We can probably gloss over Zed Shaw's famous <a title="Zed Shaw's famous rant on the Rails community" href="http://web.archive.org/web/20080103072111/http://www.zedshaw.com/rants/rails_is_a_ghetto.html" target="_blank">rant</a>, since it's from roundabout 2007. My understanding is that the thought came about because of the many new trends in programming languages: first node, then Erlang's comeback and the birth of Elixir. Evented programming, non-blocking IO, all the fancy buzzwords, and everyone craps on Ruby's Global Interpreter Lock.

Given the talks at Rubyconf, Ruby is most likely not dead (and my company's internal rubylist has an ongoing recent conversation about this if you're curious). There were talks on API design, on fault-tolerant data, on machine-learning, on parallel execution and concurrency, a talk on <a title="Raft: a blog entry with links and stuff" href="http://highscalability.com/blog/2013/8/7/raft-in-search-of-an-understandable-consensus-algorithm.html" target="_blank">Raft</a> (an algorithm to obtain consistency)…

Ruby's ecosystem is certainly doing a lot of hard work to stay current. If you use Rubinius or JRuby, you can leverage a ridiculously powerful library called <a title="Celluloid" href="https://github.com/celluloid/celluloid" target="_blank">celluloid</a>, plug in <a title="celluloid-io" href="https://github.com/celluloid/celluloid-io" target="_blank">celluloid-io</a> and use <a title="reel webserver" href="https://github.com/celluloid/reel" target="_blank">reel</a>, a webserver based on celluloid-io. Here's the quick blurb on celluloid-io: <em>Celluloid::IO provides an event-driven IO system for building fast, scalable network applications that integrates directly with the Celluloid actor library, making it easy to combine both threaded and evented concepts. Celluloid::IO is ideal for servers which handle large numbers of mostly-idle connections, such as Websocket servers or chat/messaging systems.</em>

Oh, and I haven't mentioned the cherry on top of the cake yet! <a title="Opal" href="https://github.com/opal/opal" target="_blank">Opal</a> is a ruby to javascript source-to-source compiler. It also has an implementation of the ruby corelib. It has come a REALLY long way. It passes a large amount of tests from the Ruby specs. You can write jquery with it. You can write CSS with it. In short, it is pretty close to making Ruby into the one-stop-shop for web apps: it allows you to create objects which are representations of what you see on the screen. No more do you have to separate your HTML from your CSS or your Javascript. Check out slide 339 of the <a title="Opal - A new hope slideshow" href="http://www.slideshare.net/fkchang/opal-a-newhope/339" target="_blank">Rubyconf presentation</a> to see an example. And feel free to check out the entire presentation, there's lots of goodies.

In short, Ruby's doing pretty well.