I’ve been writing code for the web for 10 years now, and in a (full-time) professional capacity for almost three and a half. I’ve worked extensively on the Linux Apache MySQL and PHP (LAMP) stack as well as in Microsoft’s ASP.NET. This post is a helpful summary of my experiences developing in both worlds, and what you need to focus on your job.
Important information on operating systems: I carry out all of my development on Windows, so you’ll not find any suggestions or reviews of software for Macs or Linux here. If you’re one of these people, why not write up your own review?
Integrated Development Environments (IDEs)
Let’s be honest, we all started out in Notepad, writing angle brackets in long hand and making extensive use of Ctrl+C. However once we graduated from the single scripted site, managing multiple files and object oriented links between them soon left us lost in a sea of notepad.exe windows. To curb this problem, and many others, software vendors developed IDEs, to incorporate a number of development tools into one application.
My favourite PHP IDE – Netbeans
If you write any amount of PHP code then you’ll want to get comfortable in one of the many PHP IDEs out there. In the last two years I’ve spent many hours bashing keys in Netbeans IDE. Whilst this application is written in Java (which undoubtedly makes it dog slow at times), Netbeans have dramatically improved the performance in the last few releases to the point where most features are finally usable!
Remote team debugging does require screwing around with XDebug and Komodo Python Debug Proxy, which I did manage to get working on a Linux development VM. However it has proved to be a little temperamental, requiring frequent restarts.
Netbeans includes integration for SVN Source Control and this works pretty seamlessly – you can commit and revert from within the application, as well as see which files are under source control and their status.
With the right hints in your code, you can jump between classes with Ctrl+Click pretty quickly.
I have toyed with other IDEs, notably phpDesigner, however Netbeans has been my favourite (free) IDE, and has served me very well.
My favourite .NET IDE – Visual Studio 2010
Much has been written about Visual Studio 2010, so I’m hesitant to try and add to the endless blog posts detailing every feature of this application. All I will say is that it is an incredible piece of software. It runs like grease lightening, it has a database explorer, browser and designer built in, as well as an extension model for a variety of useful add-ons.
Even since my days of programming in Visual Basic 6, step-by-step debugging has been the most productive way to debug, rather than the old “Made it to here” debugging output. You can attach to remote servers, or simply fire up the built in development web server to step through your code, with watch windows and full stack traces to hand. This debugging experience is head and shoulders above that of Netbeans.
Whilst you can get some source control add-ins for Visual Studio, my impression is that use of the Team Foundation Server is quite heavily pushed. I have yet to find a good HG (Mercurial) add-in, so I hack away on the command line to feel like a real programmer. On this item, Netbeans is my winner.
When combined with IntelliSense, it beats Netbeans hands down, purely due to the speed and variety of options. You get hinting at method parameters, namespaces to include as well as class properties, methods and events.
No serious .NET developer would use anything else, and as Microsoft make their express editions freely available, there’s really no excuse not to be using Visual Studio if you’re writing .NET code.
The Final Word
My overall development experience is much slicker in Visual Studio 2010; it feels like the right tool for the job, and it is so quick that I never feel like it gets in the way. Netbeans is more of a necessary evil for development, and it often feels like I’m having to kill time whilst waiting for things to happen, or have those moments of keystroke regret when you see the “scanning for indexes” message in the status bar. But compared to Notepad, it is so many steps ahead that I’ll just have to keep putting up with the performance issues.