Hacker News new | ask | show | jobs
by mdakin 6912 days ago
If you read my replies carefully you will realize that we are likely in agreement on many points and that you are putting words into my mouth.

As for the Sapir-Whorf argument the relevant case is not what the Lisp programmer thinks while programming C++ but what the only-C++ programmer thinks while programming C++. Are there thoughts he is not capable of thinking because he has not been exposed to Lisp (or any other non-C++ language)? I do not believe this is the case. How would Lisp have been invented if only Lisp programmers are capable of thinking at that level of abstraction?

1 comments

Sorry if I gave that impression. I realise some of the things I said in my latest reply may come across as trying to refute arguments which you of course didn't make. My intention was to go deeper into what you said about the tradeoffs involved. I admit my arguing for high level languages was a bit out of place in that context; I guess I got carried away by the tone in the rest of the thread. In particular, in my last paragraph I didn't mean to imply that you were proposing C++ as a pragmatic solution, esp. for startups. So please accept my apologies.

With the Lisper-coding-C++ example I was trying to convey that even if you could think such thoughts, it wouldn't help you much for practical purposes unless you can express them in a convenient way. So, even if we discard the Sapir-Whorf argument in the literal sense, for practical purposes you may just as well pretend it's applicable.

That said, I find different languages do shape how you think about programming.

The people that invented Lisp were mathematicians, which of course were used to thinking at a pretty high level of abstraction. It's not strictly impossible to come upon the same ideas on your own, just as it's not strictly impossible to come upon ideas that are not expressible in your natural language, even if you accept Sapir-Whorf. After all, somebody had to invent the words of natural languages too.

But there is a huge leap between learning a concept(+) and inventing it. Natural languages evolved over thousands (millions?) of years; modern mathematics took a couple thousand years to discover. Yet most children learn their native languages effortlessly, and a high school kid learns centuries worth of mathematical advances in a few years.

So yes, you could think of the thoughts that higher level programming languages afford without having ever been exposed to those languages, but that would be an exercise of lucidity comparable to finding a bunch of significant new mathematical theorems, or to inventing new words for concepts that can't be readily expressed in English, without having learned about those concepts in French or Japanese before.

(+) edit: idea->concept

I completely agree about learning rather than reinventing.

And I think learning different languages in particular is valuable because it helps to intimately introduce one to various useful concepts.

But in general the most valuable of those concepts are both simple and language independent. Typically you can map such concepts used in one domain onto another domain and leverage them there as well.

I don't see the "languages" as being as important or as absolutely dominant over thought as the Sapir-Whorf style arguments imply. Plus I don't believe the arguments in an absolute, philosophical sense. And I've seen the argument made too many times in a way that tends to insult some of our fellow programmers for no good reason.

Anyway, I think we're probably in agreement about a lot of things but perhaps the Internet is getting in the way of our communication. Interesting talk, take care and good luck!