I've tried both, and the licensing issue aside, I've found I prefer tmux.
Anyway, not wanting to turn this into a gnu vs. bsd, tmux vs. screen argument, but I didn't eve know tmux existed until someone pointed me to it, so I'm just passing on the knowledge.
off hand from just playing with tmux for the past 20 minutes, it looks like tmux better abstracts its commands from how it internally tracks the windows and sessions than does screen.
In particular, when i've played with screen, i found that i was frequently stymied by the broken abstraction of the way screen stored its state vs what I wanted to do.
byobu sadly doesn't work on macbooks, but it looks cool!
to further clarify: when choosing a session (and thus a collection of windows), in screen the process id info etc is exposed at the user level, which perhaps is useful to someone, but not for how use terminal and such. Thus because these things are not as directly exposed via the interaction model that tmux does, doing stuff becomes simpler and semantically clearer
One of the big things is that it preserves split screen arrangements upon detachment. I SSH into a server and basically use Screen/tmux as my IDE, and losing my split screen setup when I detach is very annoying.
http://tmux.sourceforge.net/
I've tried both, and the licensing issue aside, I've found I prefer tmux.
Anyway, not wanting to turn this into a gnu vs. bsd, tmux vs. screen argument, but I didn't eve know tmux existed until someone pointed me to it, so I'm just passing on the knowledge.