Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Spoken language affects thought as programming languages affect algorithms? (jakevoytko.com)
17 points by mtoledo on June 16, 2008 | hide | past | favorite | 23 comments


Definitely true for natural languages. English is very pragmatic and "dry" to my ear, perfect for engineering.

But I feel like all mainstream programming languages aren't truly "languages", they're mostly dialects of X, where "X" is a fusion of Lisp and C, i.e. same old ideas repackaged in different syntactic packaging.

This is why I am always skeptical about dramatic increases in productivity due to a language switch. Good editor and decent chair produce similar boosts: noticeable? Sometimes. Dramatic? No.

In my opinion two most important characteristics of programming languages are recruiting and maintainability. The former is important because certain languages attract better quality engineers and some are impossible to find experts for. Maintainability speaks for itself: the code should be easy to transform indefinitely, beat into shape, keep improving upon, etc.


But I feel like all mainstream programming languages aren't truly "languages", they're mostly dialects of X, where "X" is a fusion of Lisp and C, i.e. same old ideas repackaged in different syntactic packaging.

How are "normal" languages not the same old ideas repackaged in different syntactic packaging? I'd say "dog" and "hond" aren't different ideas even though one is in English and the other in Dutch. They're just the same old ideas repackaged in different syntactic packages. Isn't that practically the definition of a language? Some things that take me a sentence to say in English can are only a few phonemes in Japanese, but does that mean Japanese isn't a real language because it's the same idea in a different syntax? I'd say syntactic difference is possibly the defining characteristic of a language.

Perhaps this is simply indicative that the term "language" is innapropriate to apply to a programming grammar.



This text, especially arguments against, bases on the strong distinction between programming languages' syntax and semantics. Let me come up quickly with two examples of fuziness between syntax and semantics of programming languages, how the syntax affected the semantics.

While the semantics frequently does not vary within a given paradigm, sometimes a different syntax gives you completely different point of view. For instance, Polish notation, also known as prefix notation, makes it easy to come up with s-expressions, what turns out to change the way we think about programming.

Also, programming languages' syntax can work as reward&punishment tools. A hash is slighty the same hash in all programming languages. Neverthless, dynamic languages made it so easy to manipulate on them that in many ways they've dominated the programs written in those languages.

It is also important to remember that a language is not an abstract contruct. It has its uses, existing design patterns, good practices, as well as existing libraries. "Meaning just is use". Even if you can say nearly everything in all languages, sometimes it is harder to say one thing in another.

(as a boring guy I must say that I feel sorry that such indirectly thought provoking post got only 7 points, lossing popularity with the Vista problem)


I'm surprised nobody has quoted Alan Kay yet:

"And a lot of, I think, our confusion with objects is the problem that in our Western culture, we have a language that has very hard nouns and verbs in it. So our process words stink. So it's much easier for us when we think of an object–I have apologized profusely over the last 20 years for making up the term "object-oriented", because as soon as it started to be misapplied, I realized that I should've used a much more process-oriented term for it. Now, the Japanese have an interesting word, which is called "ma", which spelled in English is M-A, "ma". And "ma" is the stuff in between what we call objects. It's the stuff we don't see, because we're focused on the noun-ness of things, rather than the process-ness of things, whereas Japanese has a more process/feel-oriented way of looking at how things relate to each other. You can always tell that by looking at the size of a word it takes to express something that is important. So "ma" is very short. We have to use words like "interstitial", or worse, to approximate what the Japanese are talking about."


A language's common vocabulary ("dog", "bicicleta", "Handschuh") probably has little effect on thought in a language. Idioms have great influence on expression, however. They are crystallizations of the culture that has shaped a language, and are often difficult to translate without this implicit context.

For example, the Swedish word Lagom. Or, in programming, Common Lisp macros, monads in Haskell, the act of defining a word in Forth, etc. (It's easier for me to list idioms in a language other than English, because I'm immersed in English most of the time.)

While trying to implement algorithm X in a language without garbage collection (for example) is possible, the expression may become so burdened by otherwise superfluous detail that the original meaning is obscured like a "needle in a haystack".


Do you think the word "lagom" characterizes Sweden? It has just now occured to me that words that are hardest to translate often seem to characterize the culture of origin as a whole.


That the language has a concise placeholder for such a value means that it's probably culturally significant. I don't know how much it characterizes Swedish culture as a whole, but making it as easy to consider such a thing as, say, "truth" or "freedom" in English would probably influence discussions about e.g. sustainability.

Another is that English doesn't have an immediate distinction between free-no-cost and free-unrestricted, such as "libre" vs. "gratis" in Spanish. This has led to some ambiguity in Open Source discussions, so the phrase "Free-as-in-beer" gets used a lot now.


I think one flaw here, that certainly applies to programming languages is the equation of concision and fitness. There are a lot of things that I would tend to factor in -- for me expressiveness would be chief.

As a native English speaker that spends most of his time speaking German, there certainly is an element of precision that permeates both German culture and language. I've wondered at times if the link is more than coincidence.


I also have this experience. I am a native English speaker who learned German quite young. I still think certain things in German, especially things that I learned either in German, or during that period of my life.

As noted, "ja, genau" still echoes in my mind for total agreement. There just doesn't seem as good an English equivalent!


why doesnt "Yes", exactly!" do?


It does. The same way "understand" does for grok.


genau


I think that after a certain age, humans (I first wrote, users...) can't pick up new languages as well as their first language. There is some physical process that occurs in the brain. I am sure our native language affects our thought processes, but I believe it is a moot point whether some language is "faster" than our native tongue, we couldn't switch those hard wired neurons if we wanted to.


Great article. Yes, I do believe the language you think in and speak affects the way your thought progresses.

I had an interesting discussion following this article at work and a colleague of mine who is a non-native speaker of English told me that when he thinks programming/ engineering English seems to work quicker in thought progression compared to his native east Indian language.


”The boundaries of my language are the boundaries of my world”, as Ludwig Wittgenstein said.


Causation probably runs the other way.


probably both ways, and probably in a far more complex fashion than we currently understand


Pinker in "The Language Instinct" persuasively (at least for me) argues that the Sapir-Whorf hypothesis, at least as far as human languages are concerned, is _false_.


He argues it well for fundamental things, but I think it falls short because he doesn't touch on abstract notions, like 'personal freedom', 'federalism', or 'separation of church and state'. There's a line that can be re-drawn between what is "language" and are "ideas", and the Sapir-Whorf hypothesis holds depending on where you draw that line.

A lot of our thought is based on frameworks of metaphors, the vast majority of which are learned, not discovered on our own.


Pinker seems to be on the other end of the academic spectrum from the SWH. For those who don't know linguistics, Chomsky was the driving force in modern linguistics. Last week I stumbled across this video, the first 15 minutes or so of such are a pretty good, easy to grasp intro to his ideas on universal grammar and the language faculty:

http://www.youtube.com/watch?v=rnLWSC5p1XE


I am a native German speaker.

While trying to translate an article I wrote in English to German, I noticed that many things did translate very poorly unless I significantly differed in style. This is especially prominent in scientific papers. In English, you would focus on short, easy to understand sentences. In scientific German, it is absolutely necessary to write very difficult, convoluted sentences to avoid ambiguity. This made the text significantly longer -- and harder to read. However, the texts conveyed more detailed information and were overall more precise.

My personal theory is, that the German language enforces logic and grammar more rigidly than English, which makes it sort of more like a programming language. Therefore, the complexity of a sentence is directly tied to the complexity of its content. In english, I feel that it is more easy to simplify things (deliberately!), which makes it easier to understand. On the other hand, German behaves similar to programming languages: The more compact German is written (without losing information), the less readable it will get -- try Kant for example. Hence, the primary reason for German text being longer than English text is often that it is written in rather simple (long) style. You could write it more concisely, but you would lose ease of reading that way, which is inappropriate for museums, of course. (Or you would lose information, but germans are somewhat disinclined to do that: one THIRD of the worldwide tax laws are German, only because we don't like to lose precision...)

By the way, that is why I prefer to buy English books for learning something, as they are easier to read, while I prefer German books as reference, as they tend to be more precise.

For the matter at hand however, I think that the spoken language is sort of the "operating system" of the mind. It can only think within the boundaries of the language and only the cleverest of minds can really expand their thoughts beyond that limit -- by using the language in new ways. Most major philosopher did that (i.e. Kant, Schopenhauer, Freud etc.). Example from Kant: "Handle so, dass die Maxime deines Handelns jederzeit als allgemeingültiges Gesetz gelten könne." (Act in such a way, that the "Maxime" of your actions may be applicable as universal law at all times. Where "Maxime" is a new word meaning sort of the "gist" or "idea" of an action) This is not normal German: It is something new, more concise and more precise than normal German. It feels a lot like a sentence in a programming language. It would take significantly more words to express the same content in normal language without losing precision.

So by learning English, I learned to express things in a more understandable way. By learning C, I discovered quite many "syntactic" inaccuracies in normal spoken sentences. Matlab thought me to think in vectors. Why should Swedish be different? Or Lisp? Or Whatever?


I don't believe language to be the operating system of the individual mind but it definitely helps a society establish and maintain cultural values.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: