In the past, I have used Emacs and then switched to Neovim. I just switched back to Emacs again. I am enjoying both - without any friction. To get the best out of both Emacs and (Neo)Vim, you have to treat them as different types of software.
> For one, all the keyboard shortcuts and commands that you have to learn
That's a valid concern. But if there was one keybinding every programmer should learn, it's probably Vim's. And while emacs has a default keybinding, it is not tied to it. Vim keybindings using evil-mode uses the same elisp interface as the default binding. Evil-mode feels very native and at par with Vim user experience. (Kakoune's bindings are derived from Vim's and is said to be better. But it's immature now. Hope it catches on.)
Emacs is a programming platform and not an editor as such. You should simply forget the key bindings (use what you are comfortable with- evil or even the Windows bindings) and focus on what the platform has to offer. Packages like Org-mode, Magit, restclient and a lot of others have no other alternatives. Emacs GUI also acts like a terminal emulator far more advanced than VT-100 emulators.
(Neo)vim is useful as an editor when you are setting up new systems or administering via SSH. Emacs is useful as a personal programming environment. With evil-mode, there will be no problem using either in the respective context.
> Second, it feels like you have to spend a lot of time to set it all up.
I support what everyone else recommends. Start with Doom Emacs or Spacemacs if you are a beginner. It does take a lot of time to set it up from scratch. I just prefer to set up everything from scratch, since I use a dotfiles repo. Improvements in configuration are incremental when you have a dotfiles repo.
> Third, will it replace an IDE?
All those are available. Just needs configuration. Or else, use Doom Emacs or Spacemacs - they come pre-configured. That really isn't the reason Emacs uses love it. It's those features you can't get in an IDE. If you have a task for which you need to switch out of an IDE, elisp makes it easy to integrate into emacs. The package repositories are full of such packages.