5 ms·
I disagree. Wikipedia's definition [1] is what I had in mind for language: > Language is a structured system of communication that consists of grammar and voc
by jraph 2y ago
I disagree.
Wikipedia's definition [1] is what I had in mind for language:
> Language is a structured system of communication that consists of grammar and vocabulary
Programming languages are structured, have grammars (often described formally using a grammar definition for some parser generator) and vocabulary (the set of functions and types you can use, possibly modules and package, basically), and they are used to communicate (with the machines, and with fellow developers).
The "file format specification" would be a (subset of) the specification of the language, not the language itself, and yes, a file format specification can describe a language (but I believe we only say this for stuff intended to be read and written by a human - so ZIP would not be a language, but HTML would be).
I do agree that programming languages and human languages are not the same thing, they have different characteristics, traits, use cases, behavior… and that's why this study compares them. And that's also why we need to make the distinction. And they also have common stuff, hence the same word. But even if you disagree that they have a relevant amount of common stuff, polysemy is a thing, so it's still "fine" to call English a language and C a language. Quotes around fine because I'm actually only describing what happens: we do call them both "language", that's a fact.
> I'd argue that biggest part of programming is
It might be, but the paper studies and focuses on programming languages, not the more general practice of programming (which is worth studying, but studies always have a (restricted) scope).
> remember the literate programming movement
Where's the confusion in / what's wrong this? Some think that it's better to narrate in code and we call that literate programming. I don't share the vision, but everything looks clear to me.
[1] https://en.wikipedia.org/wiki/Language https://en.wikipedia.org/wiki/Language
- danybittel 2y agoWho are you "communicating" with? A programmer does not communicate with a computer, through a PL. He or she writes it down, to later be executed or interpreted, so the computer can "communicate" with the user, through the User interface (not the PL). Also, the vocabulary works very different, in a PL almost all of the vocabulary is defined "at hoc", as you go. I mean I don't have a problem calling them a language, people should just be vary not to use language ideas for PL.
- jraph 2y ago> Who are you "communicating" with? I wrote this: "with the machines, and with fellow developers" > A programmer does not communicate with a computer, through a PL I disagree with this. The programmer describes the steps that the computer needs to perform, to the computer. Or the programmer describes the state which the computer should reach. The communication is one way (except, arguably, during debugging sessions), but a communication does not need to be two ways. > He or she writes it down, to later be executed or interpreted, so the computer can "communicate" with the user, through the User interface (not the PL). You seem to set yourself in the end user perspective, but the developer is also a human, and I'm in the developer's perspective here. > people should just be vary not to use language ideas for PL. Agreed, some / many ideas applying to natural languages don't apply to programming languages. But some do. > the vocabulary works very different Absolutely. There are strong differences. (of course, it's fine we don't agree, we are arguing on definitions)
- danybittel 2y agoEven if you consider it communication, that doesn't make it a language. Plenty if communication happens through other means. If we look at the debug session or bash scripting, the closest thing of a two way communication. It doesn't "answer" in code. I see code closer to something like a Floor Plan an architect may use or a CAD drawing from an engineer. Both of them also communicate, but they are not considered languages. They also have a rules (grammer?) and patterns (vocabulary?).
- deleted 2y ago[deleted]
- jraph 2y ago> Even if you consider it communication, that doesn't make it a language In my first comment, I have broken down the definition of language I found and (supposedly) successfully applied each part of it to programming languages (communication being only one of the features). Where is my mistake? Either the definition is wrong, or incomplete, or one of the matches I made is erroneous, or I missed a match. > an architect may use or a CAD drawing from an engineer. Both of them also communicate, but they are not considered languages. They also have a rules (grammer?) and patterns (vocabulary?). Tough one, maybe those drawings are indeed expressed in a language, just that we don't usually see it as a language / think of it like this. That would apply to map symbols as well [1]. edit: Just noticed French Wikipedia [2] actually cites cartography as a language without a syntax, so that would check out: > la cartographie est un exemple de langage non syntaxique ("Cartography is an example of non-syntactical language") French Wikipedia broadly has the same definition for language as English Wikipedia, but makes the grammar part optional. We could argue that the examples you cited are indeed not languages using the English definition because they don't have grammar (if rules you mentions are not grammar - and indeed you would probably not need a pass of syntactical analysis to "parse" a CAD drawing) [1] https://en.wikipedia.org/wiki/Map_symbol https://en.wikipedia.org/wiki/Map_symbol [2] https://fr.wikipedia.org/wiki/Langage https://fr.wikipedia.org/wiki/Langage
- canjobear 2y agoIt’s more than a coincidental resemblance. Programming languages were designed using constructs from linguistics (context-free grammars, parsers) that were originally developed to describe natural languages.