Slash Boxes
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

use Perl Log In

Log In

[ Create a new account ]

chromatic (983)

  (email not shown publicly)

Blog Information [] Profile for chr0matic []

Journal of chromatic (983)

Saturday February 10, 2007
05:58 PM

The Wrong to Criticize Programming Languages

[ #32369 ]

Almost four years after What I Hate About Your Programming Language, people still think talking about syntax issues is meaningful. (To be fair, it is, but only when talking about Haskell, which looks like a dog ate a Welsh Calculus book and vomited out a program. Here's a nickel kid, go buy yourself some VOWELS!)

Today's howlers come from The right to criticize programming languages:

(Pro-Python) Now I don't really fancy the way whitespace sensitivity is implemented, as they had to get rid of blocks for it, but the idea is brilliant, and I'd love to see other languages use it.


There was never a language as portable as Java. I can take any Java program, put it on any machine, from a mobile phone up, and it will Just Work. Ever tried that with C?

Ever tried that with Java?

(Pro-PHP) In languages that don't follow Perl's braindead string-number unification, there's really little reason for keeping arrays and hashes conceptually separate. They're both just keyed containers, so why do we need two ?

Sometimes order matters.

The best part of Haskell is syntax.

Haskell's syntax is the diet cola of programming. Sure, it tastes bad, but at least it doesn't have any sugar.

C can access a really huge number of libraries. It takes a lot of work to get them work well together (every non-trivial C library of them defines own string type, own pseudo-oo system, many even include own memory manager), they're not portable, they're not secure, and they tend to segfault at random, but the sheer number of available libraries is about as high as Perl's.

They're unusable, but they're available! Hooray!

But C++ has potential of being "better C".

It combines the wonderful type system of C (ahem, PDP-11 assembly) with the intuitive clarity of Lisp macros (templates). Winner!

I feel like I'm missing the joke.

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
More | Login | Reply
Loading... please wait.
  • Hashes are ordered by insertion order in PHP and arrays are ordered by ascending index. Oh and you can mix numeric and string keys: $ar = array(); $ar[] = 'Element zero'; $ar['monkey'] = 'Hash element'; $ar[0] = 'Element nought'; It's all thoroughly objectionable.
    • Can you explain the rules for traversal order of a mixed array in PHP? I can't.

      • If you use each( $ar ) you get the elements of a mixed array back in the order in which they were added:

        $ cat arse.php
                $ar = array();

                $ar[0] = '0';
                $ar['two'] = 'two';
                $ar[2] = '2';
                $ar[1] = '1';
                $ar['one'] = 'one';

                while ( list($n, $v) = each( $ar ) ) {
  • I feel like I’m missing the joke.

    He states it right at the start: he says he believes that you have to be able to compliment a language before you are eligible for criticising it. Not wanting to be be barred from criticising, he compiled a long list of token compliments of languages.

    And that’s exactly how they read to me: a laundry list of things that beginner’s tutorials for each language would point out as “cool points” of the respective language.

    Only two of his compl

    • While it may, in theory, be possible to do Unicode right in perl, enough people have serious problems with it for me to believe that the implementation is far from "right".

      Of course, the fact that perl got it so very very wrong a few versions ago doesn't help either.

      • I don’t think there’s any easy way to get Unicode right. No implementation can shield you from knowing about charsets and encodings.

        There are lots of easy ways to get Unicode wrong though.

  • Wonderful entry. I'm thinking about starting a new sigfile, just for the Haskell comment!

    Although I don't know _Lisp_ macros, those in Scheme are pretty awesome, IMO :)
    Ordinary morality is for ordinary people. -- Aleister Crowley