The RailsWayCon in Berlin is over. All the talks I’ve seen were extremely interesting. Here are my personal highlights:
It seems that Ola Bini can create a new programming language effortlessly. On the examples of JRuby and Ioke he offered a very interesting look behind the scenes and showed the way from the AST (abstract syntax tree) via the runtime environment (frames, bindings) to the interpretation and compilation. He told that Ruby is especially hard to implement because of its very flexible syntax (little parentheses and semicolons, lot of whitespace) and other flexibility - eval, closures, the fact, that many functions accept an explicit binding object. The harder it is to implement Ruby, the better it is for developers, that use Ruby: they get a very powerful tool and can write very terse and at the same time very expressive source code.
Neal Ford showed, that naming the things in a particular way immediately makes them sound more respectable. By introducing of terms “cut points”, “advice” instead of “monkey patching” everything sounds like advanced design patterns and not anymore as a hackery.
I found the discussions with members of the Rails core team between the sessions and in the evening very helpful. In that environment even previously rejected patch can take a shortcut into the main repository.
P.S. I gave a talk on metaprogramming:
Metaprogramming considered harmful
…not all kinds of it, of course. People just discovered the power of this technique extensively use it, both in cases where it’s a good match, but unfortunately also where it creates a lot of unexpected problems. With a selection of practical ‘Metaprogramming gone wild’ examples I would like to show how less and more appropriate metaprogramming leads to simpler and better maintainable code.