So, I’m learning Ruby (it only took me a year to get started!).
I’m working my way through Programming Ruby and doing a few different scripts to see what it can and can’t do.
Most of it seems fairly straightforward stuff and I’m liking what I’m seeing for the most part.
One of the things that crops up from time to time in examples in books and online is something along these lines:
print total unless total.zero?
That’s it, the “unless construct”.
I’ve seen this before in Perl and I’ve always avoided using it – I personally find it unintuitive so I always write my code in the if x do y style.
Do x unless y has always seemed a little, errr, backwards.
Seeing it again in Ruby I again decided I’d avoid using it and carry on as I had before – then I began to wonder if I was simply imposing my “Java programming style” on to my Ruby code.
It’s an easy enough trap to fall into, much like early C++ programmers wrapping their C-style static methods up in a class and think they were doing OO.
Thinking about it, most of my Perl code is written in a similar style to my Java – I always apply “use strict” and enable warnings, always put code into methods, almost always have a main method etc.
But hold on, am I writing Perl in a Java style and thereby restricting my ability with the language, or am I simply applying sensible practices to my Perl code?
My Perl code never really extended much beyond occasional scripts to process photos so I have no clear answer to that.
I hope that my Ruby coding will move beyond that (possibly into the realm of Ruby on Rails) so as it does I’ll have to constantly be asking myself if I am thinking in Java or thinking in Ruby.