When doing software development I practically live in my terminal. I believe a well configured CLI trumps its GUI counterpart and day of the week.
One tool I could not take this stance without is tmux, an open source terminal multiplexer. It enables me to have several open session windows in the same terminal and to split those windows into panes.