Discussion about this post

User's avatar
Luigi Antognini's avatar

I could not agree more. The problem is that the software industry’s workforce has shifted from engineers to power users. The engineer is supposed to do what you suggest: provide a solution for a specific problem. What we have in the industry are power users, which do not want to be engineers anymore. You can become the configuration specialist and reject any ambition to be an engineer. The new idea is that we have either power users, or we have people inventing engines for power users.

Not everyone wants to become an engineer, not everyone succeeds in becoming an engineer, but everyone can become a biological configurator. This reflects the industry's tale: engineering skill is not necessary; it is all just a matter of setup experience. Why don't we count the hours spent on configuring systems, like pilots have flying hours? We could list the hours in our resume. Then we can also tell the tale that systems can be devised by anyone.

Engine-itis makes things look simple without being easy.

What the industry pretends to need at any cost is uniformity and engine-itis is a good response to that. Engine-itis is a social equalizer: the skilled engineer and the talented power user who recalls all config switches by heart look alike, because they struggle in similar ways with the legacy.

I think you have more than one point here, I fully agree, since ever I wish to go back to the roots: let’s be engineers and let’s engineer. Then, so many dysfunctional containers/engines with fancy DSLs (nobody needs in a properly designed system) will melt like snow in spring.

Expand full comment
Jarda Hájek's avatar

At Google, the #1 reason for writing a configuration DSL (typically protobuf) is to achieve language neutrality for the configuration surface. I would buy most of Jos's argument that all the other reasons are BS, but this one clearly isn't. Sometimes this can be sidestepped by hiding the library behind a service, but that comes with its own costs.

A library offered in 3 languages configured with a DSL (and otherwise nearly-zero-config) is a lot easier to document and maintain than a library configured natively in each of the languages.

Is it wrong for big companies to invest into multiple languages? I don't have the answer, but the article seems written with the tacit assumption that it is indeed wrong, which I doubt is clear.

Expand full comment
5 more comments...

No posts