Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling
 
PerlMonks  

Re: Re: Re: Re: Re: don't { use Perl }

by Anonymous Monk
on Jun 10, 2002 at 16:26 UTC ( [id://173212]=note: print w/replies, xml ) Need Help??


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

Not at all. Just because my program is translated into a machine language to run does not mean the machine is the only listener, nor even the primary listener, nor even a listener at all in any reasonable application of the word. The listeners of programming languages are humans. To think otherwise is to fail to understand why we would bother to create higher languages above the machine level in the first place.

Replies are listed 'Best First'.
Re: don't { use Perl }
by Abigail-II (Bishop) on Jun 10, 2002 at 16:38 UTC
    The speakers of high level programming languages are humans. But they still have to follow lots of silly rules - because otherwise they aren't understood. Not by their fellow humans, but by machines.

    Abigail

      Higher level programming languages make it easier for humans to write programs, reason about programs, and to communicate with each other about programming. Higher level languages do not do one wit for the machine, which doesn't "understand" the program in the first place. Of course higher level languages are very highly constrained and rule bound, so is the language of mathematics. Nevertheless, both the speakers and the listeners of high level programming languages are humans. Computers aren't necessary in the equation.
        So, when I call 'gcc' it's really a little man inside my laptop that emits the binary?

        Abigail

Re: Re: Re: Re: Re: Re: don't { use Perl }
by ignatz (Vicar) on Jun 10, 2002 at 18:14 UTC
    We are incapable of speaking in the native language of computers to any usable degree. A programming language's purpose is to facilitate speaking to machines. When another programmer looks at it, he as looking at it as another speaker of the language, but not as its target. It is a one way language, since its purpose is entirely to manipulate machines. The fact that the relationship between speaker and listener, where each truly does not understand the language of the other, makes spoken language theory useless.
    ()-()
     \"/
      `                                                     
    
      When another programmer looks at it, he as looking at it as another speaker of the language, but not as its target.

      Oh please. Have you never debugged your own or another's code? Have you ever stepped through the code, simulating the machine's behavior either mentally or on paper? Of course you have, at the level of the higher level code (not at the level of the machine language I would expect). How else could you write an algorithm in Perl without being able to mentally simulate how the code gets executed? How is that not both speaker and audience of the high level code? You can only be a meaningful speaker of a language that you are also capable of being a meaningful listener of.

        The speaker/listener construct that you are trying to force upon us bring into this discussion just doesn't fit with what is happening when someone programs a computer. The fact that Pascal and French are both called "languages" is a flaw in how we label things and shouldn't force us to treat them as one and the same theoretically. The mental/symantic hoops that we are jumping through to debate this makes my point.
        ()-()
         \"/
          `                                                     
        
      A programming language's purpose is to facilitate speaking to machines.

      A programming language's purpose is not to "facilitate speaking to machines" as you state. I can speak to machines much easier in English, and often do even if some the words I speak may not be found in most English dictionaries :-P The purpose of a programming language is to facilitate writing instructions that control a machine, the machine is never a "listener" in any sensible application of the word. Why do we construct higher level programming languages? So that we can express those instructions in higher level terms and expressions that make more sense to *us*. We are the audience.

        Great, I've reduced you to lame-assed semantic arguments. Here, let me missspel some werds so taht yuu can critigue my spelink to. The moment that ANY discussion between ANY two humans about getting computers to do anything is carried on in a programming language is the moment you'll have me sold.
        #!/usr/bin/perl print "This is a dumb argument.\n"; while(1) { print "No it's not!\n"; print "Yes it is!\n"; }
        ()-()
         \"/
          `                                                     
        

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://173212]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others examining the Monastery: (4)
As of 2024-03-29 11:10 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found