6 ms·
The reason why Blub programmers have such a hard time picking up more powerful languages.
- inklesspen 19y agoProve it. Sapir-Whorf is fun for sci-fi, but there's no evidence for anything but the most loose variations of it. No, the reason Blub programmers have a hard time picking up more powerful languages is that they have invested time in their skillsets, so even if they were to program in Lisp syntax, they'd still write Blub-in-Lisp code, not using macros, closures, functional programming, etc. Because they never learned about them and don't see the point. The same thing comes up all the time in Python communities; people who don't know Python very well write "un-Pythonic" code that doesn't take advantage of the language's best built-in functionality like list comprehensions and generator expressions. Compare: # unpythonic way of squaring each element in a list source_list = [1, 2, 3, 4, 5] dest_list = [] for x in range(len(source_list)): dest_list.append(source_list[x]*source_list[x]) # Pythonic way [x*x for x in [1, 2, 3, 4, 5]]
- pius 19y agoSo, your argument is that they have a hard time because they've invested time in other things?
- inklesspen 19y agoSorta. PG got it spot on in his article on Blub. The Blub programmer doesn't see Lisp as being more powerful than Blub, he sees it as being equally powerful, only with too many parentheses and maybe some extra features. But he doesn't need those extra features, he's a skilled Blub programmer, and once he learns the Lisp equivalents of his favorite Blub function calls (etc.) he'll happily carry on writing Blub code in Lisp syntax. And that's only if you force him to use Lisp, because he still thinks there's too many parentheses, and anyway Lisp doesn't have an XML-driven build engine like Blub does.
- cstejerean 19y agoWell, I think there is more to it that having invested time in inferior languages. Programming well in higher order languages requires a different kind of thinking from writing simple procedural code and using UML and "design patterns" as crutches. I would argue that Python is easier to learn than either C++ or Java, but much harder to master because mastering Python requires one to think differently. The same is true of Lisp, Erlang or Haskell. Sadly I think most people are not taught how to think, but rather how to perform repetitive tasks based on some formula (works great for writing Java). Another problem I think is that most Blub programmers don't program because they love programming and therefore are not willing to put in the time and effort to learn a different way of thinking. Personally I believe programming is an art and as such it requires talent as well as dedication. I'm disappointed that after all this years everyone still thinks programming is some form of science. Software engineering? WTF?
- lisporama 19y agoAs one learning lisp and working through SICP... I've got to say that this is practically like learning to program all over again. I'd almost go so far as to say that it's like learning to program. Period. Regardless of the years of experience in those other languages.... I did love programming, though... even though I was so Blubby. As long as I wasn't pushing the limits of the languages, I wouldn't think to look anywhere else. I didn't quite imagine that real Computer Science (like SICP) could benefit me-- given how atrocious so many programmers I'd met that had even Master's Degrees were.... Now I feel like I've wasted years and years of time. (Why didn't anyone tell me? Ah... but would I have paid attention if they tried?)
- mynameishere 19y ago# unpythonic way of squaring each element in a list ... # Pythonic way ... # Correct way (...in any language, and if I see anything else in my co-workers code, you damn well better believe there will be a re-write): List dest_list = squareEachElementInList(source_list); The problem with languages like Lisp, Haskell, Erlang, etc, is that the syntax is completely atrocious. It's not just a matter of parenthesis or whatever. It's a matter of eye-straining horribleness. People have little trouble learning and using Javascript, for the simple reason that its syntax is reasonable.
- paulgb 19y agoI find LISP syntax to be quite easy on the eyes, personally. Of course, since whitespace is unimportant in LISP, it is easy to write unreadable, non-indented code, but it is also easy not to. Javascript might be easy to learn, but generally people don't do very complex things in Javascript. Actually, if you ignore the syntax, Javascript is closer in some ways to LISP than it is to C/C++/Java.
- michaelneale 19y agoI heard it described as the "soul of lisp in the body of java" ;)
- inklesspen 19y agoNo, actually, that's not correct. Why should I have to write a function to traverse a list, square each element, and recombine them into a list, when Python already takes care of the first and third parts for me? Code smart, man.
- mynameishere 19y agoWhy should I have to write a function A function hides the implementation. to traverse a list Because there are different ways to traverse a list. An arraylist is easier to traverse with respect to CPU cycles and memory usage (typically) than a linked list. What does python use internally? I don't know, and I'd just as soon decide that myself... square each element While there are only so many ways to square numbers, for more complicated things, you are doing to want to change implementations while keeping it all hidden. In java, you are occasionally going to want to splice in native code. recombine them into a list I may not want to recombine them in a list, but square them in place. A function makes that trivial, and further makes it trivial to decide when and how to do that. --> The real reason is one of readability. More english, less brackets and commas please.
- michaelneale 19y agoI was listening to a podcast (I think) where someone who had recently studied linguistics was saying that Sapir-Whorf has been almost discredited in academic communities for some time, yet it lives on as a "myth" for people outside of the academic communities. I just can't find any reference of this. This is pretty common thing, ideas from a long time ago tend to stay in the publics collective memory as still being current. The one that springs to mind is the "breathing" you see pregnant-in-labour women doing in hollywood movies (yet this technique was thrown out decades ago as having no effect at all). Yet it lives on in circles of people who aren't experts and repeat it amongst themselves as if they are. A quick search didn't yield anything like this for Sapir-Whorf though.
- michaelneale 19y agohttp://www.amazon.com/exec/obidos/ISBN=0060976519/portlandpatternrA/ http://www.amazon.com/exec/obidos/ISBN=0060976519/portlandpa... - has a little info on it.
- pius 19y agoI'd be very interested to see some references discrediting it.
- michaelneale 19y agoA few books on amazon have criticism of it, that is all I have seen. But no "mythbusters" episode ;)
- michael_nielsen 19y agoSteven Pinker's wonderful book "The Language Instinct" claims the the Sapir-Whorf hypothesis is bunk. It's not the strongest part of the book, but still well worth reading. As a taste, Pinker tracks the evolution of the myth that the eskimos have more words for snow than English-speakers. He explains how this myth was manufactured by anthropologists who wanted to give credibility to Sapir-Whorf, and eventually took on the status of a "fact", appearing in textbooks and so on.
- rms 19y agohttp://en.wikipedia.org/wiki/Pirah%C3%A3_people http://en.wikipedia.org/wiki/Pirah%C3%A3_people
- rms 19y agohttp://news.ycombinator.com/item?id=61237 http://news.ycombinator.com/item?id=61237
- bootload 19y ago"Blub programmers" are referenced in "Beating the averages" ~ http://www.paulgraham.com/avg.html http://www.paulgraham.com/avg.html and describes the "Blub paradox". "... As long as our hypothetical Blub programmer is looking down the power continuum, he knows he's looking down. Languages less powerful than Blub are obviously less powerful, because they're missing some feature he's used to. But when our hypothetical Blub programmer looks in the other direction, up the power continuum, he doesn't realize he's looking up. What he sees are merely weird languages. He probably considers them about equivalent in power to Blub, but with all this other hairy stuff thrown in as well. Blub is good enough for him, because he thinks in Blub ..." Raganwarld has a good explanation of the "Blub paradox" ~ http://weblog.raganwald.com/2006/10/are-we-blub-programmers.html http://weblog.raganwald.com/2006/10/are-we-blub-programmers....