there should be a term for a Chesterton’s fence that isn’t “why is this here?” but “why did they make this so complicated?” because I run into that constantly in the tech world
like “why do I have to learn about the concepts of entities and components in order to use Unity when you could represent the same data and behavior using an object that contains more objects inside of it?” or “why does this unit-testing framework need to run an entirely separate JavaScript runtime inside of Node in order to simply unit-test some code?” or “why is it such a complicated and frustrating task to literally just make a simple GUI with HTML/CSS?”
like I’m not saying that these things are pointlessly overcomplicated, because they probably aren’t. but from the outside they look pointlessly overcomplicated. and that’s frustrating because I don’t want to learn something that looks unnecessarily difficult to understand and use
I have a similar problem with programming languages in unfamiliar paradigms. like I’m used to languages like Python and Lua and (ugh) JS, so when I see a language like C# or Lisp or Haskell all I can think about is all of the features from Python/Lua/JS that are missing or replaced with weird alternative features that look like clumsy approximations of what Python/Lua/JS has
and like I strongly suspect that the replacement features are roughly as good (maybe better?) or that you’re supposed to use disparate alternative features instead. but I can’t put myself in the mindset of someone who uses that language and understands how to write idiomatic code in it so to me it just looks awful. and I’m curious to understand why they aren’t as awful as they look, but not enough to learn a language that looks - from the outside - like a clumsy awkward approximation of Python/Lua/JS