in reply to Re: Re: don't { use Perl }
in thread don't { use Perl }

Still, the only reason I write higher level computer languages is to communicate with a computer. I communicate with humans in English, or Dutch if I have to. And I need to terminate all statements in C with a semi-colon, for no other purpose of satisfying the compiler.

Not because humans suddenly fail to understand. Just the compiler, and the compiler ain't no human.

Abigail

Replies are listed 'Best First'.
Re: Re: don't { use Perl }
by Anonymous Monk on Jun 10, 2002 at 17:37 UTC
    Still, the only reason I write higher level computer languages is to communicate with a computer.

    We write computer programs to control a machine through a sequence of states. We use higher level programming languages to do so because we can more readily and more reliably express and specify such sequences of states. We are the audience of our higher level programming languages.

      we can more readily and more reliably express and specify such sequences of states

      That's what I said upteem replies ago. We are the speakers. But the computer (by means of a compiler or interpreter) is the audience. It's not the main form of communication between people. If you don't believe, come to YAPC and visit some talks. You'll notice that the main language used by the speakers to communicate with the audience is English and not a computer language - Perl will only be used by the speakers to show the audience what to say to the computer.

      Abigail

        We are the speakers. But the computer (by means of a compiler or interpreter) is the audience.

        I humbly but strongly disagree. You are the audience of your own Perl or C code even while you write it. That is why you choose to to specify the sequence of states you ultimately intend in a language more akin to your own higher level concepts (or at least a highly restricted and rule bound subset of such higher level concepts). The machine is not the audience of your C code. 'gcc' is not the audience of your C code. You, and potentially other humans, are the audience as well as the speaker. As high level as C or Perl is compared to machine code, it is vastly low level compared to English. It is no surprise that we choose to limit our use of C or Perl to specifying particular state sequences and choose higher level languages such as English to communicate in general.

      While at the lowest level we definitely need to "control a machine through a sequence of states", at the higher level we often use langauages that allow us to abstract out of any states. Think about Prolog, functional languages, SQL ... there we do not specify what states to go through. We merely specify some relations or properties of the results and leave the "conversion" to sequence of states/commands to someone else.

        Jenda