Nolan Lawson wrote "Why don’t more developers “use the platform”?." In it, he suggests there's a sort of battle in the JavaScript ecosystem, where some developers use the native browser APIs over custom JavaScript layers.
Historical factors help explain this: developers spent years working around IE6 and inconsistent implementations, creating habits of reaching for libraries. Familiarity compounds the problem, as npm's ecosystem became the default search space, with React developers preferring framework-idiomatic wrappers around raw DOM APIs even when performance demanded lower-level code.
Documentation quality factors in, as well. npm packages often shipped with polished READMEs and examples while platform documentation remained scattered across blogs and Stack Overflow until MDN's consolidation.
However, for many developers, building from scratch is genuinely more enjoyable and educational. Implementing a modal dialog teaches positioning, focus management, and accessibility—knowledge that platform APIs like <dialog> simply hand you. This tinkering produces the "IKEA effect," where developers prefer maintaining their own creations, and historically drove the polyfill authors who eventually became standards contributors.
Lawson continues: the pattern transcends web development. A ClickHouse anecdote illustrates the same trap: building custom compression and key-value storage when the columnar database already handled both better. Senior engineers recognize this - their ability to replace baroque implementations with single-line platform solutions comes from deep system knowledge.
AI coding introduces competing futures: optimistically, LLMs' encyclopedic platform knowledge could guide developers toward idiomatic solutions while eliminating the IKEA effect; pessimistically, models may generate duplicative, over-engineered code that developers commit without adequate testing. Both outcomes appear in practice, with the ultimate direction still uncertain.
It's a fascinating read, with a lot of relevance (and counterexamples!) in the JVM world: Joda-time was the bolt-on solution for date and time until it ended up becoming JSR 310 and integrated into the JDK itself; EJB was "the platform" but Spring replaced it for most users, resulting in the EJB specification changing. And then there's logging: the JDK has platform-level logging features, but SLF4J and other such frameworks are still far more common than java.util.logging.
It's worth thinking about. Maybe it's not a thought that moves the world, but it's fascinating to shine light in corners that otherwise might remain dim.
Comments (0)
No comments yet.
Log in to comment