Wednesday, July 19, 2006

New Blog

I have created a new blog that combines material from this blog and my other blog that was more philosophy and theology oriented. I've moved over the posts from 2006, but not further back than that. This blog will remain for archival purposes.

Tuesday, July 18, 2006

Enterprise Ruby

The Rails web application framework has put the Ruby language in the spotlight. However, as some enterprise developers have looked into Rails, they find that it doesn't fit their environment very well. Rails has a focused, opinionated design which works wonderfully for programmers who are willing and able to work the "Rails way". However, there are legacy and enterprise environments that don't fit into the Rails mold.

However, the Ruby language is not as opinionated, and Martin Fowler has written a good article about the difference between the Rails philosophy, and the larger Ruby philosophy, showing that there is value to both.

Another indication of the enterprise nature of Ruby is the Enterprise Ruby Studio workshop. The stuff covered in this workshop is not as hot as Rails, but it looks like it's full of very useful techniques and tools for common enterprise tasks. I wish I could go, and I hope they put a lot of the material into a book soon.

I like an expression that I found Fowler's article, and the Studio web page, which is "Ruby is the glue that doesn't set". I think that Ruby makes it easier than some other glue languages, like Perl, to create code that has a good object-oriented design, which I believe results in code that is easier to modify and reuse.

Sunday, July 16, 2006

Offensive Coding

Michael Feathers wrote an interesting article on checking for null arguments in a non-public method. Although the example that he gives is clear, it does raise the question of how defensive should our programming be where we have less control.

In a related issue, Mr. Feathers had a link in his post to an article on run-time versus compile-time type checking. This is a debate that is becoming more heated as dynamic languages such as Ruby become more popular. I'm not prepared to be dogmatic on this issue because I see good points on both sides. I guess I will be exploring the question myself since it looks like I'll be primarily working in C# and Ruby for the foreseeable future.