[PREV - CASE_STUDY_1] [TOP]
CASE_STUDY_2
I came across some interesting ammunition for
perl advocacy written by Steve Yegge, someone
who isn't a fan of perl (to say the least),
but got to watch Java and perl programmers in CASE_STUDY_4
action at Amazon for a number of years.
"Is weak typing strong enough?":
[ref]
Some quotations (with
many sentences ellided):
"I watched the strong/weak battle play out (in various
ways) in Amazon's Customer Service Applications group
for years."
"One thing I observed was that the folks who
favored Perl always seemed to be able to get stuff
done really, really fast, even compared to experienced
Java folks. And they had their act together; it wasn't
just crude hackery, as many Java programmers would
like to believe. Their code was generally very well
organized, and when it wasn't, they'd go in
periodically and fix it. Sometimes they did quick,
hacky scripts, and in fact the ability to do this
proved to be mission-critical time and time again. But
generally the Perl stuff worked just as well as the
Java stuff. Whenever performance became an issue,
they'd find clever ways to make it perform well
enough."
...
" So for years, we had Java and Perl development
going on side by side. This was a decision made in
old days, purely for expedience reasons. When we were
deciding how to implement Arizona (our internal
web-based application suite for CS), we had about a
50/50 split between Perl and Java programmers on the
team."
"During the initial development, the Perl use-cases
got finished astonishingly fast. For a while, Arizona
had more Perl than Java, because our Perl programmers
started grabbing tasks assigned to the Java
folks. Over time, the "climate" across the company
pushed us to migrate everything towards Java. It was
a pretty complicated situation not worth recounting
here, but over a period of years, most the Perl stuff
in Arizona was gradually rewritten. (I hear after I
left, the climate changed again, with Java being
phased out in favor of C++ and Perl, but for reasons
mostly unrelated to the languages themselves.)"
"In any case, for several years I got to watch Perl
and Java folks working side by side doing pretty
much the same tasks. In some cases, they even had to
implement the same logic in both languages. Yes,
there were inefficiencies with our Perl-and-Java
approach. However, it was the right decision at the
time, and as a result, I was personally able to
witness a more or less apples-to-apples, multi-year
comparison of the strong-typing and weak-typing
camps at work in the same production environment."
"In nutshell, I was pretty impressed. I was
a die-hard Java guy at the time, and even then, I
could see that the Perl code was far smaller and
simpler than the Java code. It didn't feel "cleaner",
since Perl itself is a bit challenged in that
department, but it seemed modular enough. It had a
well-defined architecture, and it got the job done,
year in and year out."
"Our Java code (to me) seemed far more complex, even
though I could read Java more easily. I think Java
programmers have a tendency to overengineer things,
myself included. I suppose many Java folks would
have thought of our Perl code base as grossly
under-engineered. But if it was really
under-engineered, it seems like it should have
caused more problems than it did. In practice, most
of the problems in the Perl code were
interoperability issues with external services (or
databases, in cases where there were no services
yet.) Most service owners didn't include Perl
bindings for their interfaces, so our Perl folks had
to do a lot of head-scratching to find workarounds."
--------
[NEXT - CASE_STUDY_3]