It bothers me that I spent so many years learning latin/french/italian when their real world applications are very limited relative to say C/Java/Python which are much more important foreign languages to be learning in school.
It bothers me that I spent so many years learning latin/french/italian when their real world applications are very limited relative to say C/Java/Python which are much more important foreign languages to be learning in school.
I suggest reading some biographies of famous computer scientists to help understand how few of them had a specialized background, and how many of them had a rich, liberal arts education that may or may not have incorporated computer science.
“We want the Demon, you see, to extract from the dance of atoms only information that is genuine, like mathematical theorems, fashion magazines, blueprints, historical chronicles, or a recipe for ion crumpets, or how to clean and iron a suit of asbestos, and poetry too, and scientific advice, and almanacs, and calendars, and secret documents, and everything that ever appeared in any newspaper in the Universe, and telephone books of the future…”
— Stanisław Lem, The Cyberiad
Also, this:
“[…] to making many books there is no end, and too much studying afflicts the flesh.” – Ecclesiastes 12:12
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.
And if you notice, comments are written in a 'traditional' human language, usually English.
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.
Programming language's main purpose is not.
This is a weird semantic argument, but I think you understand the parent's point.
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.
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.
Also, could it be that you're not actually utilizing these languages you've learned properly and you're undervaluing their utility due to that? Imagine you learned C and never touched a computer afterwards. You'd conclude that C is the most useless waste of time to ever exist, and that computer science departments should be torn down and replaced with factories, which actually deliver tangible value.
Of course, that is a hopeless exaggeration, and you wouldn't do that. But there are people out there that will learn python because Codeacadamy is hip right now, and people that will study languages because they have a second language requirement in order to graduate from school.
Now regarding utility of languages in general, you might make the point that any language over 1st grade english doesn't deliver any tangible benefit and should therefore be discontinued...this is dumb, speak carry idea thing, have idea thing or no thing like up goer five or add box with living lights for look speak. (Translation: this is ill advised, since language carries concepts, without which building things such as the Saturn V Rocket or computers would be utterly impossible). As you can see, sometimes complicated language is neccesairy, and in some fields, lack of the right word actually restricts their accessibility.
But why utility at all? Or rather, is the utility provided by the beauty of some languages not enough to warrant their appreciation? Poetry and literature are arts build around the medium of language, and understanding these works outside of their original language is an exercise in loss of meaning.
I certainly understand you sentiment that putting more of our minds into cranking the wheels of industry at ever increasing power is a noble goal, but you also have to ask yourself why those wheels are rolling in the first place.