I noticed too that the author calls this the "monad fallacy but nothing about the argument is specific to monads. The main claim is just "people just have to work through hard problems, there aren't shorcuts".
Except programming is hard enough that we don't need abstractions that make it harder.
Some people say that they think something is wrong with object-oriented programming, but can any alternative that is so hard to explain be better?
There's a real problem in the way people communicate about programming. Lately I've been thinking of the phenomenon where people code something up in Youtube and quickly get lost in the weeds.
(There was that guy who was going to code up the Infocom Z Machine in Verilog and burn it to an FPGA who worked for seven hours and never got the program counter working.)
I've been thinking about what it takes to make a tutorial video that makes sense, isn't rambling, doesn't apologize for what it does wrong, etc.
I was writing up a manifesto for my side project and quit (writing the manifesto, not the side project) when I found myself explaining the things I was doing wrong. I decided I'd do all those things right and come back to the manifesto when I didn't have to apologize for anything.
> Some people say that they think something is wrong with object-oriented programming, but can any alternative that is so hard to explain be better?
Personally, I think that OOP has the opposite program. Abstractions such as classes, encapsulation, polymorphism etc. are to some extent easier to explain than abstractions such as monads, at least coming from an imperative background. But on the other hand, they’re much more difficult to apply correctly. I know I was greatly confused by how to use these OOP concepts until I looked into Smalltalk, which was the first time I had actually seen these concepts used effectively. By contrast, once you understand them, it is basically impossible to apply monads ‘incorrectly’. (I’m not even sure what that would mean.)
I suppose you could counter that this is just because OOP concepts are often explained poorly. But I’m not convinced that OOP concepts are any less difficult than monads to explain well. At most, I suspect it is easier to give someone the illusion of understanding OOP.
> There was that guy who was going to code up the Infocom Z Machine in Verilog and burn it to an FPGA who worked for seven hours and never got the program counter working.
Potentially interesting project, but I can see myself spending 7 hours planning that before starting, and I absolutely cannot imagine the mindset of anyone watching live coding. Even worse if it's genuinely live and you can't use the youtube lifesaver of 1.5x speed.
Anyone learning programming from Youtube faces the same problem as people learning medicine, politics or history from Youtube, just with less dangerous consequenses.
I noticed too that the author calls this the "monad fallacy but nothing about the argument is specific to monads. The main claim is just "people just have to work through hard problems, there aren't shorcuts".