I was reading a little article on 10 signs you are ruining your career as a web developer, which talks about several things you're probably doing wrong as a web programmer. I think a lot of them are seem somewhat biased like 3, 4, 5, 7 and 9. You don't have to be an active member of the community to be a good web programmer. Nor do you have to spend every evening studying.
What I found to be the most meaningful of these was number 10: "WAMP is still the development platform for your LAMP app." For most web developers, this is probably the case, at least for LAMP developers (I'm still not certain as to why anybody would want Windows as a server, other than the obvious steak and strippers reasons). In fact, I'll bet many of them don't even have the AMP part, they just do their development in some PHP (or whatever language you may be using) editor and upload it to some server with the stuff on it.
There are a couple problems with this approach. I did a professional site using Ruby on Rails a while back on my Ubuntu box, and I have to say it is a lot easier to debug things when you have a web server and everything running on your local machine. You can have a debugger/profiler running, you can read log files much more easily, and you don't need this thing called a "development server" since the development server is the computer you are working on.
One problem I found that crops up from time to time on Windows development is capitalization. When working on a team, everybody codes differently. When naming files, these differences show up. One person might name their file "myfile.php" whereas someone else might put "myFile.php". Not really a problem, until you start throwing things in SVN. The SVN server is probably running Linux, so these two files are different files. The SVN client (like Tortoise SVN) you're using on Windows however, will probably see these as the same. So it tries to do merges or whatever on two files that it thinks are the same when the server says they are different, this creates complications. It's a big mess that would never had happened if you were working in Ubuntu in the first place.
What tools are available for development in Ubuntu? Quanta is one I like, it's for KDE but it's easy to install KDE libraries in Ubuntu. There's also Eclipse which a lot of people like, but it's a beast. Plus it's a Java IDE, with other functionality tacked on through extensions. I want something a little more devoted. There are a lot fewer IDEs for Ubuntu than for Windows, however despite this I think there are more free IDEs for Ubuntu than for Windows ;).
UPDATE: It's been a few years since I wrote this article, I now develop almost exclusively in Vim. I use IDEs for fancy refactoring or bells and whistles like that when necessary, but not for writing any code.
I really should start looking for a new SVN client. I mean, the svn command line isn't so bad, but something that automatically detects when I've added or deleted files is always nice.
For FTP there's gFTP or the ftp command line stuff, although Quanta has built-in FTP support, which means once it's set up you don't have to navigate directories. You just press the shortcut (Ctrl+Shift+U for me, habit from my Dreamweaver days) and it uploads to the proper directory.
The major deciding factor in my mind is the image manipulation programs. If you want something really powerful, you're probably not going to find it on Ubuntu. Let's face it, the GIMP sucks. It just doesn't compare to Photoshop. I find it much easier to use Photoshop than GIMP (not that I really know how to use Photoshop for anything). So if you need to do a lot of fancy image manipulation, then Ubuntu might not be the choice for you unless you want to figure out how to use the GIMP.
For me, I don't do much complex image manipulation, and in this regard Ubuntu turns out to be better for me. I want to have a basic image editor that supports transparency and nice cropping stuff. There's occasionally some other stuff that I want, but this is what I need 90% of the time. Paint just doesn't cut it here, and using Photoshop for this is like using a shotgun to kill a mosquito. Here's where Kolourpaint comes in. It has transparency (you can select it at the bottom like it is a colour) and resize/scaling. It even produces some really nice file sizes and the smooth scaling option is pretty easy.
So here is my consensus: For the web designer, who mainly do the design of the site, images, HTML, CSS, you're probably better off on Windows or Mac. But for us web programmers who work with the server-side stuff a lot more, we're better off on Ubuntu or some other Linux distro. Why would you program on a WAMP stack (or even worse, a WIMP stack - Windows, IIS, MySQL (or MS SQL), PHP/Perl/Python) when you can program on a LAMP stack and speak the same language as the server that will be running your software?
UPDATE: I've posted a follow-up for this article here.