Also you can pry Magit from my cold, dead hands.
Also you can pry Magit from my cold, dead hands.
"e.g. commands that act on regions should act on lines when no region is selected"
This is because traditionally Emacs never had the concept of "no region selected". The way it Emacs works is that it has two markers: "point" (which is just the cursor) and "mark" which is another position somewhere in the buffer. You can set the position to mark to that of point by pressing C-SPC. In fully traditional mode, the position of mark nor the selection is ever actually displayed in the buffer. If you press C-x C-x, the locations of point and mark are swapped, allowing you to quickly jump to mark and then back again.The way Emacs was (and is) designed to work is that all region-based commands simply apply their function on the characters between point and mark. Since there isn't any "selection" as such, talking about what commands do without the selection simply does not make sense.
Now, in (what I consider to be) a misguided appeal to users of "windows style" editors, Emacs introduced the concept of "active regions". The underlying concept of having a point and mark is still there, but there is now also a flag indicating whether a region is "active" or not. Commands can look at this flag to perform different operations whether or not this is the case. Since several years, active regions has been enabled by default in Emacs.
The problem when having active regions enabled is that in many cases the user has to reactivate the region before performing some operations, making many region-based operations much more complicated[1] to use.
I seem to have become to the go-to person for Emacs support at my workplace, and I have seen a lot of new users being confused about regions in Emacs. Instead of adding even more Elisp code to try to coerce the application into behaving more like Notepad, I typically recommend them to turn off active regions and learn Emacs the way it was meant to be used. It's certainly different from most other editors, but the behaviour makes a lot more sense once you pick it up.
Footnotes: [1] I used the word "complicated" to mean "needs more keypresses".
Don't you see it as a problem? Anyone new coming has to go through all the history to get an understanding of why things work the way they work. Other software evolve over time and follow practices that result in better UX.
A lot of modern software uses the 'opinionated' approach. The designers come up with their preferred way of using the software product, and build the user experience around that. This gives great results a lot of the time - you get a consistent and unsurprising experience and you can build a very intuitive experience. To pick a silly example of this, Google Chrome tries very hard to prevent the expansion of extra 'settings'. That way everyone is using the browser in the same way (this has security benefits too).
Emacs goes completely the other way. It gives you the tools to tweak absolutely every aspect of your usage, and while it may have some defaults it isn't really opinionated about which is right. It's been said many times - emacs isn't a text editor, it's a platform on which developers can build their own ideal text editor.
That isn't to say that there aren't some silly things in the defaults, but the emacs developers appear to continue to actively tweak the defaults in the direction of being ever more sensible.
My point was that it wasn't the ONLY approach. It appears to be the best one for mass market consumer products, but developers do so many different things in so many different ways that a different approach might be more appropriate. Based on emacs' enduring popularity with a large chunk of users, it would appear that a lot of people agree.
I use ace-jump-mode for almost all of my movement. I can go straight to where I want to with a fraction of the effort.