Hacker Timesnew | past | comments | ask | show | jobs | submitlogin

In the article it says: "XML essentially is a programming language..." Well, it's a markup language used for content presentation in a compact form (not so compact as in s-expressions, though), so it's not a programming language. XSLT is.


Sure, we all know that, but the trick is what to write for an audience that may have close to no knowledge of how computers work.


"Sure, we all know that, but the trick is what to write for an audience that may have close to no knowledge of how computers work."

Maybe, but such writting also helps ensure that the audience never learns how computers work.


They're reading a brief news story, not an in depth analysis. Presumably they're smart enough to go elsewhere if they want to learn more. I'm not saying to write something incorrect, I'm saying the trick is to write something that's both correct, and comprehensible to the average person.


Sure, but saying XML is a programming language is wrong, however simplified it may seem.


programming language, markup language ... tuh-mey-toh, tuh-mah-toh


Seriously? Are tuh-mey-tohs and tuh-mah-tohs completely different fruits?


Well, to the Von Neumann architecture, data and instructions are all the same. Just a matter of where the Program Counter points to.

Also both XML and XSLT are interpreted. Meaning a real program reads the source and manipulates the system accordingly. I really have no problem treating the two as equivalent.



Depends on your definition of "programming language" as well as "markup language". One could argue that XML isn't anything but a specification of a syntax (Similar to s-expressions). But then "markup language" is an imprecise term (regardless of what the abbreviation stands for). It's a "syntax".

So, if by "markup language" you mean "syntax", then I'll give that they are different categories, but then I would also argue that you're using the wrong word.


Markup language: describes content.

Programming language: performs tasks.

There are languages that fit both (such as Tex, and consequently, Latex), but this does not preclude us from drawing a distinction between the two in clear-cut cases (such as HTML versus C).


> ... drawing a distinction between the two in clear-cut cases (such as HTML versus C).

If anything, declarative languages (or markup languages if you prefer) are a sub-category of programming languages. Imperative languages are another sub-category.


To me, a "programming language" is a language that allows me to express computations. Markup don't need any concept of computation, so I don't consider them programming languages.


Well, it's a markup language used for content presentation

XML is not for presenting information. It is for storing and describing it. Sorry. One of my favourite nitpicks.


XML is definitely not a programming language. It's not turing complete.


I could write programs in XML and write a machine to run them.

<function name="main"><call function="print"><arg>Hello, World</arg></call></function>

XML isn't a programming language in the same way ASCII isn't a programming language -- in the same way CSV isn't a programming language. Not because of turing completeness, but because they are a completely different thing.


Oh, you can program meaningful in less than turing complete languages. See Datalog, or even SQL.


Being Turing complete is a sufficient but not necessary condition to be called a programming language.

The best necessary condition I can come up with for a language to be called a programming language is that it expresses computations.


The DTD is part of the 1.0 spec.

The DTD is just a regular expression, and your document as a string to match. The validator is the interpreter that gives you a yes/no answer for any problem you can represent in those terms.

Actually... hmm. If you look closely at the entity replacement rules, the conditional inclusion entities, and the ability to include external dtd references, you may well be able to get full turing completeness.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: