Emacs is completely programmable so I don't think it needed to be invented for these specific use cases. The entire point is that you can program it to do what you want it to do!
Emacs can certainly be a little clunky at times though which can put a lot of people off. It does take some configuration and tuning for your personal preferences to feel good, but the upside is that it can do way more than the alternatives can do if someone/yourself puts in the effort to implement it. Magit is a great example of such a thing, the interface and functionality is extremely nice, even compared to something like Intelli-j's git GUI which is a pretty impressive feat!
With that being said it's not for everyone (and that's okay)!
Emacs can certainly be a little clunky at times though which can put a lot of people off. It does take some configuration and tuning for your personal preferences to feel good, but the upside is that it can do way more than the alternatives can do if someone/yourself puts in the effort to implement it. Magit is a great example of such a thing, the interface and functionality is extremely nice, even compared to something like Intelli-j's git GUI which is a pretty impressive feat!
With that being said it's not for everyone (and that's okay)!