29/10/2012

Konstantin Haase: “I think we should explore different languages the way we explore different libraries”

Ofer Dak, @startupmania

Konstantin Haase is the maintainer of Sinatra, He regularly contributes to different widespread projects, like Rubinius, Rack, Travis, Rails and MRI and won the 2012 Ruby Hero Award for his outstanding contributions to the community.

In His talk Konstantin is going to take us beyond Ruby: “I’ll be exploring what interesting concepts some other less known programming languages have. And what we can learn from them. For instance, Smalltalk. And I do believe that every Ruby developer should play with Smalltalk, at least once. It helps thinking in an object oriented way. I will even take it a step further and explain how in Newspeak there really is nothing but method calls, even variable access, etc. In the same vein, I will cover Lisp and Prolog, two languages that can greatly influence how you think about programming languages”.Konstantin Haase

“I think we should explore different languages the way we explore different libraries. Which in no way means we shouldn't use Ruby. I love Ruby and it's my go to language. I think Ruby's biggest feature is the amazing and open community.  The support you get when you have issues, all the people seemingly engaged in the community just for the community's sake”.

You’re on the Rubinius Team, a project that’s getting some buzz

Rubinius is definitely something to keep an eye on. Last year I spent three months working on Rubinius full time together with Brian Ford in Portland. It’s an alternative Ruby implementation. Basically a different program, which also understands Ruby, like MRI ("Matz Ruby Implementation") and JRuby. The thing is that the official Ruby implementation is a rather naïve implementation internally. JRuby tries to improve that by using the JVM to run Ruby. And Rubinius has its own VM, written in C++, especially made to run Ruby and modeled after Smalltalk VMs. And just like in Smalltalk, basically the complete system except for the VM is written in Ruby rather than C or Java”.

What Technologies are you following? What are the trends you think are going to catch on?
“This might be a bit obvious already, but I think JavaScript is finally moving from a scripting language to a proper programming language, even in the browser. So one thing we do is we heavily use Ember.js. I think it will revolutionize client side JavaScript the way Rails did on server side development. Besides tooling, it mainly gives you structure. Not every app stays small and perfect. And that's where ember really helps.

Something else I'm excited about: Server-Sent Events. It's not really new, they were already around two, three years ago, but people seem to now discover them. On first sight they seem like WebSockets' little brother. And it's basically that: It allows an infinite stream from the server to a web page. On that web page the server can trigger DOM events in real time. The amazing thing about SSE: it's just HTTP, not a different protocol like WebSockets. For instance, here is a fully functional web chat using SSE in just a few lines of Sinatra + HTML + JavaScript:
https://github.com/sinatra/sinatra/blob/master/examples/chat.rb

What are you waiting for in Rails 4?
Rails 4 will have better support for SSE, too. At least that's what Aaron Patterson promised last week at the Aloha Ruby Conference. Also, a better notification system - ActiveSupport::Notifications got a rewrite for 4. We use notifications intensively to decouple different tasks in Travis CI. And we build tooling on top of it that allows us to monitor notifications in our distributed system. In Rails 4, it will come with most of the things we build manually on top of it. This will not only mean we have less code to maintain, but also that other people can build great tools on top of it. Think NewRelic on steroids. Also, there are plans to replace Rack with its successor. I'm really excited about that. But I don't think that will happen in time for Rails 4.

Open Accessibilty Menu