Category talk:Non-Programming Languages

Revision as of 14:57, 6 July 2009 by rosettacode>Kevin Reid (trying to define...)

What does "non-programming language" mean in this context? --Dmitry-kazakov 07:39, 6 July 2009 (UTC)

HTML and XML are computer languages that focus entirely on data. They are not programming languages. (Note that they can embed source code, but that's a side effect.) —Donal Fellows 08:38, 6 July 2009 (UTC)

The primary focus of the developers isn't to produce a programming language. So sed is an editor as are vim and emacs,bc is a calculator, and m4 a macro processor. The fact that they might accomplish RC tasks doesn't mean that they should be considered as programming languages. Shades of grey. --Paddy3118 09:17, 6 July 2009 (UTC)

But the examples of this category are HTML, JSON, SGML, SVG and XML. Their distinguishing feature is that they are not programming languages at all; it happens that they're all data description languages (and yes, can describe or embed programs). —Donal Fellows 09:33, 6 July 2009 (UTC)

In what sense HTML and XML are not programming languages? Computers are programmed. Data is an input or output of a program. I cannot tell what do you mean under "focusing on data". Probably, it is just a confusion with declarative versus imperative approaches to programming. Languages using either declarative or imperative approach are still programming ones. Anyway, so long a language is a computer language it does program that computer. The text in any computer language is called program. So in what sense a computer language can be non-programming? P.S. Note that for HTML/XML, the source code is the text in HTML/XML correspondingly. Just per definition: the source code of a program is a stored text in the language the program was written. --Dmitry-kazakov 09:34, 6 July 2009 (UTC)

They're not programming languages because they don't give instructions. They just describe a particular pattern of data; there's no execution model. (OK, HTML is a bit of a border case if you're wanting to render it, given the blecherous mess that it has grown into.) To argue that XML is a programming language is really strange. It's just a serialization format of a node tree, and is no more a programming language than ASN.1 or S-Expressions are (though Lisp is built on top of the latter). If you're going to use a non-standard definition of “programming”, I'll not bother arguing with you. —Donal Fellows 09:52, 6 July 2009 (UTC)
I still do not see any definition of non-programming. Your reference to instructions only supports my earlier guess that you are confusing imperative with programming and declarative with non-programming. See also list of programming languages. --Dmitry-kazakov 10:30, 6 July 2009 (UTC)
That's not a definitive list because it is automatically collected from whatever people happened to tag. The point about the data languages is that they just define a human-readable serialization format for a data structure. There is no execution model; they just exist. This is utterly different from real declarative languages like Prolog. —Donal Fellows 13:08, 6 July 2009 (UTC)
HTML, JSON, SGML, SVG and XML are not designed to be programming languages. The maintainers do not expect to support you writing a program in them. (except maybe as a small part of their primary focus, and even then, that part usually comes with its own name such as ECMA script). --Paddy3118 13:34, 6 July 2009 (UTC)
Hmm, this requires a definition of program, provided that programming = writing programs. The traditional definition of program is a syntactically correct, complete sentence in the language. This gives no way to determine what is a "programming language". Is object code a programming language? In the above sense it is. "Focus on programming" isn't really better, because it itself requires "programming". Maybe "programming" merely refers to certain human activity named so? I.e. "non-programming" means not good to be used by a decent programmer, or unusable for software engineering? But people are programming Web pages in HTML, don't they? Consider a program generator that spits C++ code. Does this make C++ not a programming language? Among three key aspects of a language: 1) application domain, 2) syntax and semantics, 3) computational environment (the target), which one should classify it as programming or non-programming? Or to put it in other words, is "programming" a property of the language or else a way of its use [by programmers]? --Dmitry-kazakov 14:31, 6 July 2009 (UTC)

I've updated the category page with an attempt to formalize what I meant when I created it.

A non-programming language, for the purposes of this category, is a language which is not suitable for expressing algorithms to be executed by a computer: they do not have execution semantics (e.g. JSON which is “just a data structure”) or those semantics are directed towards a particular purpose and are not Turing-complete or not intended to be (e.g. SVG which outputs images).

Don't take this as absolute; I'm trying to make, not a distinction out of principle, but a practical distinction for purposes of "what kind of tasks, mostly, will this language be good for?"

It might be a better idea to not have this "negative" category and instead have positive ones, e.g. "Programming language", "Document language" (html, svg, latex, ...), "Data format" (json), ...--Kevin Reid 14:57, 6 July 2009 (UTC)

Return to "Non-Programming Languages" page.