Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I believe that efforts using trivial examples to show how complexity can be managed via certain abstractions are doomed to fail.

And that's a pity, because it makes abstractions harder to explain in a proper context.

You need an example where the complexity at least rears its ugly head before the abstraction starts to shine.

For many people, especially those not familiar with it at the time of the reading, the simple example using a manage huge complexity abstraction reeks of "complexity for its own sake" or "killing flies with a cannon" or "premature optimization" and it's natural because the example is not showing the strengths of the abstraction, rather its weaknesses.



> I believe that efforts using trivial examples to show how complexity can be managed via certain abstractions are doomed to fail.

I've received 5 emails and about 10 tweets from people saying, "I think I understand monoids better because your tutorial sat at the right level of abstraction and overhead for me to get."

So, I think I succeeded for 15 people. Which I am pretty damn happy about. Because whenever I write one of these I pretty much assume everyone will misread, misunderstand, or ignore 3/4 of my post. It's just my experience.

People who call the monoid abstraction "confusing" and "complexity for its own sake"... I just have to assume these people can't handle the discomfort of learning new concepts anymore and write them off as unreachable. It's not like I owe them anything. Because I'm pretty sure it's actually not confusing at all, it's just a different perspective.

The real irony is that for awhile I was deep in the OO and Ruby culture and said a lot of these same things. You can find them online if you know where to look. So I understand where these people are coming from and know that without their cooperation, I cannot explain anything at all.


FWIW, you can count me in. I've understood monoids better thanks to your article.

My comment was not a jab at your article, but a comment on how hard it is to find the proper abstraction level.

And that I fully understand people who'd say it is making things more complex for its own sake, and I'm not sure it necessarily is because they don't want to learn.




Consider applying for YC's Fall 2026 batch! Applications are open till July 27.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: