I’m working for a large organization that makes – among many other things – embedded software. I’m involved in creating + maintaining (one of) the tool chain(s). We only have a couple thousand users (i.e. embedded devs) with somewhat foreseeable use cases, so one would think we should be able to get our dev UX right. But it is incredibly hard, because the minute you try to “do the right thing automatically” (like, in your example, placing a semicolon where it should be), a bunch of very vocal users/devs will come out an shout: “What the hell were you thinking, how dare your crappy tools touch my code? The world could have ended because of that!” … they are the same people that argue we (the organization) should just train our devs better, rather than trying to make the tools hide the complexity from the devs. And what can I say: I’d love to do that. But just as you said, sometimes devs just want that stuff works, rather than spend days or weeks to understand the details of a tool chain…