6 ms·
> This, however, I disagree with. I mean in a general sense, not specific to how your brain is wired. It all depends on the first couple of language that one le
by wsc981 5y ago
> This, however, I disagree with. I mean in a general sense, not specific to how your brain is wired. It all depends on the first couple of language that one learns and how they are learnt and taught. 10-15 years ago people would find it hard to grok Python's functional concepts. But as it began to be taught as the first language in universities and those graduates join the working population you see how it's super natural for them to grok Python.
That must be the reason why Edsger W Dijksta once stated [0]:
> "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
... and ...
> "The use of COBOL cripples the mind; its teaching should, therefore, be regarded as a criminal offense."
... and ..
> "APL is a mistake, carried through to perfection. It is the language of the future for the programming techniques of the past: it creates a new generation of coding bums."
I must be one of those mentally mutilated programmers with no hope of regeneration :)
---
[0]: https://www.cs.scranton.edu/~mccloske/dijkstra_quotes.html https://www.cs.scranton.edu/~mccloske/dijkstra_quotes.html
- faichai 5y agoMost of the current generation of programmers have been mentally mutilated by Object Orientation in the C++/Java/C# style. I include myself. It has been a definite struggle to onboard functional concepts and solve problems in a functional style. Just doesn’t come naturally.
- rualca 5y ago> Most of the current generation of programmers have been mentally mutilated by Object Orientation in the C++/Java/C# style. Why do you feel the need to denigrate people who are experienced in imperative and/or object-oriented paradigms? If there is any paradigm that holds its own value, why not praise the value it adds instead of resorting to nothing but ad hominems? I mean, if something was so unequivocally better then wouldn't this perhaps resulted in a massive adoption rate, and name-calling wouldn't pop up so frequently? But no, the popular thing to do is to just denigrate those who haven't jumped into that particular bandwagon.
- yakubin 5y ago> if something was so unequivocally better then wouldn't this perhaps resulted in a massive adoption rate That's not what we see happen in life. Just look at how dearly we hold on to coal plants. My country's energy is 90+% coal-based and there is an insurmountable opposition to atom, and great suspicion against solar (government recently started financially deterring against mounting solar panels).
- rualca 5y ago> That's not what we see happen in life. Just look at how dearly we hold on to coal plants. What a non-sequitur. Adopting a programming paradigm in the code that we write on a daily basis has rigorously zero to do with the infrastructure cost of switching energy sources. This non sequitur about coal plants is even more absurd and ridiculous once we factor out the fact that the world is already moving away from coal to renewable energy sources, which is quite costly and resistant to change and subjected to an awful lot of special interest groups, and yet during that timeframe people still chose not to bother with functional programming fundamentalisms. If an idea is good then it holds its own against alternatives. Even in their pet projects people tend to not even bother with pure FP frameworks. While hundreds of millions of euros are being spent on wind farms, people like you and me don't even bother spending a few minutes to get a hello world going with Haskell, even though it's effortless and trivial. Why'd you think that's happenin?
- valenterry 5y agoHe's right though. Yeah, over a long time it will certainly happen that a good idea will manifest itself. But that process can take a long time, centuries even. Let's not forget that there are commercial interests for keeping certain languages down and pushing languages up. There are huge companies like Google, Facebook, ... pushing for languages (and frameworks). It's often easier to stick to something existing because change requires effort. And I think that's why coal was mentioned - it's easier to stick to it than to switch to something else, so it will take time but eventually it will happen.
- ncmncm 5y agoIf people are mentally mutilated, it is by having been led to believe there is something useful called "Object-oriented", or "Data-oriented", or "Functional", or what-have-you-oriented programming. Carpenters don't learn "hammer-oriented" building, or "saw-oriented", "screwdriver-oriented", "chisel-oriented", or "glue-oriented". They learn to use hammers, saws, screwdrivers, chisels, and glue, and use them all at different times, sometimes one more than others. Machinists don't learn "lathe-oriented", "drill-oriented", "mold-oriented", or "welding-oriented" fabrication. They do all or any of them strictly according to what they are making, and what they are making it out of. "This-" and "that-oriented" is a entirely a sales method used to package up coursework and seminars. It is as utterly stupid to design a whole language around one of them as it would be for a carpenter to try to run a screwdrivering business. A language is useful exactly to the degree that it enables building whatever you might be called upon to build. That is not to say any generally useful language is equally good for any purpose. Wood is better for some products, metal for others. A metal violin would be weird, a wooden gun action would be stupid. But violins often have metal bits and guns often have wood stocks.
- KronisLV 5y agoI think that some of the quotes are pretty toxic, regardless of who they are by. Programming languages are just tools and as such, they should be reasonably easy to use. Programming languages should serve people, not the other way around. Elitism and gatekeeping do precisely nothing to help people solve problems with code.
- sieabahlpark 5y ago> Programming languages should serve people, not the other way around. It's common to feel this way if you've never thought of computation as a field of theory instead of just using brew to install your compiler and being happy it works.
- rualca 5y ago> I think that some of the quotes are pretty toxic, regardless of who they are by. They are indeed, aren't they? I mean, they straight up sound like bullying those who happen to not think alike or share the same opinion. Those who are in the right are able to form rational arguments, raise concerns about specific problems, and offer solutions. But no, not in this case. The only reason for anyone to not be a diehard supporters of the author's point of view is that they have mutilated minds and are coding bums.
- wsc981 5y ago> Those who are in the right are able to form rational arguments, raise concerns about specific problems, and offer solutions. But no, not in this case. The only reason for anyone to not be a diehard supporters of the author's point of view is that they have mutilated minds and are coding bums. Don't we take things a bit too serious these days? I've started programming with BASIC and I find the quotes kinda funny - I don't take it too serious and I am not sure if Dijkstra was being dead serious here either. For example: would anyone really think Dijkstra was in favour of locking COBOL teachers behind bars?
- rualca 5y ago> Don't we take things a bit too serious these days? I agree that this self righteous fake outrage targeted at those who point out bullying and abuse gets a bit too tiring, and adds nothing to the discussion. This is a very good example. Calling out the lack of rational arguments or any reasoning regarding a technical subject, and resorting to abuse to fill the void with ad hominem and bullying, is expected to be addressed with explanations on the technical merits of the original proposals. But no, here we are wasting time with chatter that boils down to "why aren't you ok with being subjected to abuse? Don't we need to roll over and shut up when someone throws ad hominems?" I guess we don't? But it seems that some people whine when they can't take what they are dishing out.
- holoduke 5y agoDijkstra. A smart man. But also an arrogant prick. The typical professor living in his own bubble who never dealt with businesses and commercial activities. Those statements are totally nonsense.
- willtim 5y agoWhen BASIC e.g. redefined what "variables" are and what the equals operator means, it did cause a generation of programmers to drift away from the long established mathematical definitions. This persists to this day in languages like Python. I have had to explain to my daughter that Python variables and equals are not like those in her maths lessons. Dijkstra was right to call out the bad decisions that were made, although I do concede his methods of doing so were not ideal.
- tralarpa 5y agoFORTRAN is seven years older than BASIC and uses the equal sign and variables in the same way. Here an excerpt from the 1957 paper by Backus et al.: "Evaluate the expression on the right of the = sign and make this the value of the variable on the left."
- willtim 5y agoGood point, but IIRC Dijkstra didn't like Fortran either. ALGOL (1958) used ":=" for assignment, as did Pascal some years later.
- brokenkebab 5y agoHis statements make a lot of sense: the first language learned often has a profound effect on programming habits. That's why proverbs like "one can program in COBOL in any language" appeared.
- deepsun 5y ago> Programming languages are just tools and as such, they should be reasonably easy to use. I'd like to argue on how reasonably simple is simple enough. If I need a carpenter to build a stairs I'm my house, I would expect a good carpenter to know and use all the tools appropriate, no matter how complex. Of course, most things are doable with just a hatchet just fine, but I d expect a professional to choose a hatchet because it's better, not because they never bothered to learn proper tools. So whenever a language puts "easy to learn" as their main feature, I see it as a guide "how to build stairs with just a hatchet".
- datatrashfire 5y agoAh yes, my brain has been permanently mutilated preventing me from reaching the one and only programmer nirvana found in functional programming. Give me a break.