Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid
 
PerlMonks  

The Perl Crackpot Index

by brian_d_foy (Abbot)
on Jul 26, 2005 at 13:25 UTC ( #478175=perlmeditation: print w/ replies, xml ) Need Help??

Can we quantify Perl crackpots?

I heard about the Crackpot Index on last week's This American Life. John Baez (a mathematical physicist) uses it to rate "potentially revolutionary contributions to physics" such as proofs that special relativity is misguided, and so on. Assign yourself points for each statement that describes your theory. The more points you get, the more loony you are.

For example,

  • 10 points for each claim that quantum mechanics is fundamentally misguided (without good evidence).
  • 10 points for each statement along the lines of "I'm not good at math, but my theory is conceptually right, so all I need is for someone to express it in terms of equations".
  • 10 points for claiming that your work is on the cutting edge of a "paradigm shift".

Some of the more general statements might apply to Perl (or programming, really).

  • 1 point for every statement that is widely agreed on to be false.
  • 10 points for claiming that your work is on the cutting edge of a "paradigm shift".
  • 20 points for naming something after yourself.
  • 40 points for comparing those who argue against your ideas to Nazis, stormtroopers, or brownshirts.

Can we expand the list? I know Perl has had it share of cranks (maybe more than other languages?) and they usually are loony in the same way. Without assigning absolute points (we'd have to rank things against each other and we don't have the whole list yet), what's on Perl's list? Note, a perfectly reasonable project or idea might match a couple points, but that doesn't make it loony. A true loon with match many points at the same time.

  • High points for mentioning code hiding through obfuscation.
  • Medium points for coming up with a new templating system.
  • Lots of points for designing a new CGI parser.
  • Medium points for reorganizing CPAN into an "Enterprise Perl".
  • Low points for using Quantum::Superpositions un-ironically.
  • Low points for mentioning Larry Wall, Damian Conway, or Randal Schwartz
  • Medium points for spelling the name of the language in all caps (PERL) or arguing that it started as an acronym.
  • Low points for arguing "Well, people will never use it like that anyway".
  • Medium points for saying "Design pattern" (heh, I'll get those points).
  • Medium points for creating a new MVC framework (hi Randal!)
  • Medium points for using source filters without being Damian, or using them in production.
  • Very high points for arguing that you don't need strictures or warnings.
  • High points for creating a non-Inline module to make Perl code look like the code from some other language.
  • High points for rewriting a replacement for a core piece of Perl technology.
  • Medium points for being Ingy.
  • Minus medium points for being Ingy (making this the Ingy Paradox).
  • Very high points for forking Perl (you laugh, but people have tried it).
  • Medium points for creating Perl subsets (i.e. you can't use map)
  • Low points for writing a book published by WROX, or has "Dummies" or "Idiot's" in the title.

Okay gentle monks, have at it. I'll compile the list later and we can then assign points to it. Maybe someone can even turn it into a little online quiz.

--
brian d foy <brian@stonehenge.com>

Comment on The Perl Crackpot Index
Re: The Perl Crackpot Index
by tlm (Prior) on Jul 26, 2005 at 13:48 UTC

    I'm thinking of coding an Inline::C Monstrosity to replace CORE::each with a hash iterator object. (It will be magnificent! I just need to figure out where the ON switch for this thing is...) What does that get me? Am I a crackpot yet? (blink-blink)

    Update: Also, to enhance my overall crackpot index, I hereby announce TLM's Dictum: "If you're not a bit of a crackpot, you're not thinking hard enough." Remember, Isaac Newton was heavily into alchemy and astrology! And celibacy!

    the lowliest monk

      Isaac Newton wasn't exactly celibate. He was gay.
        Isaac Newton wasn't exactly celibate. He was gay.

        You can be celibate whatever your sexual orientation.

        And having recently got off an extended Newton reading jag everybody and their dog seems to have a different opinion on his sexual orientation, but the arguments are all made on damn thin evidence and don't convince (whether it be gay, het, bi or furry :-).

        Isaac Newton wasn't exactly celibate. He was gay.

        Celibate people are very frequently (I would even suggest usually) accused of being gay. I mean, if he doesn't run after women, it must be because he's secretly lusting after the men, right? I think the main reason for this is that most people just can't imagine that someone would really prefer to be alone. But believe me, there are those of us who really prefer, strongly prefer, to be alone.

Re: The Perl Crackpot Index
by Solo (Deacon) on Jul 26, 2005 at 14:14 UTC
    What about

    ? --Solo

    --
    You said you wanted to be around when I made a mistake; well, this could be it, sweetheart.
      Medium points for claiming there is a Possible bug in Perl?

      That shouldn't cost points.

      For one thing, there are bugs in various perl releases for various platforms. I know, I've submitted bug reports, and had them fixed. Heck, just read some of the Changelogs, or join the developer lists. Perl is good, but it's never been perfect, and probably never will be.

      Especially, we as a community shouldn't give people any social disincentive to provide bug reports, even if they're false alarms. Usually, the false alarms are raise about obscure or counter-intutive elements of the design of perl; they're exactly what one would expect people to stumble over.

      I'd assign points for claims like this:

      1. High points for "Perl can't be made readable, by any means"
      2. Medium points for "Perl is only a scripting language, not a real language"
      3. High points for "Perl is inherently inferior to language <X>, for every form of programming scenario"
      4. Medium points for "Perl is not a typed language"
      5. Low points for "Perl is not object oriented"
      6. High points for quoting "There's More Than One Way To Do It" in defense of poorly written code
      7. High points for re-implementing, poorly, a basic perl feature that you didn't know was in the language, such as simulating arrays with an "eval $var$index" type construct
      8. Very high points for re-implementing, poorly, a basic language feature that you did know was in the language, but disliked, such as replacing recursion with home-made finite state machine, because recursion is "complicated", but managing a list of tasks is "easy". *cough* *former boss* *cough*
        Err, I think number 4 should read more like...
        4. High points for even mentioning "types" and "perl" in the same sentence.

        Medium points for claiming there is a Possible bug in Perl?
        That shouldn't cost points.

        In the spirit of the original CI:

        Medium points for claiming there is a Possible bug in Perl (without a good test case)

        -derby
Re: The Perl Crackpot Index
by Anonymous Monk on Jul 26, 2005 at 14:15 UTC
    • Medium points for writing a database abstraction layer.
    • Very high points for designing yet another form of pseudo-hashes, clamped hashes or something similar.
    • Medium points for yet another, incompatible with the rest of the world, Class:: module.
    • Low points for suggesting a "community project" on Perlmonks.
    • High points if you don't do anything work on the project you suggest.
    • Medium points for suggesting some random functionality needs to be in the Perl core.
    • Low points for writing lists like these.
    • Low points for each JAPH you've written.
    • Medium points for each JAPH you've posted.
    • High points if you write articles/books about JAPHs.
    • Low points for writing 'Randall'.
    • High points for writing 'PERL'.
    • High points for thinking Perl is about web programming.
    • Medium points for insisting your name is spelled in all lowercase - with a monotyped font.
    • Low points for using map or grep in void context.
    • Low points for parsing HTML with a regex.
    • Low points for checking email addresses with a regex.
    • Medium points for not writing something now "because Perl6 will be here soon".
    • Medium points for each Perl6 RFC6 rejected by Larry.
    • Low points for asking about a Perl IDE.
    • Medium points for promoting whatever you use yourself when someone asks about a Perl IDE.
    • High points for writing a Perl IDE.
    • Very high points for saying you're not a programmer.
Re: The Perl Crackpot Index
by perrin (Chancellor) on Jul 26, 2005 at 15:11 UTC
    I believe there is also a Damian paradox: Class::Contract vs. SelfGOL.

    Can I still get the points for the templating and MVC systems if I never released them on CPAN?

    Also, I suggest:

    • Low points for constantly dissing Java.
    • Medium points for writing your own inheritance system (see "Ingy paradox").
    • High points for trying to parse Perl code (see "source filters").

      Things you do in private and never tell anyone about can't count. It shows that you have the social discretion to realize what you've done is wrong. :)

      you can still get the points if you make everyone at work use your new system, and indocrinate all the interns into your "correct" way of using Perl. If you are just going through a Perl rite of passage or trying out a new idea, then no points for you.

      I hope people don't see this as a competition. :)

      --
      brian d foy <brian@stonehenge.com>
        Oh, I definitely made people at work use it! Thankfully it didn't last that long because Template Toolkit became fast enough.
Re: The Perl Crackpot Index
by Tanktalus (Canon) on Jul 26, 2005 at 15:38 UTC
    Medium points for using source filters without being Damian, or using them in production.

    Personally, I'm not entirely sure what that exception is doing there. ;-)

      Which one? Being the Damian, or using them in production?

      thor

      Feel the white light, the light within
      Be your own disciple, fan the sparks of will
      For all of us waiting, your kingdom will come

Re: The Perl Crackpot Index
by thor (Priest) on Jul 26, 2005 at 15:49 UTC
    Very high points for arguing that you don't need strictures or warnings.
    I do have to disagree with this one. You don't need either. Granted, I use them in every script that I write that's over 5 lines, but to say that they're needed is going a bit far. You can write perfectly maintainable and understandable code without them.

    thor

    Feel the white light, the light within
    Be your own disciple, fan the sparks of will
    For all of us waiting, your kingdom will come

      The question is not whether you can write clean maintainable code without strict or warnings, but whether or not you need to write code without them? I'd say for the majority of people the answer is no (the rest being the cranks and crackpots)

        The question at hand was whether or not strict and warnings were needed. The original bullet point stated another way is "there is no way to write good Perl without using strict and warnings". Since you conceded that it is possible to write good and maintanable Perl without using strict and warnings, the original statement is false. QED.

        thor

        Feel the white light, the light within
        Be your own disciple, fan the sparks of will
        For all of us waiting, your kingdom will come

      I think you've missed the point. No one thing is a symptom in itself. Merely saying you don't need strictures or warnings doesn't mean anything. However, if you look at what Perl loons say, this is one of them. It still has to come along with a lot of the other points, as I said in the initial post.

      --
      brian d foy <brian@stonehenge.com>
Re: The Perl Crackpot Index
by trammell (Priest) on Jul 26, 2005 at 17:22 UTC
    • Medium points for arguing about the difference between for and foreach
Re: The Perl Crackpot Index
by CountZero (Bishop) on Jul 26, 2005 at 19:38 UTC
    High points for claiming that you can parse HTML with a single regex (but not showing it as you are all unbelievers anyway).

    CountZero

    "If you have four groups working on a compiler, you'll get a 4-pass compiler." - Conway's Law

Re: The Perl Crackpot Index
by kutsu (Priest) on Jul 26, 2005 at 19:39 UTC

    Very High points - arguing about which is better Vim or Emacs, or assuming that there are no other editors beside Vim or Emacs.

    High because it's truly a flame war/holy war, Very because it doesn't actually have anything to do with perl.

    "Cogito cogito ergo cogito sum - I think that I think, therefore I think that I am." Ambrose Bierce

Re: The Perl Crackpot Index
by BUU (Prior) on Jul 27, 2005 at 01:12 UTC
Re: The Perl Crackpot Index
by Ovid (Cardinal) on Jul 27, 2005 at 03:16 UTC
    • 20 points for naming something after yourself.
      Check (though the title of The Ovidian Transform was intended as a joke)
    • Low points for mentioning Larry Wall, Damian Conway, or Randal Schwartz
      Check
    • Medium points for saying "Design pattern"
      Check
    • Medium points for using source filters without being Damian, or using them in production.
      Check
    • High points for creating a non-Inline module to make Perl code look like the code from some other language.
      Check
    • Medium points for writing a database abstraction layer.
      Check
    • Medium points for suggesting some random functionality needs to be in the Perl core.
      Check
    • Low points for using map or grep in void context.
      Check
    • Low points for parsing HTML with a regex.
      Check

    You may now feel free to disregard anything else I say (well, many do that anyway, possibly with good reason.)

    Cheers,
    Ovid

    New address of my CGI Course.

Re: The Perl Crackpot Index
by blazar (Canon) on Jul 27, 2005 at 09:00 UTC
    Medium points for being Ingy.
    Just how many for being moronzilla?!?
Re: The Perl Crackpot Index
by DrHyde (Prior) on Jul 27, 2005 at 09:30 UTC
    Low points for using XML when unnecessary - ie, when XML is not forced upon you by some external system.

    Medium points for using SOAP or XMLRPC when unnecessary.

    High points for catching SIGSEGV. Even more points if you have a test case for this signal handler which doesn't use kill :-)

Re: The Perl Crackpot Index
by chas (Priest) on Jul 27, 2005 at 10:41 UTC
    "Low points for writing a book published by WROX, or has "Dummies" or "Idiot's" in the title."
    Any points for liking a WROX book? (I enjoyed "Professional Perl Programming" by Peter Wainwright et all.)
    chas
Re: The Perl Crackpot Index
by zentara (Archbishop) on Jul 27, 2005 at 12:31 UTC
    High points for "2 -finger typing". By the way, my best work is done on Crack and Pot.

    I'm not really a human, but I play one on earth. flash japh
Re: The Perl Crackpot Index
by jonadab (Parson) on Jul 27, 2005 at 12:40 UTC
    Lots of points for designing a new CGI parser.

    Check. I rolled my own CGI system because it was easy and the one most people were advocating (namely, CGI.pm) was horrible.

    Very high points for arguing that you don't need strictures or warnings.

    Need? Warnings come in pretty handy, although I do wish I could selectively shut off certain ones. I only use strictures when I'm writing a module that will get re-used by multiple programs. I certainly don't *need* either of them.

    From Anonymous Monk's list...

    Low points for "Perl is not object oriented"

    How about, "Perl5's OO isn't very good, but Perl6 will fix it"?

    Medium points for writing a database abstraction layer.

    I've done that. It was a very simple one (basically, it had subs for retrieve(), add(), change(), find(), and so forth, all of which dealt with hashrefs. I've since started using Class::DBI instead, mainly because it's more standardized (in the sense that I'm not the only one who uses it), although in a couple of ways my system was better. Among other things, with my handrolled system, you didn't have to change the code if you added a field to a table, except if you wanted to do something with that field, of course. (It didn't do everything Class::DBI does, though; for instance, it didn't even think about cascading deletes. But, I don't need cascading deletes...)

    Medium points for suggesting some random functionality needs to be in the Perl core.

    The functionality provided by DateTime absolutely should be in core.

    # Low points for each JAPH you've written. # Medium points for each JAPH you've posted.

    Lost count long ago.

    Low points for using map or grep in void context.

    I've done that.

    Low points for parsing HTML with a regex.

    At one point I attempted to parse (a subset of) XML with a regex. Well, not fully parse, just enough to determine where to insert a certain element. Does that count? What if I tweaked the regex several times in response to bug reports before I gave it up and ended up using XML::Twig to solve the problem?

    Medium points for not writing something now "because Perl6 will be here soon".

    I've done that. There's a particular functionality that Emacs has, that I'd like to have in Perl, but I am not willing to implement it in Perl5, because the object model just doesn't provide the features I need to make it easy enough to be worth doing. But the Perl6 OO model will make it much easier...

    Medium points for promoting whatever you use yourself when someone asks about a Perl IDE.

    Emacs, of course.

      The functionality provided by DateTime absolutely should be in core.

      Eek, no! The DT stuff needs to keep up with leap second and time zone change announcements, so it needs its own release schedule. We'd have to figure out a way to release data packages separately from what's in the core.

      Of course, in theory, I can see why this should be in the core, just because it's the kind of low-level data type that you want for programming.

      But given how easy CPAN is to use, is it really a big barrier? I think the big problem, as usual, is that there's lots of similar stuff to wade through. Fortunately, DateTime seems to have enough of a following these days that every time there's a datetime programming question, at least one respondent says "use DateTime", so the word is out.

Re: The Perl Crackpot Index
by demerphq (Chancellor) on Jul 28, 2005 at 00:02 UTC

    High points for rewriting a replacement for a core piece of Perl technology.

    Hmm. Am I a crackpot for writing Data::Dump::Streamer?

    ---
    $world=~s/war/peace/g

Re: The Perl Crackpot Index
by jdporter (Canon) on Jul 28, 2005 at 00:27 UTC
    Very good! However, with
    Low points for mentioning Larry Wall, Damian Conway, or Randal Schwartz

    you've missed the point of the original. This should be something like:

    mentioning "Christianson", "Cousins", or "Dominous".

    (I could add "Brian D. Foy", but I don't want to go there... ;-)

    Now, how about:
    • Arguing that Perl is a strongly typed language.
    • Arguing that Perl is a weakly typed language.
    • Claiming that Larry Wall doesn't truly understand Perl.
    • Arguing that Perl doesn't really have closures.
    • Arguing that lexical variables and/or namespaces actually decrease program robustness.
    • Claiming at least partial credit for the GRT.
    • Asserting for oneself the license to be rude to newbies due to one's seniority in the Perl community.
    • Claiming that Perl, being interpreted, is inherently less secure than languages such as Java.
Re: The Perl Crackpot Index
by pbeckingham (Parson) on Jul 29, 2005 at 14:52 UTC

    • High points for automatically using $|=1;
    • Medium points for using a Schwartzian without understanding why
    • Medium points for pointing out that File::Find needs a new interface
    • High points for suggesting ill-informed, inconsistent operator characters for P6
    • Medium points for using Unicode characters in source just because you can
    • High points for use of sub prototypes without knowing what it actually means
    • Very high points for authoring a crappy, poorly-supported module and putting it on CPAN



    pbeckingham - typist, perishable vertebrate.

      Things that are done just because you can ... maybe a source of innovation, probably a good thing in play and music, often unnessecary and irritating in professional programming IMO.

Re: The Perl Crackpot Index
by extremely (Priest) on Aug 05, 2005 at 18:56 UTC
    One of my favorites from years ago that I heard again recently:
    • medium points for insisting on a perl-only gif/png/jpeg image system.
    • high points for announcing you are starting work on one.

    --
    $you = new YOU;
    honk() if $you->love(perl)

Re: The Perl Crackpot Index
by punkish (Priest) on Aug 07, 2005 at 03:18 UTC

    Very, very high points for using Perl (from the perspective of Python users)

    Update:

    >>Medium points for reorganizing CPAN into an "Enterprise Perl".

    Check. Suggested something like that be done

    --

    when small people start casting long shadows, it is time to go to bed

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlmeditation [id://478175]
Approved by Tanalis
Front-paged by ghenry
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others browsing the Monastery: (8)
As of 2014-12-25 13:45 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (160 votes), past polls