Regarding years: note that the announcement mentioned the equivalence of
Lisp/SmallTalk. I had hoped that the implication was for the applicant
to be comfortable with closures, recursion, metaprogramming,
concurrency, etc.: in short, a basic understanding of most of SICP
(oops, another acronym). I should have said that to begin with...
Regarding program size: I disagree. Our application is large because our
subject matter is large in an irreducible way. The app needs to interact
with 3rd party software that has its own highly complex (and often
poorly designed) input/output system. It needs to do a large variety of
geometrical calculations (not difficult ones). The programmer for this
job needs to be comfortable with managing a large number of ugly
details. That skill is distinct (though of course not exclusive) from
writing a lovely little ruby library.
It does seem to me that LORC (Lines of Ruby Code) tends to be much
smaller than LOC++C (Lines of C++ Code), for any given equivilent
functionality. In my experience LORC = 1/((4..6)*LOC++C). I can also see
that Joel might have a lot of functionality to implement.
Joel, is it possible that you would consider people who
have a good handle on Ruby and have worked on projects which consisted of
20K+ LOC where LOC could be a mixture of C++ or Java as well as
Ruby?
I've done a couple of Ruby projects for pay and in neither case did we
get past about 4K lines of Ruby. One in particular involved
some computational geometry. Most of the code base was in C++
because we needed speed (about 25K lines as I recall) which we wrapped
with SWIG so we could script our tool from Ruby. We had about 4K lines
of Ruby code (including unit tests for the C++ classes) and ~25K lines of
C++.
Joel: Just to clarify: would a project with 25K LOC++C and 4K LORC
qualify? I'm trying to figure out if you're looking specifically for
LORC or if you're looking for experience with handling large projects in
whatever language.
Phil