If there's one thing us software developers love more than a good geeky joke, it's learning how other developers work - what hardware do they use, their OS choice, and all their developer tools. It's a great way to improve your own working environment - working with great tools makes our job a joy, while the wrong tools can make every line of code painful.
Sony Vaio AR-51E laptop. As I bought my own laptop for my work, I could choose something a bit fancier than a Dell econo-box, and this does the job nicely. It's getting a bit long in the tooth, but I've bumped up the RAM to 4GB, and my Crucial SSD makes a massive difference. I'm lucky that this particular laptop has two drive bays, so the old 7200rpm disk makes a great bulk storage volume. For web development it's a good spec. The integrated GeForce 8400M GT isn't too shabby, the X-Black screen is a treat, and it's a good keyboard to be using day in, day out.
Nice though the 17" X-Black screen is, I couldn't live without my Acer 24" widescreen monitor. As ever, more inches would be nice, but the 24" and the 17" laptop screen make for a good combination.
I've always been used to developing in Windows environments (my previous dev setup is here), but I've recently been won over by Linux, specifically Ubuntu 10.04. It seems that with this version, Linux has finally reached a stage where everything just works (at least on my current hardware!), which leaves me free to get on with my day job. The performance is nice and snappy too.
I've added DockBarX to my Gnome panel to give those nice Windows 7 window previews on the task bar.
- PHP Storm - the best PHP IDE I've worked with by a long way. It does cost money, but not much, and is so far ahead of Eclipse that it's worth every penny
- RabbitVCS - the best Linux replacement for TortoiseSVN, although PHP Storm has such great SVN integration that I don't need it very much any more
- Firefox (with Firebug of course!)
- I'm still looking for a great text editor. Every serious developer should have a text editor that they are fiercely partisan about. When I worked in a Windows environment, it was Textpad - regular expression search and replace, fast find across whole directories of files, syntax colouring, handles large files (like over 1GB), and heaps more. SciTE is looking most promising so far, but I'm still looking around
- Gimp - for all things graphical
Then there are the other things I need to get my job done
- Open Office
- Thunderbird email client
- Filezilla FTP client
- KeePass to keep track of all those pesky passwords! I can share databases between my Linux dev environment, my Windows 7 netbook, work colleagues on various other flavours of Windows, and my Android smartphone
- DropBox - for when I need to work on things at home on my netbook but haven't brought my laptop home. Being able to check up on documents on my phone is kinda nice too!
My actual website development is usually based on Drupal - although it is essentially a content management system, it's architecture blurs the line between a CMS and a development framework. Some sites I have built clearly require a CMS, while some others have been almost entirely custom development, with very little CMS requirement.
Although Drupal is not neccessarily the best solution for all these, it is always a good solution, and by standardising on a single platform I have a whole heap fewer headaches in terms of learning multiple frameworks and switching between them, server configurations (across development, test and production environments), and keeping up to date with security patches.
What About You?
What are your favourite development tools? What would be your dream setup? How could I improve mine? If you're interested in what some other developers use, The Setup is a really good read.