[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: gEDA-user: Perl

On May 28, 2011, at 12:54 AM, DJ Delorie wrote:

> This is more anecdotal than anything else...
>>> I'm a Perl fan myself.
>> (shudder)
> Just before I learned Perl (WAY before python existed, before perl 5
> even), my manager was talking to *his* manager about this nifty new
> tool called "perl" that they just discovered.  Apparently, their
> metric for whether it was good or not was whether or not I knew how to
> use it already ;-)
> "Does DJ know how to use it?"
> "No"
> "Why not?"
> "He hasn't needed to yet."

My intro to Perl was about 20 years ago, when one of my Japanese colleagues asked me to bring a couple of copies of the Perl book over, because it was unavailable in Japan. So, I bought them at Quantum Books. I read one of them on the long plane flight. My impression then is the same as it is now: Perl is a crazy, complex, undisciplined shotgun marriage between AWK and sh. The contrast between the extreme discipline of AWK's design and Perl's sloppiness is striking.

> Shortly after, I needed it, so I learned it.  It'll be the same with
> Python, just like it was with Scheme.  I'm a compiler engineer -
> picking up languages is second nature to me.

I've been a compiler engineer a couple of times, back when a lot of design discipline was needed (because without care, your code either wouldn't fit in memory, or would be intolerably slow from disk thrashing). A simple related project involved implementing structured flow control in an assembly language: that had long-lasting consequences (http://www.frankston.com/public/?name=ImplementingVisiCalc). And I've written code in dozens of languages (I lost count decades ago). I won't recommend FORTRAN II, METASYMBOL, SNOBOL3, PL/I, or FORTH for this job ;-)

> It happens that most of the Fedora infrastructure is all python
> scripts anyway, so it's not a big deal if I have to learn it, it's
> just that I've been using Perl so far and it always seems to have the
> features I want.  In this case, the key feature is:
> You can implement arrays of hashes, hashes of arrays, arrays of
> arrays, and hashes of hashes.

That's not a "feature" in my book: it's fundamental to this class of language. Composition.

> This feature, for exmaple, allows us to encode a complete gEDA project
> (sch+pcb+whatever) in a single perl variable!

No problem doing that in Python. Or even ECD BASIC in 1978.

> But as they say, if there's a way to do it in Perl, there's more than
> one way to do it in Perl, so yes, the likelyhood of inconsistent
> styles is very high.

I can't imagine a sane *design* process for anything even moderately complicated in Perl.

John Doty              Noqsi Aerospace, Ltd.

geda-user mailing list