I'd disagree with that. I think coding languages are in a very real sense human languages. They have less history, less literature, less culture, and different uses but they have history, literature, culture, and uses just like any language.
Only if you consider computers to be people. Human languages are for communicating with humans. Programming languages are for communicating with computers.
For example, this week I've been hanging out on a couple of open-source project IRC channels. People aren't talking to each other in Python or Java on those channels.
> Programming languages are for communicating with computers.
Machine code of the lowest level that exist for a particular machine is for communicating with computers. All programming languages at higher levels than that exist to improve communication with humans (many of them of other purposes as well, but all of them, relative to machine code, include communicating with humans as one of their motivating purposes for existing.)
> For example, this week I've been hanging out on a couple of open-source project IRC channels. People aren't talking to each other in Python or Java on those channels.
That may be the case for those channels, but there's lots of places -- even outside of the programs designed to executed, where the source code is definitely used for communicating with humans, particularly future developers on the same code base -- where programming languages are used for human communication. I mean, that's the whole reason that HN has a code context in comments.
> Natural language's main purpose is human-to-human communication.
Agreed.
> Programming language's main purpose is not.
For languages other than raw machine code, the main purpose that they exist is human-to-human communication. A constraint that they face is the need to be able to be reducable to machine code to also support human-machine communication, but other than human-to-human communication (including time-shifted one-way communication to the future of the same human that initially created a work), there is no reason for them to exist at all.
> I think you understand the parent's point.
Sure, I understand the point. I'm also explicitly disagreeing with it.
For languages other than raw machine code, the main purpose that they exist is human-to-human communication.
If this were the case, then write-once software would be done in machine code. Instead, the 'constraint' you mention is the main purpose of programming languages.
Your trivial proof is "this thing that is explicitly not part of the language"? The whole point of comments is to say "these next characters are not part of language -foo-, so don't compile/interpret them".
And if you notice, comments are written in a 'traditional' human language, usually English.