Stories
Slash Boxes
Comments
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More | Login | Reply
Loading... please wait.
  • by thickas (5805) on 2010.04.26 4:22 (#71923)
    Read your Journal post on "Current State of P6" and wanted to express my
    support for you/your work and to says "thanks" for taking on a very hard
    job. I'm only an occasional Perl user - but have a friend who actively
    contributes and maintains a useful segment of code in Nagios, so I get
    pointed to interesting stuff like your post.
    [I'm writing because I don't need to create another login out there in
    the Web-verse. If there's anything useful in this, you have my
    permission to edit and post as you see fit.]

    There's a very impolite, but relevant response to critics in the
    Computing World:
    -"put up or shut up",
    which translates to a nicer "Really? Show me how yours does it."

    This was the stance within Bell Labs Computing Research (dept 1127).
    And I'm guessing, something like this could've gone on at Xerox PARC.
    It's not accidental that both these (small) groups profoundly changed
    the world of computing.
    Exactly as Perl, in all its manifestations, has done.

    In 1995 as the Web was exploding, what were the alternatives to Perl for
    CGI's and system admin?
    Tcl? C? and some proprietary products.

    Languages like  Java, Python, Ruby have all arrived, I'd argue, as a
    direct response to perceived inadequacies of Perl 5.
    I'm not sure where to put PHP :-)

    But while they've garnered support/usage, do they have the same range of
    use as the "Swiss Army Chainsaw"?
    And how do they compare on software metrics that matter in production:
    memory footprint, execution speed, robustness.

    Is C++ a better, more useful C? Does it help with
    Programming-in-the-large or Object Oriented programming?
    I don't think so... Nor do Apple. OS/X, from the iPhone to Mac to
    Servers, is written in Objective-C.
    Nor do the bulk of FOSS projects: 'C' is still the lingua franca of the
    Open Source world.

    Perl (5) is like 'C'.
    Many people think it 'could be better' and many have tried to create
    replacements, but its use keeps expanding.
    'C' is *really* hard to beat, it is (quoting PJ Plauger) "wallpaper -
    you expect it everywhere" and has base of trained, competent/experienced
    programmers.
    'C' is not only 'sufficient' for the range of procedural language tasks,
    it is excellent on many levels.
    Like all professional tools, it is 'sharp'. You can hurt yourself badly
    with high-power tools... Or handled well, produce incredible works. It's
    all about the workman, not the tools.

    For me, the overwhelming reason to use P5 is CPAN. This is the
    definitive example of Software ReUse - which should be a cornerstone of
    Software Engineering (and training in it). Somehow people end up wanting
    to Invent the Wheel again themselves... Which doesn't take the
    profession forward in any way. I love the small irony that CPAN is
    actually a reused idea itself - based on CTAN for TeX.

    The very success of CPAN, far eclipsing its progenitor, and that Tcl,
    Python, Ruby etc *don't* have an equivalent illustrates two things about
    the Perl Community:
    - they are collaborative and 'give back' as a matter of course, and
    - they are Software professionals who's interest is producing products
    for others, and just amusing themselves or in the thrall of N.I.H.

    It's what you do that counts, not say... "Ideas are Cheap", as was the
    mantra at Xerox PARC.

    Whichever of the Anonymous Monk posted the criticism of "it can't be all
    that hard to write a parser" obviously hasn't tried to write a full
    language. It isn't nearly as simple as a 3-4th year compiler project.
    And all those "University Experts" - if they were really good at new
    languages and compilers, then P5 and 'C' would be a thing of the past.
    Proof by Existence :-)

    Experience counts in programming:
    Computing is a *performance* discipline.

    Like Architecture, Surgery, Music, Art and Flying...
    You need "Heads and Hands" - both knowledge/theory and experience/practice.

    Professional Programming is different again:
    - it is always done by a team: collaboration & co-operation is fundamental
    - it's not a hobby, but paid work, where feeding your Ego isn't the
    prime motivation
    - it's about programming "for the next guy", who may well be yourself
    in 6 months time
    - it's about Programming-in-the-Large
    - it's about delivering "Good Enough", which sometimes is It-just-runs,
    and sometimes absolutely robust.
    - and finally, its about *delivery*. Getting Things Done, not ideation
    or criticism.
      Coulda, Shoulda, Woulda doesn't cut it in the Professional world.
    - there's another thing to do with Professionals and Engineering:
      - Is there ever any excuse for a Professional to repeat, or allow
    repetition of a know Error, Fault or Failure?
      - Engineering is about Safe, Reliable, Effective and Economical
    solutions for others.

    There's a very simple example to show the level of Professional Software
    Engineering embodied in Perl:
    cpan install.

    Firstly, the source code, in 'C', is available if needed. and its
    Version controlled, not lost like 40% of pre-Y2K source.
    There's a well known, robust and simple process to get & install new
    modules in an absolutely repeatable and predictable manner - with
    over-rides when needed, not a constrained straight-jacket.
    The stuff you're downloading has been testing on multiple platforms. It
    comes quite trustworthy.
    Everything that installs comes with its own set of *tests*.

    And if it doesn't work for you, there are debuggers and more for your
    programming pleasure :-)

    Perl doesn't pay lip-service to good Software Engineering practices - it
    just does them...
    That's part of its success. It builds on strong professional
    disciplines, and embeds them in its process.

    The other part is that it leverages itself and work that's gone before.
    It's more than CPAN and software re-use...

    Finally, "Computing/I.T. is a Cognitive Amplifier".
    It does for cognitive functions what machines do for muscles.

    Alan Kay, inventor of Objects (in Smalltalk), is well know for saying
    "Point of View is worth 80 IQ points".
    Or, give ordinary people the right tools, and they can beat geniuses.

    Perl has always performed this "cognitive amplifier" task.
    That's worth more than Kay's 80 IQ points.
    It turns a single Perl coder into a large team with best-in-the-world
    solutions for many problems.

    How would I have reacted to the Anonymous Monk?
    - Show me what you've done that you think you have the knowledge, skill
    and experience to criticise.
    - If you have a point, do some work and commit some changes. Don't
    waste my time and yours with hot air.

    And what might Perl 6 achieve?
    Coming from the 'pens' of highly competent & experienced folk, who've
    already done this before, it's gotta be close to definitive solution to
    the problem field it chooses to answer.

    If P6 arrives with an IDE and good, integrated tool-chain, it should
    scale to Programming-in-the-Large and 'real' programming projects. It
    won't displace C or Objective-C, but will be a 'slam-dunk' solution to
    general software practice.

    But in typical Perl style, I expect the Revolution and Conquering the
    World to be very low-key, even 'stealth mode'.
    It'll probably pass with a whisper and people may ask, "isn't it obvious
    to do this?".
    Or not :-)

    Many thanks for your years of hard work and contribution at a level I
    could only wish for.

    (From a former colleague of mine)