3 ms·
Valid point. But also look at it this way. An English speaker who has mastered Japanese will have gone from an SVO (subject verb object) language to an SOV lan
by whacked_new 20y ago
Valid point. But also look at it this way.
An English speaker who has mastered Japanese will have gone from an SVO (subject verb object) language to an SOV language (Chinese is not as convenient an example, because it is also SVO). This is a completely different "paradigm of thinking," just for the comparison. Your brain needs to sort the order of concepts before your initiate your utterance. You need to match particles to their respective concepts. For anybody who never learned such a system, it doesn't come easily. But those who have gone to a sufficient level will become more perceptive of the nuances and particulars of "language" as a whole. This knowledge is far less accessible to those who only know one language. A linguist who only speaks one language will not be taken seriously.
Similarly, a competent programmer is likely to be versed in several languages, and likely they will fall into different paradigms. A programmer who only does LISP is likely to not have the same level of knowledge about the computer system than one who knows several languages. After all, you are looking at multiple ways of generating 1s and 0s. As such, knowing LISP certainly cannot imply anything. Of course, the author anticipated this response, and added a loophole in the article, which I consider a bit too wide, hence the criticism.
There are visible reasons why LISP trains your thinking. My post above is pretty poorly written, but the reference to spaghetti code is like the BASIC example you mention. Supposedly, good programming practice discourages spaghetti code, and BASIC was taken as the bad example. But people think in spaghetti code. If you pry open von Neumann's brain, it would probably be uber-spaghetti code. It would probably decompile into something more BASIC-like than LISP-like, but he's insanely smart.
Yes, it's the logic training. But if that was the theme, the article should have addressed it clearly. I just felt like pointing out how the current topic in the blog does a rather weak generalization, which helps more to propagate misconceptions than it does to educate.
- bsaunder 20y agoFirst of all, thanks for the constructive criticism. This is my first blog article, so I'm begining to realize the sensitivity of carefully wording things. With regards to my constraint "(and I mean really program)", I merely wanted to exclude those people who claim to "know about" LISP, or who are not competent in LISP (and I think I have a weaker threshold for competent than you). I guess I tend to disagree with your statement: "Similarly, a competent programmer is likely to be versed in several languages, and likely they will fall into different paradigms." I think "a competent programmer" is a low bar (70 percential?). I don't think it's true that competent programmers are likely to be "competent" in several languages that fall into different paradigms. Also, I feel like LISP's paradigm is so far removed from most others (and with arguably a superset of concepts), that any programmer who is competent in LISP IS likely to be competent is several other languages that span different paradigms. Agreed if there exists one programmer out there who ONLY knows LISP, they lack the complete conceptual understanding I'm asserting. It seems to me that programmers who tend to write spaghetti code and/or over complicate matters will abandon LISP out of fustration before they achieve "competency in LISP". The point of the article was to assert that "competency in LISP" implies much more than "competency in LISP" and that this statement is not true of most other programming languages. Sorry you feel this article propagated misconceptions, I'll try to do better next time.
- whacked_new 20y agoApologies if I came off as too aggressive. I guess you can say that the title -- which at face value made a fairly daring statement -- primed my critical attitude, like many bloggers had to pg's "MS is Dead" article. I may very well have overreacted, so don't take my words too seriously. Clearly you didn't write the article to start flamewars; I could just be an instigator who tries to sound coherent. Great to hear feedback though, and you found a weakness in my argument. My preconceptions of a "competent programmer" are often based on qualities I wish I had :)