Virtualbox 1.6.2 (or is it 1.6.4) -- the latest -- is quite good.
The alternative is KVM/QEMU, and also VMWARE SERVER or WORKSTATION (not free).
Personally I'd stick with VirtualBox barring a reason to change, though KVM is often "built in" and works well for many things too.
GCC/G++ isn't as good as the compilers you find in current versions of Visual Studio or Intel C/C++/Fortran compilers. Visual Studio Express and Visual C++ are free from Microsoft.
Intel C/C++/Fortran compilers for LINUX are free for personal non commercial use from Intel, and they're probably the best compilers available for free IF you have an INTEL CPU. Curiously Intel seems to have "forgotten" to optimize the compiled output for, say, AMD / VIA CPUs so the performance / compatibility on those CPUs suck.
There's nothing really at all BAD about GCC/G++ though for 99% of programs, the standards compliance, reliability, portability, performance are all good to excellent, especially considering the cost! For truly "high performance" complex codes for scientific / engineering type code bases and various newer or more advanced parts of FORTRAN, though, you'll often get better results with the Intel or Microsoft or other compilers.
Considering all things, GFORTRAN (part of GCC) is actually almost excellent in compatibility and performance; Microsoft doesn't produce a rival compiler. Intel has a better compiler but it is quite expensive for commercial use, not good for AMD CPUs, though the free personal use one is quite nice. Most other comparable commercial fortran compilers are quite expensive and often not superior for general pupose projects than GFORTRAN/GCC.
Firefox is less stable on LINUX than MS Windows in my experience. Hopefully this will change. Opera might be a viable alternative. Or FF may work well for some people depending on your system, CPU, kernel, X windows, RAM, plug-ins used, et. al.
X-Windows + window managers + desktop environments puts MS windows to pathetic shameful disgrace. Multiple virtual workspaces, better window management, comparably good multi-monitor support if you have the right GPU/driver/OS mix, much better window management / input focus options / accessibility functions et. al.
X-windows working remote over SSH or VNC -- again puts MS windows to shame, the only competition is RDP over Vista Ultimate and even then VNC or SSH + X-windows is often much much better.
SSH remote login even without X-windows -- priceless.
Postgres / MySQL databases -- puts MS offerings to shame in many cases for usability, security, price vs performance.
Eclipse / NetBeans / et. al. S/W development IDEs, very decent. Maybe not quite up to SunStudio / Visual Studio in some aspects, but better in others, and free!
Multitasking / multi-threading / multi-user support that is free and actually WORKS even under hardcore system loads -- priceless. There just is nothing better than UNIX. Job control. Process priority management. Security of SELINUX / chroot / free virtual machines. Priceless.
Serious industrial scale free scientific and analysis software like OpenDX data visualization, R statistics, SciLAB (like MatLab), Octave, GP/PARI calculator, MAXIMA symbolic mathematics, SAGE mathematical software for computational algebra / symbolic math / group theory, GAP, et. al. MEEP / NEC / CAMFR / iMoose computational electromagnetics, GMP / MPFR multiprecision mathematics library, FFTW FFT library, ATLAS / LAPACK / LINPACK linear algebra matrix and vector math software, SUNDIALS, PETSC, SUPERLU mathematical software.
OpenOffice, StarOffice, office software. Also others like kwrite.
email/calendar/PIM -- thunderbird, kmail, evolution clients, much cheaper, better and more secure than Microsoft stuff for email / calendar. Little lacking in the PDA/PIM aspects, but that's mostly the fault of the device manufacturers.
email server -- Sendmail, Postfix, Qmail, Exim -- way way better/cheaper than MS Exchange server.
Web servers / development / scripting -- Apache, Tomcat, jBoss, all the apache.org software, all the JAVA software, all the PHP software, all the RUBY software, PERL, Python, light years better than anything else and it all fits into UNIX platforms as well or better than any others.
OCR tools -- several industrial grade ones in the free software category.
Speech synthesis / recognition -- many better / cheaper UNIX options.
VOIP & messaging -- asterisk, EKIGA, et. al. standards compliant SIP / IAX / H.323 et. al. instead of insecure spyware / adware ridden expensive or closed system standards incompatible products like Skype / MSN / Yahoo IM.
Filesystems -- ZFS, ext3, JFS, ReiserFS, all much more advanced and performant / reliable than what you'd typically find elsewhere, certainly considering the cost of MS Server OS licences.
Network filesystems -- LUSTRE, NFS, ARLA, Andrew, SAMBA, all much better or comparable and cheaper versus commercial alternatives.
Storage -- lots of ways to set up simple RAID file servers with ZFS or ext3 or whatever for free.
Video transcoding -- x264, ffmpeg, et. al. all much better / more flexible than commercial alternatives that aren't insanely expensive in most cases.
Text editing -- emacs; just try having 500 files open in MS word or NOTEPAD.
GUI -- Qt, FLTK, GNOME / GTK, KDE, OpenGL, lots of nice cross-platform application development / desktop environments, and they all generally work best or equivalently under UNIX.
File management / searching / indexing -- Tracker, Beagle, Strigi, GLIMPSE, et. al. Certainly beats anything from Microsoft / Google, Yahoo, and it's not even spyware like the other ones are.
File organization & storage -- wow -- a filesystem that doesn't break UTTERLY when you want to have a filename or path name component or hell even the whole aggregate path length that is over 128 characters or 256 characters. UNIX. Want to have uppercase / lowercase actually be able to be distinctive (and preserved!) in filenames? UNIX. Want to be able to actually drag/drop or command line copy files from point A to point B and have ANY kind of confidence it actually WORKED instead of having it silently fail or fail after running 2 hours and then give you NO way to start over again or identify / resolve the discrepancies incrementally? UNIX. MS Windows is just unusably broken in its file explorer / copy / verify options.
Graphic arts -- Blender, Wings, GIMP, KRITA, F-Spot, DigiKam, RAWSTUDIO, UFRAW, DCRAW, POVRAY, Sodipodi, Inkscape, .....
CAD/Modelling -- QCAD, EAGLE, SALOME, OpenCASCADE, brl-CAD, the list goes on.
FEM / Mesh -- Deal II, libMesh, Triangle, grummp, the list goes on.
Basic tools --- diff, grep, sed, awk, perl, sort, find, xargs, fdisk, cfdisk, gparted, less, tail, head, dd, bash, ... hard to imagine I would survive a day with just Ms Windows CMD shell without these sorts of essential little utilities.
Document formats -- despite not having MS Office, you'll note that by "default" on a full install of Vista or XP install you pretty much can't even VIEW a microsoft .DOC document file, powerpoint .PPT file, excel .XLS file, Microsoft XPS file, Adobe .PDF file, text .RTF file, text file in .TXT that is substantially long, or most anything else you're likely to encounter in an office, on the web, etc. In contrast a typical UNIX distribution will by default let you not only VIEW but EDIT most MicroSoft Office files from Word, Excel, Powerpoint, XPS, ODF, PDF files, text files, RTF files, but, wait, there's more... Postscript / EPS files as many technical publications use, TEX/LATEX similarly, et. al. Microsoft Vista / XP can sometimes open a ZIP file if you're lucky -- UNIX can generally CREATE and open them as well as TAR, BZIP, RAR, ARC, 7Zip, et. al. more easily than you can typically do those on Windows without downloading and installing a dozen programs. UNIX distributions usually include basic support out of the box and make it easier to download others.
Maintenance -- GUI based package managers to search for, pick, automatically download / install any of thousands and thousands of utilities, programs, et. al. Download managers, P2P sofrware, et. al. that actually work more or less by default. Try even getting a naive user to download some program, install it under windows -- not so easy if one has a limited user account (typical for Vista), has to deal with UAC / anti-virus warnings, install permissions, software incompatibilities, et. al.
Backup / Synchronziation -- Amanda, STAR, TAR, RSYNC, Ghost4Linux, Clonezilla, SysRescCd, et. al. Often tools you'd turn to after you've messed up your Windows install and need to use LINUX tools to fix it, reset the password, backup / restore, et. al.
Electrical engineering -- SPICE, Gerber tools, free CAD / embedded development software, SDCC, et. al.
I could go on all day. I'd have to have $40,000 of non-free software under Vista 64 Ultimate to even begin to touch what I typically do in a given month with mostly decent freeware under LINUX.
Security -- Truecrypt, SELINUX, filesystem based encryption in EXT3 or ZFS, GPG.
Network tools -- SNORT, Ethereal, tcpdump, OpenNMS, OpenSNMP, AIDE, CLAMAV, IPTABLES firewall. IPTABLES routing / bridging. IPSEC VPNs that actually work and are free and configurable. IPv6 support that is on by default and actually works in the OS and many programs.
Some things are lacking like better support for proprietary inkjet printers, support for running programs written for MS Windows better than they'd run in a VM or under WINE, support for more Video Games, support for more high end commercial graphics/cad/industrial programs, support for more commercial media formats / DRM.
Frankly if I could occasionally run Vista, MS Office 2007, Video Games, various CAD tools, Windows Media Player, Internet Explorer in a VM or under WINE, I'd never spend much time booted into MS Windows. Already I use it probably less than 5% of my time.