I’ve written in the past about the various tool I had been using to produce the web software I publish. I have recently converted to Mac OS X. I had promised you that I’d evaluate my web development experience on that platform and come back with a blog post about it. Here you go! This post is about all the tools I am using day after day and how they improved my productivity as a web developer.
Before I begin, I’d like to tell you that I’ve found the Mac OS X platform to be ideal for web development. I’ve always wanted a development system which is fast, thorough, very portable and easy to use. With my Windows and Linux machines I could get at most three of those points at any given time. With my MacBook Pro I have found system which is all four and, above all, makes writing and supporting complex code fun and enjoyable! It’s all about the combination of a powerful Operating System (a BSD clone), an advanced GUI (Mac OS X interface) and carefully selected tools.
The basic setup
You can simply not do web development without a local development server. I have tried a few different solutions and ended up using XAMPP for Mac OS X. Other viable alternatives are Zend Server CE (comes in PHP 5.2 and PHP 5.3 editions) and MAMP. I chose XAMPP because it has a pretty stable PHP release (PHP 5.3.1) and includes an out-of-the-box FTP server which is very important for the kind of web development I am doing.
Besides a web server, all developers need an IDE. My IDE of choice is Aptana Studio 2, an Eclipse-based IDE. Even though Eclipse is deemed as a slow and memory hogging system (it is!), it is also the most powerful. I only chose Aptana Studio over plain Eclipse primarily because it makes installing plugins like PDT and Subversive a single click operation. Besides, it sports built-in support for Javascript libraries (including mooTools and jQuery) and even has its own FTP/FTPS/SFTP integration. The PHP support is provided by the proven PDT plugin and will not trouble you. If you're into something more lightweight, I suggest trying out NetBeans IDE.
Working with complex code requires a lot of debugging. Having the proper tools for the job is of paramount importance. Your fist line of defense against pesky bugs is no other than Xdebug. Installing it with the provided web wizard is pretty straightforward and it integrates nicely with Aptana Studio! For more complex situations I suggest using Firefox with Firebug and FirePHP. There is a great FirePHP plugin for Joomla! Called JFirePHP. This triad will make debugging AJAX-powered Joomla! components a piece of cake.
Make your coding day
Sometimes you need to touch a file very quickly, so launching a full-blown IDE is not practical. In these cases, you need a code editor which rocks. My preferred code editor is Fraise. It's light-weight and provides syntax highlighting from pretty much every file type I care dealing with. Another good alternative is TextWrangler, which seems to be faster than Fraise when opening large files. If you want the best cross between a full blown IDE and a text editor, combining the best of both worlds, you might be interested in investing your next $99 in Panic's Coda, a code editor with IDE-like features and blazing speed. I know of some people who swear by it.
Writing code is fun, but losing it is not fun at all! You most certainly need a version control system. I am a command line die-hard, so my natural choice was the command-line versions of Subversion and Git. For Subversion I am mostly using the command-line and the Subclipse integration for Eclipse / Aptana Studio. Another good tool is Versions, albeit it costs $39. However, I have found the ultimate tool for Git. It's called Tower and will blow your mind off! If you use it for a week you'll start wondering how you could ever manage your repositories before.
Now that your code is safely stored locally, how about moving it to the Internet? An FTP client is a necessity. I found myself mostly using FileZilla, thanks to its drag'n'drop file copy operation support on the same host. I'm also using Panic's Transmit a lot, not just because I shoved $34 to it, but because it's capable of mounting all of my remote sites as local disks! Besides, it can also manage my S3 account. Speaking of which, S3Hub is a fine and thorough S3 manager which you should take a good look at. CyberDuck is a free all-in-one alternative to Transmit which could interest you. Unfortunately, it didn’t want to work on my machine, so I haven't really tried it out.
Other utilities to increase your productivity
Quite often you might need to manipulate images and photos as part of your next web project. There is a plethora of image editing software, but I've settled with Acorn because, frankly, it's dead simple to use! If you're into vector drawing, I highly recommend my all time favorite, Inkscape. The only downside is that it launches through X11 and its interface is fully native to Mac OS X.
If you're a lucky owner of an Apple Magic Mouse you might have already appreciated how easier it makes working with your Mac. Imagine taking its power and increasing it by an order of magnitude. Yes, it's possible, it's free and it's called BetterTouchTool. It also works with the multitouch trackpad of modern portable Macs, so it's worth installing.
So, what's the verdict?
Mac OS X provides an ideal environment for web development. You get to use a very well polished Operating System running a on top notch hardware. The plethora of free and relatively cheap utilities makes writing, debugging and testing your code very easy. Moreover, the strong UNIX roots of Mac OS X make it very easy to run a very fast local development server even on the least powerful Apple hardware. Overall, it's the ultimate productive environment for web development. If you are still using Windows or Linux for your web development needs, I strongly recommend attempting the switch to Mac OS X if you can afford the relatively expensive hardware. It's really worth it.