

Announcing the Enlightened Perl Iron Man Competition - brunov
http://www.shadowcat.co.uk/blog/matt-s-trout/iron-man/

======
benreesman
I promised to stop trolling so I will choose my words carefully.

Don't ever use Perl for a new project. As someone who has written close to a
hundred thousand lines of the stuff, maintains tens of thousands more written
by others, knows dozens of CPAN modules by heart down to the source, and can't
forget a single paragraph of the Camel or PBP no matter how hard I try: Perl
advocacy is downright immoral. If it weren't for the kind of sentimental,
provincial, outdated technology activism and apologism that this post
represents we'd be vacationing on Mars.

I'll be more than happy to debate the merits of Perl 5 until you and I are
blue in the face, but please don't make me. This conversation is so tired. My
only motivation for posting this comment is to spare others the pain I've been
through.

There are better options. Stop trying to rewrite your language with libraries:
you don't have true syntactic abstraction. It's over, let go with some
dignity.

~~~
chromatic
The first half of your second paragraph is a bald appeal to authority. Your
third paragraph is a coy refusal to support the argument in the second half of
the second paragraph. (I could mention the emotionally charged language in
words such as "immoral", "provincial", "outdated", and "activism" but I'm not
sure if it's more ad hominem or well-poisoning. Besides that, you missed a
fine chance to spit on the word "marketing" with all of your exaggerated
rhetoric.)

The third paragraph is ... well, I don't even know what "true syntactic
abstraction" means in this case, nor why it's so important to you.

All you've said is that you don't like Perl. Good for you, I suppose, but I
expect better from HN comments. Inspecific, unsupported advocacy is, at best,
a distraction.

~~~
benreesman
It bears mentioning that you've created this account for the specific purpose
of writing this comment, perhaps you are the author the blog post in question?

I don't dispute that I make an appeal to authority in the hopes of diffusing a
debate that I've already had and don't care to have again. You would be ill-
advised to premise your argument on the supposition that I'm bluffing,
however, as I am not.

I did not refuse to substantiate my claim, I merely indicated that said claim
has been substantiated in excruciating detail (by myself and others)
elsewhere, ad nauseam. If your legitimate interest is to have access to that
information, and not to take cheap psuedo-textual pot shots at my well-
intentioned comments then I will gladly reprise them for you, at any level of
detail you desire. You've made no such request (as someone interested in
defending Perl, or rather attacking its attackers, you most likely have all of
that information already).

True syntactic abstraction can take multiple forms, but basically it means CL-
style macros. It means the ability to introduce arbitrary language constructs
indistinguishable from built-in ones. Perl advocates claim that Perl 5's
glaring deficiencies are not a problem because there are CPAN libraries that
address them, providing things like try/catch blocks. This (and other similar
band aids for things like object-orientation) are frequently implemented using
Perl's relatively weak support for syntactic abstraction (using subroutine
prototypes, but then again, you already knew that).

I'll be the first to admit that I'm a weak debater and an even weaker writer.
But my intentions in writing that comment were entirely sincere, and I am in
fact capable of backing it up. You on the other hand are attempting to use
your superior dialectic to attack the weakness of my writing, asking questions
you already know the answer to, in the hopes that any passers-by can be
confused into missing the forest for the trees.

It is profoundly ironic that your predictable decision to bring out the old
chestnut (ad-hominem) was in a parenthesis that begins "I could...". It is
even more ironic that you wind up by blasting me as "inspecific, unsupported
advocacy" given that you are coming to the de facto defense of an article
which is a battle cry for just that!

What is going on here?

~~~
chromatic
If true syntactic abstraction is CL-style macros, then almost no language has
true syntactic abstraction. It seems odd for you to single out Perl in that
category -- as you should look at Devel::Declare, which is an improvement over
the core module Filter::Simple, both of which provide syntactic abstraction
for Perl 5. (In particular, MooseX::Declare seems like a very good candidate
to address your criticisms both of Perl's syntactic abstraction and its rather
simplistic default OO model using something other than merely subroutine
prototypes.)

If you're capable of backing up your complaints, please feel free to link to
previous discussions, rather than making everyone go look for them on their
own. A few moments of research on your part would save the rest of the
Internet countless time.

... and no, no matter how much you'd like to invalidate my comments by arguing
that I wrote the post in question, I'm not and have never been Matt S. Trout.

~~~
benreesman
I'm not singling out Perl for lacking syntactic abstraction, I'm pointing out
that a horribly brain-damaged language (sigils dereferencing multiple variable
namespaces? don't even get me started) cannot be saved without it. Modern Perl
practice seems to always involve CPAN modules that attempt to rewrite the
syntax of the language one way or another, frequently with prototypes.

I've commented on HN about this before (admittedly less tactfully than I would
have liked to), you can read some of my previous comments at:

<http://news.ycombinator.com/item?id=157183>
<http://news.ycombinator.com/item?id=157323>

For another (slightly more inflammatory but no less valid) view on the subject
there's the classic:

<http://steve.yegge.googlepages.com/ancient-languages-perl>

I'm not trying to invalidate your argument by insinuating that you are the OP,
merely pointing out that only a coward hides behind a shell account to carry
out an argument founded in trickery and logical fallacy. If you want another
reply from me you will have to show up as yourself, I don't think I'll
exchange niceties with your puppet any more.

~~~
chromatic
I would have thought that Googling "chromatic perl" is easier than throwing
more ad hominem ("coward", "shell", "trickery", "[sock] puppet") implications
around. Shame on you; your linked posts had much more substance to them
(though of course, recommending Python or Ruby over Perl seems disingenuous
after praising Perl for getting lexical scoping and first-class functions
correct).

~~~
benreesman
i know who chromatic is, you'll excuse me for assuming that an account created
in the middle of the night for the obvious purpose of picking a bone with me
(by someone who gives every indication of being a long time HN user) was
merely an homage. if that's actually the chromatic of the 5.8 test suite
talking then i take back my remark about the shell account.

