Sorry for bringing up an old thread, but it's better than starting a new one on the same subject(and besides, it was near the top anyway, since someone voted on the poll).

Ok... Here is the start of Adam's arguments... πŸ˜‰

  1. programming language
    n. An artificial language used to write instructions that can be translated into machine language and then executed by a computer.

According to this, a list of requirements:

  1. Must be a language.
  2. Must be able to write instructions to the computer.
  3. The computer must be able to interpret these instructions and execute them.

Now, let us see how HTML fits in:

  1. HTML is a language.
  2. HTML gives the computer instructions on where and how to render elements on the screen.
  3. The computer takes the HTML and places each element in it's rightful place.

Now, if HTML is not a programming language and JavaScript is, then tell me the difference between these two lines. What makes the second programming and the first not?

1.
<a href="http://www.yahoo.com">Yahoo!</a>

2.
<a href="http://www.yahoo.com" onclick="document.location=\"http://www.yahoo.com\"; return false;" >Yahoo!</a>

How is it possible that two lines that function exactly the same in the rendering program(ie, the browser) are separated by the "programming/not programming language" barrier?

Also, a programming language is only what the interpreter makes it. I could create a new browser that uses PHP as the HTML, basically, by your logic, making PHP not a programming language.

Here's what I'm getting at:

In the above link example, the exact same thing is done with both JavaScript and HTML, therefore, in this use, they must both be either a programming language or not a programming language. I say that they are(I mean, good grief, one of them uses objects πŸ˜‰), and if someone states otherwise, please give your reasons for disagreeing.

Some food for thought, at least. πŸ˜‰

    <Off Topic>Adam, are you in any way shape or form related to Ryan Brill?</Off Topic>

      Where is Turing completeness? You've done nothing to convince me that that is not a requirement of a programming language.

      And with a loose enough interpretation of words like "instructions", "interpret" and "execute", as I've alluded to, ASCII could claim to be a programming language.

      If you state otherwise, please give your reasons for disagreeing πŸ™‚

        Originally posted by piersk
        <Off Topic>Adam, are you in any way shape or form related to Ryan Brill?</Off Topic>

        Yes sir, he's my brother. πŸ™‚

        Originally posted by Weedpacket
        Where is Turing completeness? You've done nothing to convince me that that is not a requirement of a programming language.

        And with a loose enough interpretation of words like "instructions", "interpret" and "execute", as I've alluded to, ASCII could claim to be a programming language.

        If you state otherwise, please give your reasons for disagreeing

        I agree that HTML is not Turing complete, but who said that a programming language needs to be?

        From http://c2.com/cgi/wiki?TuringComplete
        A problem is said to be Turing-complete if it can only be solved by a Turing machine or any system that is TuringEquivalent. Often programming languages that are TuringEquivalent are said to be TuringComplete.

        So, in your opinion, a language must be TuringEquivalent before it is a "programming language"? From that link, there would be some programming language's that are TuringEquivalent and some programming language's that are not Turing Equivalent.

        Bottom line: Why does a programming language need to be TuringEquivalent, and where do you get that from?

          Originally posted by AdamBrill
          I agree that HTML is not Turing complete, but who said that a programming language needs to be?So, in your opinion, a language must be TuringEquivalent before it is a "programming language"? From that link, there would be some programming language's that are TuringEquivalent and some programming language's that are not Turing Equivalent.

          Bottom line: Why does a programming language need to be TuringEquivalent, and where do you get that from?

          Here's a brief review of his feeling on the subject, as he posted some time ago:

          originally posted by Weedpacket
          I'm sorry, but if it ain't Turing-universal, I just don't feel it qualifies as a "programming" language.

          I should rephrase that better: a requirement of a programming language is that it be Turing Universal. PHP is a programming language, as are Javascript and PostScript. Haskell and Emacs LISP are programming languages, and so is POV-Ray's scene description language. Brainf*ck is a programming language and so is the OISC's instruction set.

          A linguistic (semantic?) definition of "programming language" has been almost as difficult to come by as a BSD-licensed compiler for C#, ADA, Java, etc., etc.

          If you think that's not true, take a look at
          this....

          Now, in order to attempt to tame this disparity of terminology, some computer scientists, indeed many computer scientists, have decided that (to quote one of them) "the Turing experience in language design is relevant" to this issue.

          It hasn't yet caught on with the lexicographers, who are scrambling to catch up with the hyperquick development of language in a world-wide environment, nor the general public, which doesn't care to think about such things, nor even many in the computing community who haven't the background of the computer scientists; but I'd be careful "laying down a glove" on this issue, because there is a body of opinion, backed by logic, that says this is valid....

            So the bottom line is that there are Turing complete programming languages and there are non-Turing complete programming languages. Whether or not Turing complete is a requirement is yet to be decided.

            Sound about right? πŸ™‚

            Now all we need is a formal definition of "programming language"... πŸ˜ƒ

            I would actually prefer that Turing complete is a requirement, but I do feel that HTML fits in with the definition that I provided(which is from dictionary.com, by the way).

              if HTML was a programming language, why is it called a markup language? now you can say that markup languages are a subset of programming languages, but think about your definition: the HTML is in no way ever converted to machine code (i.e so "the computer can execute it"). a browser program takes the HTML and outputs formatted text, images, etc. this is not at all like PHP, which even though it never really gets converted straight to machine code, it still is executed by essentially a virtual processor (for lack of a better term). so i think your definition contradicts your claim that HTML is a programming language.

              PS: that in no way means there arent any 'markup language'-derived languages that are programming languages; take XSL as an example. it has conditions and math, and there are examples in this thread of it's turing completeness (i think).

                Originally posted by AdamBrill
                So the bottom line is that there are Turing complete programming languages and there are non-Turing complete programming languages. Whether or not Turing complete is a requirement is yet to be decided.

                Sound about right? πŸ™‚

                Yeah, if you don't care to believe in much of anything. If I want to know the law, I read what the lawyers have written; if I want to know what happens when I die, I read the Bible; if I want to know about quantum mechanics I read books by physicists; if I want to know the names of the characters in a movie, I read the credits. Basically, I read what's been written by those who know.

                What we have here is a situation in which authorities in a field have declared "programming languages are Turing equivalent", and nobody else knows what they're talking about, so they argue about it anyway.

                Now all we need is a formal definition of "programming language"... πŸ˜ƒ

                Yup. Too bad they're not gonna ask me nor you when they write their dictionaries. Actually, it's really too bad that they won't ask any Comp Sci experts [of which am I not one, and maybe not you either? dunno :eek:].

                Hmm, the "Merriam-Weedpacket" dictionary. Nope, nice idea, but not the same ring to it IMHO... πŸ˜ƒ

                Hmm, y'know, one difficulty in this discussion is simply the term "programming." In Europe, for example, your calendar or your course schedule is a "programme" ... so it's real easy to say that anything "laid out in order" is a program ....

                  Originally posted by AdamBrill
                  Bottom line: Why does a programming language need to be TuringEquivalent, and where do you get that from?

                  Well, the main thing I expect from a programming language is that I expect to be able to write programs in it. I want it to be able to output Hello World and the lyrics to n Green Bottles (once I/O has been established). I want it to be able to add two numbers together, and make change for $20 if I spend $0.37. I expect it to be able to find a knight's tour on an 8x8 chessboard, and I want it to be able to play Life and simulate a Turing machine (both of which are Turing complete). More exactly, I want to be able to write programs in the language to do those things. Turing Completeness is (in my opinion, if you insist on calling it that) part of the definition of a programming language; a formal system that is Turing complete.

                  There are a whole hierarchy of languages: from finite-state machines (i.e., regular expressions without backreferences) through push-down automata (i.e. context-free grammars), and culminating in Turing completeness. (In the late 1920s-early 1930s several independent attempts at defining "computation" were proposed; Turing's machines, Church's Lambda Calculus, and Herbrand-GΓΆdel formal systems, to name three. It was soon discovered that those three (for example) were equivalent to each other in power, and were also capable of emulating the less powerful models as well (John McCarthy invented LISP to investigate the Lambda Calculus as a model of computability)).

                  When it comes to this hierarchy, HTML doesn't even rate. I feel free to show leeway when discussion finite state machines, pushdown machines etc. and the rest by using the word "program" in relation to them; partly because it's often hard to determine Turing completeness for an arbitrary system (I saw some doubts about XSLT being Turing Complete), but HTML takes no input, describes no operations, and specifies no output any more than the present post does. I can't play Life in HTML; I can't simulate any other machine in it - not even a lowly finite-state machine (unless the machine consists of precisely one state and precisely zero transitions); I can't make change for a twenty; and I can't add two numbers together. I can't write programs in it.

                    3 months later

                    Could someone point me in the direction of a programming language that isn't Turing-complete? Coz I'm fascinated...

                    Oh, and if HTML is a programming language, then so is the markup of Word, RTF, a bitmap, a gif...

                      I'd be reluctant to call it a programming language (for reasons it would be redundant to iterate), but if you consider SQL a programming language then that's one.

                        Originally posted by Weedpacket
                        if you consider SQL a programming language then that's one.

                        SQL has conditions (if..else), loops*, variables..

                        • Sort of.

                          Originally posted by onion2k
                          * Sort of.

                          But not good enough....

                          [edit]Unless you're using a dialect that supports recursive common table expressions [edit](which is now standard SQL[/edit]; then it is Turing-Complete (up to, of course, implementation environment limits)[/edit]

                            IT teachers rarely have any enthusiasm for thier work and also are usually f*!king t055ers. Ive only been through high-school but my high-school teachers were very nieve and didnt know anything about IT except how to use MS word and restart a network and this year im going to collage to do a BTEC in software development I was talking to the collage IT head dude and he said, well you will be learning to program in java blah blah blah so I said, if I wanted could I do a project in PHP for my final assesment and do you know what he said?!?!! I quote:

                            PHP is a very simple language and therefore there is only so far you can push the barriers of creativity with it, I would highly disregard it and put it down to another dead language which nobody uses.

                            WTF.

                            Jack.

                            P.S Sorry that was a bit of rant, yes?

                              You may want to punch him in the chest. If it hurts your hand and chimes, then my suspicion is right, and he's a robot. If not, well, he deserved it.

                                PHP is the opensource equivalent of VB. Fact.

                                Technically noone should use it. Its a huge great hack. It was never designed to be a proper language, just a thing thrown together to make a few pages. But... Its so damn flexible and nice to use everyone ignores its faults and carries on regardless.

                                  I can understand your lecturers point. PHP is not a great first language. C or Java would give you a broader understanding of programming in general.

                                  As for being a dead language, PHP is definitely not.

                                  I've just noticed that you say you want to do your final project in PHP. Well PHP has the ability to import Java objects just as if they were native PHP objects...which means you can have a 'high power' compiled back end with a flexible, fast interpreted front-end...cool huh πŸ™‚

                                    Most definatly, when it comes ill go kick my IT teachers ar$e with a powerfull, yet flexible php/java programmed website πŸ˜ƒ

                                    Jack.

                                      Probabaly been said already but HTML isn't a programming language because it lacks logic and control statements. Its a markup language... like forum code πŸ˜›

                                        yup it has been many times.. maybe in future read the thread a little before posting πŸ˜ƒ

                                        Anyways welcome to the board. :p