Not to mention you can share your command line shell session/screen with other people!!
tl;dr, use tmux if you ssh into places and hate restarting after losing your connection.
Man. https://linux.die.net/man/1/tmux
Or if you're not into the whole brevity thing: https://linux.die.net/man/1/tmux
Try it with a friend the first time.
Using tmuxinator, I might set up a config for a rails project, for instance.
That way when I start tmux I get a vim editor in one window, a bash prompt in the next (for git), a rails server in the third, tests in the fourth, maybe another process in the 5th like sidekiq or something if required. Note, these (tmux-)windows all live inside of one terminal window.
So once you spend about 2 minutes writing that config, you can always start up your environment with tmuxinator start project-name and a few seconds later you're good to go.
Screen is a similar program.
That's why, while I use VIM when I have to, I much prefer the technology to handle automatically whatever it can. Like maintaining states, making them obvious and offload any fruitless decision making.
I use a macbook pro with iterm2, and I prefer to use a terminal multiplexer instead of tabs or the native screen split of iterm2.
If you ssh remote boxes a lot, it is very useful because you will not lose your session in case of an occasional disconnection.
ssh hostname -t "tmux -CC attach || tmux -CC"
Of course, I picked this up from an HN comment :)