Friday, March 18, 2011

MountainWest RubyConf 2011: Day 2

So, I am not doing as much coverage today as yesterday, but I will cover interesting tid bits here and there.

Just saw an interesting lightning talk about a new project on GitHub called trigger_happy that allows you to generate triggers from active record models, thus get all the benefits of triggers and the expressibility/db-independence of Ruby abstraction.

Another lightning talk was given on Ruby Mendicant University, which provides real world training for intermediate Ruby programmers.

In one very cool talk titled "Using Ruby with Xbox Kinect for fun and profit" by Nate Peel, the presenter showed us how to interface with the new XBOX Kinect technology using Ruby. He then concluded with a demo of it capturing his motion while waving at the audience. Not my cup of tea of programming, but I am sure a lot of developers find that interesting.

Next, Joe O'Brien from EdgeCase talks about Android Development With Ruby. One cool thing he showed is his own DSL for the views to avoid the annoying reliance on XML for views. Also, it was interesting how he relied on the typed version of Ruby, Mirah, to program the Android Java libraries since Mirah has a closer gap to Java given the typing.

Evan Light talks next about "Tiny Tools Tidy Tests", in which he mentions how he built coulda as a simpler Cucumber alternative because he did a lot of testing in his job yet really felt bogged down by Cucumber. He recommends developers write their own tools if they are not pleased with the ones they have, yet use them for the majority of the time in their job.

Afterward, I presented "Whatever Happened To Desktop Development with Ruby.". The presentation will be posted on the Confreaks website sometime in the near future. I will announce it when it happens.

Yahuda Katz is concluding the day with his keynote speech "Ruby: The Challenges Ahead". He is not pleased with Ruby developers sticking with the 80/20 rule without eventually (gradually?) going beyond it and solving the problem 100%. He thinks it discourages developers from taking Ruby seriously in comparison to languages like Java or C#. He emphasizes that protocols implemented in the standard Ruby library, such as RSS, may not have nice APIs, but are meant to be 100% solutions, so other gems can simply provide better APIs for them. There is no need to rewrite them. Often Ruby developers bite more than they could chew because they are not satisfied with a library, tackling a problem outside of their domain of expertise when they could have reused a reliable library but improved its APIs. He mentions how protocol libraries that do not change often are usually stable because they have a complete implementation, and thus are considered reliable. On the other hand, libraries that are more like frameworks (e.g. Rails) have to change often to express the latest needs. Yahuda gives examples of people's abuse of TheadLocal, Constant re-assignment, and inheritance instead of trying to solve problems the right way completely or rely on a library that does (albeit sometimes with an ugly API). He encourages developers to seek cooperation over NIH (not invented here), so maybe look for something out there first before rewriting things yourself. He also encourages pure Ruby over bindings for problem that are not too tough to rewrite in Ruby over C, such as YML parsing. The last thing he pointed out is encouraging streaming IO over blocking IO. He closed the presentation with emphasis on solving the 20 part of the 80/20, ending with "Let's Grow Up Together"

Thanks to everyone who helped with organizing this conference and thanks to all the presenters.

No comments: