In the early 90s I was doing IT type C with SQL database software. There was one pattern of goto usage common: clean up at the end of a function if something went wrong (close db cursor, log something, return error code, and the like). When that space went to Java and to some extent C++ (and later C#) exceptions could be used instead. A defer statement would have been a more direct replacement for the pattern, though.
Corporations are extensions of the government? I think an argument can be made for the opposite view (lobbying, the military-industrial complex, regulatory capture, DOGE) but I suspect the reality is tentacles of influence going in both directions.
I was mildly disappointed the other day when I did a <C-h a>, and instead of "apropos" I saw "search for command". Apropos was one of those killer features that was, as far as I know, unique to emacs (until the "command palette" appeared in one of the newer editors).
20 or 25 years ago it almost never crashed. Now I might see a crash or freeze once a week or so. And slowdowns several times a day. Of course I'm running more modes now in a more customized environment. Hopefully this new version with more in it will improve the situation.
The arc of the U.S. economy over the last 80 years contradicts your position. There has been reduced regulation since the Reagan administration, and also reduced competition. A few blips when internet companies "disrupted" an existing industry, but those industries fairly quickly consolidated on a small group of players.
+1 to this. Why throw away an extra dimension of expression available by choices in formatting in the name of consistency? I find it helpful to use blank lines to separate code into "paragraphs". A complex conditional may be made more readable by extra space in some places an not others. A series of single line if statements might be clearer formatted lined up vertically, like a table.
Yeah, that stood out to me as a virtual tie also. When I got pretty good at debugging was when I began to recognize which of these approaches would likely be most effective in a given situation, and when to back out and use another approach, or mix approaches.
I think graphical debuggers are a big help: 1. It separates the meta-information of the debugger into the graphical domain. 2. It's easier to browse code and set/clear breakpoints using the mouse than the keyboard.
That's why I gave the caveat that if using a language with the ternary operator, one should know that operator. Python tried using English words for a ternary, but I think that's awkward from a readability perspective. A limited set of symbolic syntax improves readability over using words in my opinion, there's less text to scan.
I never felt real comfortable with Xcode. Working on a medium sized c++ project now, and mostly using emacs. Xcode only for the debugger, which I much prefer in a GUI. CMake sets up the project, so low pain there. If on Windows, I would do the same but with Visual Studio. Usually I close the project when not debugging so I don't have 2 language servers running at once.