On Thu, Jul 18, 2002 at 10:14:18AM +0900, Francis Hwang wrote:
> So I've just started working as the sole programmer at a non-profit 
> which is heavily internet-based. Most of the code is in PHP or Perl, 
> and I would like to gradually migrate it to Ruby over time.
> 
> I get a lot of leeway in this job, but this sort of a decision is 
> probably the sort of thing I'd have to justify to my boss, who's 
> likely to be nervous about it. Not about my ability to be more 
> productive with Ruby, but with the fact that Ruby is an uncommon 
> language compared to PHP and Perl. So if I get hit by a truck, or if 
> the organization expands and needs to hire new programmers, or when 
> we're looking for interns, it will be harder to find programmers who 
> know Ruby.
> 
> Anybody have any advice as to what I can say him to make him less 
> nervous about making such a transition?
> 

Maybe not as much talking as doing. I have experienced similar
comments, and it is understandable considering programming
languages heretofore. Ruby just doesn't fit any existing mold.
Dave Thomas has some slides on his website of a presentation 
of Ruby to a Perl group. The title slide describes Ruby as
a transparent language. And it is. 

Learning Ruby is not an issue. As said earlier, it can be 
learned in a day by a good Perl programmer. I would alter that
a little. One can grasp the essentials in a day. Within
a week you can be comfortable with 95% of the language fundamentals.
At that time, I think most people could define their programming
in Ruby as-productive-as or more-productive-than any language they
previously knew.

It may be pointless to address the issue directly to your boss, but
it is such an easy target. :) This may not be a (or the) real issue.
It may be the first one he came up with. But it is one that can be
covered en-mass in a presentation to your company. 

My personal take on this type of comment is not that you have a language
that is unfamiliar to people and it may be difficult to find people to
maintain the code-- the issue is code maintenance. Maintenance is
best addressed with well defined coding standards, clear requirements/functional/
design documentation, and most importantly, a comprehensive set
of test cases(Ruby really excels here). Language is not in any of 
the top four categories.

The humerous part of the original statement is that perl is not very 
readable. In fact, it can be a write-only language. I'm sure you 
have heard of the saying- "When I wrote that code (in perl) only 
God and myself knew what it said. One week later, only God knew 
what it said." At my company, there has been a tremendous expense 
trying to ressurect old perl code.

I myself have been programming in Ruby for over a year now and I
manage a programmer who is using Ruby.  We have other developers
who use skill and perl and I have attended code reviews for
all three languages. There is no question that Ruby code is easier
to maintain. 

One interesting aspect of Ruby, even non-programmers are able to
sit in on a Ruby code review, understand what the code is doing and
make suggestions.  That is not always true with Perl and Skill--even
with experienced programmers.

Well, sorry to be so long winded. I hope some of this helps.
Good luck in your efforts.

-- 
Jim Freeze
If only I had something clever to say for my comment...
~