Hacker News new | ask | show | jobs
by dragonwriter 4230 days ago
> 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.

1 comments

Natural language's main purpose is human-to-human communication.

Programming language's main purpose is not.

This is a weird semantic argument, but I think you understand the parent's point.

> 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.