Gregory Seidman wrote:
I came to Ruby because I had been resisting learning Perl and Python for
years. Perl because of its unholy nastiness (I can still understand the
shell scripts I wrote a decade and a half ago; can anyone say the same
about a perl script written even a year ago?), and Python because of its
significant whitespace (there are those who say it's a feature; let's agree
to disagree). Finally, a scripting language with pleasant syntax, a strong
community, and a rich ecosystem of libraries springs up. Even better, it
has the main benefits of Perl (regex wizardry) and the good design sense of
SmallTalk. Once I learned about that stuff, I decided I would learn it.
Hmm ... I moved from (n)awk/sed/(k)sh to Perl (4) precisely *because* of the readability! This was about 10 years ago. In particular, I never have found ksh particularly readable. Before Perl, all I used ksh for was executing (n)awk scripts, and I rarely used sed at all. Most of this "application" was written in awk, and worked with either nawk or gawk but not with pure awk.
Times change ... if I were implementing the pacakge now I'd use Ruby instead of the mix of Perl and R it has evolved into from the original awk.
Granted, it was not until I decided to develop a Rails app that I actually
got around to learning it. And I was delighted both by the ease with which
I developed the toy web app I was working on and the pleasure of using the
language itself.
I think a lot of us discovered Ruby from being immersed in the Rails hype. I actually discovered it about two years ago in connection with computer music; Ruby is used in the GridFlow package. But I never took the time to learn it then, or even mess with GridFlow -- I moved back to Lisp, which is where much of the experimental music community resides.
Oh, and why did I actually need to learn a scripting language (other than
awk/sed/sh which I know well already)? I didn't. I just felt the itch to
learn a new language.
I wanted to learn web application design specifically rather than Ruby. I suppose I should have picked PHP to learn, since a lot more web apps are written in PHP than Ruby/Rails. I may yet learn PHP, but certainly from the point of view of language design elegance, Ruby is light-years ahead of the "big three" scripting languages -- Perl, PHP and Python.
Strangely enough, the one "wart" on Ruby in my opinion is the continuation of the UNIX/vi/awk/sed/perl "tradition" of regular expression syntax and semantics. I appreciate its usefulness and its ubiquity, certainly, but it is decidedly awkward to me, even after having used it for 20 years. Using it represents a thinking mode shift for me; it's as if my programs are speaking two different languages. Perhaps Matz can earn a lasting place in the computer science Hall of Fame by developing a more elegant way to do these tasks "The Ruby Way".
···
--
M. Edward (Ed) Borasky
http://linuxcapacityplanning.com