I'd argue that a sizeable fraction of jobs titled software engineer would be more properly categorized as software technician or software designer. Designers tend to use flexible materials (clay, Python, breadboards) that are easy to prototype in, even if they don't stand up well in industrial settings. Technicians can rig up serviceable systems just by plumbing pre-engineered components together. Not everything needs to be engineered.
Also, why do we have to put up with advanced tools being pains-in-the-arse? I really like Julia's manifesto: "Even though we recognize that we are inexcusably greedy, we still want to have it all." https://julialang.org/blog/2012/02/why-we-created-julia/
I think you make a good point here, that the majority of software jobs could be classified as software technicians. I feel that designers have a slightly different role that I can't quite put my finger on. For instance, I feel that clay is a different concept from Python or breadboards -- since clay design usually only has the abstract function designed, and doesn't actually implement it (ie. it is not prototype functionality).
I think Python and breadboards are rapid-prototyping materials (possibly similar to 3D plastic printing?), but especially with breadboards, I've found EEs tend to forgo them entirely during prototyping phase since once you've learned a proper engineering tool it is _really_ hard to go back.
Certainly many advanced tools are a pain-in-the-ass due to poor UX, but there is also the idea that a complicated problem can only get so simple. To deal with complex problems -- which advanced tools should do -- they will need to have some level of complexity that needs to be learned.
Julia is an exciting language, but even there it has its own levels of complexity. A complex problem can only get so simple, and proper engineering tools expose this leftover complexity to the engineer. Whereas beginners tools tend to hide this.
Right, and many projects and companies openly work with that model. Many frameworks go in that direction, as does pretty much everything that's "customizable": The hard problems are in theory solved at the core, by a small-ish expensive team, to be glued together by others, often cheap external workers.
Also, why do we have to put up with advanced tools being pains-in-the-arse? I really like Julia's manifesto: "Even though we recognize that we are inexcusably greedy, we still want to have it all." https://julialang.org/blog/2012/02/why-we-created-julia/