Patrefans
Dan Luu from patreon
Dan Luu patreon

Why do so many great engineers hold Alan Kay in contempt?

🕑 Added 2021-08-02 13:01:04 +0000 UTC

Comments

I dislike Alan Kay for completely different reasons, it's good to know his obnoxiousness is transdisciplinary

Oh, that's really interesting! His comments on languages don't really stick in my memory since I don't know enough about languages to really have a sense of what they mean. I'd wondered if he was one of those folks who has what's sometimes called "physicists disease", where they think their deep expertise in one area means they can waltz into other areas and make significant contributions without really understanding the other areas, but it sounds like something else is going on. Although I didn't mean to do this as a theme, it turns out I'm doing critiques of these "if only people would realize you should build systems simply folks" and have covered Brooks and the original UNIX folks as well. In that same vein (though still not consciously intended to be part of a theme), I've been thinking about writing about Chuck Moore, whose real "secret" is that he's able to fund all of his uselessly simple chips because he owns a patent on superscalar execution and sued Intel with it and made a ton of money off of that. I think the more constructive point that seems harder to make is that, when I look at systems I think of as well designed (e.g., pelikan cache), someone who really understands the area will appreciate the design and will see how, in each place pelikan is different from memcached or redis, it's different in a way that will prevent a serious incident, reduce operational burden, or make it easier to maintain and modify. This is the kind of thing you can really only see if you've spent a lot of time digging into what causes incidents and operational overhead when operating cache at scale. Someone who sits at a remove from the real world and talks about how things should be designed can say things that sound compelling to other people who also aren't operating in the real world, but things look really different if you have to actually engage with all of the sharp edges the world presents you with. One thing I've been thinking about writing is a blog post (or perhaps a series of blog posts) discussing issues we've had with caches (design flaws that have caused incidents, structural issues in code that have caused what could've been a small change to take months, design flaws that are repeated source of operational burden, design flaws that result in high opex & capex, etc.) and then relate those to the design of actually existing caches, including pelikan, memcached, and redis. The intent of this would be to do the opposite of what all of these galaxy brain thought leaders do and, instead, discuss concrete issues and how they generalize in a way that one could take away and use when designing other systems. I think talking about one kind of system is too narrow to really seriously teach generalizable lessons, but I've been talking to Jamie Brandon about this and I think he can write something analogous about another one or two areas and might be able to do as well, perhaps comparing Kafka to the now defunct but better designed Twitter eventbus (better designed in terms of robustness under load and scalability), or various hardware designs.

Fwiw I have similar feelings about his public statements around languages. Lots of not understanding what problems people are even faced with much less how they're being solved. He just likes (and is evidently rewarded for) saying "contrarian genius who sees the secret simplicity" sounding things. A lot of old Unix folks have the same tendency, and I'm sympathetic to the argument that a lot of things are over complicated, but saying "in the past we knew better" is just a failure to engage with the present (and the trajectory that got us here) entirely.


More Creators