← Back to context

Comment by UweSchmidt

4 years ago

Professionals in every domain like to maintain a certain level of difficulty to keep amateurs out. The tools of a trade can never be too easy, the tax code can never be simplified, legal writing and procedure has to be opaque etc. as professionals subconsciously reject job security threating ideas.

This sabotage is subtle: A wide variety of technical decisions can be made at any time, with complex trade-offs, bounded by what the majority of developers is willing and able to handle. As we move our servers to the cloud to make our lives easier and get admins fired, the exact right level of complexity shows up in AWS and Azure to enable stable and well-paid cloud expert jobs. For that difficulty-goldilocks-zone, Visual Basic was too easy, and things like functional programming are too hard.

This is nonsense. The tax code is complex to close loopholes that smart money-motivated people find in it. Similarly, programs are complex because they solve complex problems. Of course you can write very simple programs, but they simply don't solve the complex problems. None of this is about gatekeeping anyone, all of this is about what value we actually provide.

  • There are some complex problems out there, but the vast majority of requirements are rather trivial, no? Heavy websites that don't do much, but with enough javascript to harm usability seem to be an issue HN readers agree on. Opening a car glove box is another simple problem that now has complex solutions (https://www.youtube.com/watch?v=lRB0gbYO3fE). Isn't it weird how those things come about? It can't possibly be incompetence, nor would it be outright evil.

    I suspect it's a subconscious process where we like to build a framework that appeals to us, where we get to be 'senior' and shape the world the way it is convenient for us. The antidote is a clear commitment to simplicity, to meditate over Picasso's Bull and apply that to our work.

> Professionals in every domain like to maintain a certain level of difficulty to keep amateurs out.

Not all of us. I fervently wish that implementing the various platform-specific accessibility APIs, and the corresponding tricks for canvas-based GUIs in web applications, was easier, so more GUIs would be accessible. I wish I wasn't one of maybe a few hundred people in the world who had substantial experience with the UI Automation API on Windows, for instance. I'm working on an open-source project to try to package up that specialized knowledge in a reusable implementation. But it takes work to make inherently complicated things easier.