4 ms·
I've long thought that at least metaphorically, Sapir-Whorf fit computer languages like a glove. This observation is hardly new ("You can write COBOL in any lan
by jfb 16y ago
I've long thought that at least metaphorically, Sapir-Whorf fit computer languages like a glove. This observation is hardly new ("You can write COBOL in any language"), and it's not particularly useful, save as shorthand for describing, say, potential hires; in my experience, most programmers write code as in the language they first really used, regardless of the language they're actually using, and so it's often useful to ask someone with years of Java but some Python (for instance) to write something in Python and note if they've bothered to learn the idiom. Hardly determinative, and of course there are those who are capable of really picking up new computer languages, semantics included, just as there are those with the gift for human languages, but it's just something that I keep an eye on.
- thesz 16y agoActually, you can construct a language where you cannot amke some kind of actions at all. There are languages that express only polynomial time computations, languages that won't allow you to make deadlocks, etc. http://lambda-the-ultimate.org/classic/message5863.html http://lambda-the-ultimate.org/classic/message5863.html http://edwinb.wordpress.com/2008/04/03/correct-by-construction-concurrency/ http://edwinb.wordpress.com/2008/04/03/correct-by-constructi...
- rdtsc 16y ago> most programmers write code as in the language they first really used That is why a lot of people who started with C, Java and Python have difficulty writing Haskell or Erlang -- it is because they cannot easily use the same paradigms as before. They want to, but language syntax won't let them or the code produced is so nasty it becomes obvious that they are doing something wrong. For example, initially I was disgusted with Erlang syntax, but then I realized that the exotic syntax actually helps my brain realize that "something different is going on, you can't just use old patterns and tricks", it works as a major mode switch basically.
- Miky 16y ago> most programmers write code as in the language they first really used, regardless of the language they're actually using I doubt that this is true. I can't quite remember, but I'm pretty sure the first language I ever used was Color Basic. I've forgotten quite a bit of it, and it has pretty much no influence on my programming. The first real programming I did was with structured imperative languages (Game Maker was the first thing I used for anything real). The code I wrote bore almost no resemblance to Color Basic, and while I was using these languages, solutions to problems using the tools of structured imperative programming came to mind much more readily than solutions using the style of unstructured Basic. Later, I learned Haskell and functional programming. For the first while, everything I wrote was like a puzzle. I had to think for a long time to do things the functional way. But after having used it enough, while I'm in Haskell, functional solutions come just as readily as imperative solutions come while I'm in those languages, perhaps even more. Of course, people who are experienced with one language and inexperienced in another will try to apply the idioms from the first language in the second whether they're applicable or not, but programmers do not always write code as in the first language they really used.
- jfb 16y agoI may have not made myself clear; I think it is largely true that programmers start writing COBOL in language x; some rapidly progress, others don't. It's the latter group that are red flags to me — it signals a lack of intellectual curiosity. Again, it's not dispositive or anything; sometimes programmers, particularly younger ones, just haven't seen the strengths of the idiom in their alternate languages.