Monday, July 1, 2013

The Ruby Community: with open arms

New, budding software developers are always coming to the scene.  Even older developers like trying out new languages because, well, programming is fun!

My brother wanted to try something a little new.  To my knowledge, he had never written a lick of code in his life.  So one day he asks me about what I do.  I introduce him to Ruby and to Rails since my career has mostly encompassed web application and service development.

I love teaching what I know to people who are ready to learn.  Admittedly, I'm not the best teacher, but I do get a kick out of seeing the twinkle of understanding in a student's eye and the 'aha' look on his face.

What drew me to the Ruby programming language?  It was fun.  Yes, that's it -- for too long I had spent time coding and debugging with a compiled programming language.  Waiting oodles of collective time for the code to compile just to run my tests was getting old.  Perl was cool, but oh so cryptic.  I often times felt so lost admit the many versions of documentation and different flavors of Perl available.

Ruby provides built-in methods to introspect class and instance variables, what classes and modules are in the inheritance path, what constants are available, and many other pieces of information that can help me answer questions without having to go Google them and get lost in the myriad of possible answers.  Many times the question is, "What methods are available for my object?"  No problem.

my_object_instance.methods.grep /find/

And now I get a much smaller list that can tell me what methods I might be interested in.  Then I go Google for more details.  Isn't that beautifully elegant?  Try doing that with Java.  Not nearly as fun and liberating.

Yes, Ruby is an interpreted language.  Yes, it will be slower than a compiled language, but no so much that it still doesn't have a useful purpose.  As with any software development and programming language, the time it takes to develop code translates into dollars invested to both write the code and maintain it.  If I can get Ruby code whipped out and tested in a fraction of the time it takes to do so in a compiled language, there might be enough money to spend on perhaps a little more expensive hardware that can compensate for the slightly slower Ruby-based applications -- and still come out more cost effective.

Then there is the culture.  The Ruby community, like many others, seems to embrace anyone who wants to learn.  My brother was not disappointed when he posted his questions to a Ruby forum.  I suspect they are so excited to teach because of how much they love working with Ruby themselves.  I guess that shouldn't be any surprise because Ruby is fun.

Happy coding!

No comments: