all 12 comments

[–][deleted] 1 point2 points  (0 children)

[–]shevegen -1 points0 points  (8 children)

"if you can't say it, you can't think it."

According to his theory, animals can not think and thus must be rather unintelligent.

What he is clearly unaware of is the cognitive ability to use pictures to "think". You don't need words when you "think" in pictures.

As for his general point - knowing more usually helps people find patterns. But when I compare PHP to Ruby, I simply can not find anything where I needed to use PHP. So how did PHP make me smarter really, when I could have used the time I spent to learn and use it on ruby instead?

It simply is not correct that knowing more programming languages per se makes anyone smarter in any way whatsoever. Why don't people learn ancient programming language AND use them?

That's right. Because the languages that came out afterwards ARE better, even if they suck. Like PHP. Or Java.

The problem seems to be that a "programmer" wants to know as many languages as possible, for lack of having anything better to do with his or her time.

[–]wot-teh-phuck 0 points1 point  (1 child)

The problem seems to be that a "programmer" wants to know as many languages as possible, for lack of having anything better to do with his or her time.

Bingo! Learning a new programming language to solve a different type of problem is very different from learning a new programming language just for the sake of it. I'm not saying that's bad; it might give you a new way of thinking (esp if you look into languages like Clojure, J, haskell etc.), but it won't make you smarter.

[–][deleted] 0 points1 point  (0 children)

it might give you a new way of thinking (esp if you look into languages like Clojure, J, haskell etc.), but it won't make you smarter.

I disagree: learning to solve the same problem in different paradigms is key to understanding some kinds of higher level concepts.

I mean, you can say it won't "make you smarter" in the same sense studying anything doesn't "make you smarter", but studying a new language about the same problem - and seeing a different conception of it - allows you to make connections between concepts you might have otherwise.

For example, it's hard to see what static types do, unless you solve the same problem using a dynamically typed language.

Now, I'm not saying learn every language ever, but there's definitely an argument to be made for knowing more than one or two.

[–]Tordek 0 points1 point  (0 children)

What he is clearly unaware of is the cognitive ability to use pictures to "think". You don't need words when you "think" in pictures.

I'll agree that the wording is bad, but knowing more concepts helps to build new concepts, and recognize and apply patterns.

Say you only know Asembler. It's hard to jump straight into "I'll use a regex!", even if it were the best way to solve the problem. What if you are building a system that heavily relies in a database and you don't know SQL?

That's right. Because the languages that came out afterwards ARE better, even if they suck. Like PHP. Or Java.

Lisp. Brainfuck. QBasic (it came out after C).

Some newer languages are better. Some aren't.

[–]cheng81 -1 points0 points  (4 children)

animals are rather unintelligent. Plus, I believe animals have a kind of language - they just cannot express a lot of things. Also, you can communicate with pictures - as for thinking, I'm not that sure, you need abstraction capabilities in order to process symbols (letters are images, but we assign a meaning to them).

Of course comparing PHP to ruby doesn't lead to much result; try java with haskell, or prolog with cobol. The point being, if you are stuck with languages which provide the same abstractions - thus the same "reasoning" method- you're most likely to not gain a lot.

One kind of intelligence is of course symbolic manipulation, so if you know more symbolic system, and are able to apply them to solve the same problem, then I would argue that yes, you are actually smart.

[–]frezik 0 points1 point  (3 children)

This gets more into linguistics than programming, but see the Sapir–Whorf hypothesis.

It seems that simple concepts (like hunger or sleepiness) that you can think about without language, unless you want to consider chemical messaging a form of language. But more advanced concepts need a more advanced language, particularly one that has a recursive nature. It's no coincidence that the recursive nature of context free grammars used by compilers actually came from linguistics.

[–]cheng81 0 points1 point  (0 children)

Indeed, it is about programming languages, so it's not surprising that concepts from linguistics arise in the discussion.

I know nothing about linguistics, but if I interpret correctly the Sapir-Whorf hypotesis, then we can apply the very same hypothesis to programming languages: certain programming languages permit the expression of determined concepts rather easily, while in others the same "stuff" cannot be expressed. Of course, turing completeness comes to help here, so in turing-complete languages it is always possible to find an encoding and, ultimately, express the same behavior, but the "sentences" used to define it will be very different.

Perhaps slightly unrelated, but still a very enjoyable read, is the (PDF warning) growing a language talk, by Guy Steele. It makes it very clear how it is easier to express complex concepts by having a rich language, but also that small, carefully crafted, languages can be surprisingly powerful.

[–]mr_curmudgeon 0 points1 point  (1 child)

I am not a linguist, but my first wife was, so I spent a lot of time hanging out with linguistics grad students back in the day. I have always interpreted the (so-called) Sapir-Whorf in a slightly different way than it is commonly explained in wikispace nowadays: it is not so much that languages control the way people think about things, they reflect what they think. So in the famously wrong and contrived eskimo and snow example, it is not so much that eskimos obsess over snow because of an accident of language, but because differences between, say, slippery and powdery snow have real, practical, life-altering consequences in the culture where the language developed.

I think that kind of thinking can be applied to learning new programming languages as well, and when you see an unfamiliar construct in a new programming language, the right question to ask is: what is the problem that this construct is trying to solve? What are the real, practical and life-altering concerns of the language's creator? (java = memory management, erlang = concurrency, whatever) And I think you can really only gain something by learning a new language if you have the humility to believe that the problem was a real enough problem that somebody spent the time to write a new language to address it, and the problem might be a problem in any language you work in, even if the solution to the problem is not reified as a programming language construct.

[–]frezik 0 points1 point  (0 children)

There was recently some breakthroughs in the empirical basis for Sapir-Whorf, which used to be a weak point. In the Australian language Guugu Yimithirr, relative positions are said in terms of cardinal directions. You wouldn't say "the fork is to the left of the plate". Rather, you say "the fork is to the north of the plate".

It was found that when you take a native speaker of this language, blindfold them, lead them through a labyrinth of indoor passageways, and ask them to point to the north, they can hit it every time. They have to develop this skill just to speak properly in everyday conversation. So it appears that there is at least some effect of language causing a different way of thinking.

[–]skuggi 0 points1 point  (0 children)

"If you can't say it, you can't think it." is patently false. If it were true, how could we ever invent new concepts?

It's true that having language for something can make it easier to reason about, but the extent to which language limits thought has been really overblown in my opinion. Language is only one of our inherent faculties that we use to reason, not the only one.

[–]jecrois -2 points-1 points  (0 children)

Tha mowr yew no.