I was originally planning on taking on this web project the way I’ve always done them, with Notepad, ftp, a hope and a prayer.  That approach involves debugging the “old fashioned way” as I described a few months ago: adding many lines of code that just spit out the values of certain key variables so I can get a feel for what the code is doing.  A far cry from my office setup where all the latest and greatest debuggers and servers and virtual servers are at my fingertips (and my three monitors).  I was going to settle for this painful approach because the ISP that will host the site runs a Unix variant (as opposed to Microsoft Windows), which means I’ll do my programming in PHP, a programming language developed on Unix.  I knew PHP had been ported to Windows, but last I heard those Windows ports were dubiously maintained and typically a few versions behind the main code stream.

Lo and behold, after a bit of digging I was pleased to discover that PHP has become mainstream in the Windows world too.  In fact one PHP developer blogged that most PHP programmers develop on Windows.  As a result, there are a plethora of tools I can use.  Not the same ones I use at work, but just as powerful, and with prices ranging from free to hundreds of dollars (and feature lists in the same range).

I’m still using trial versions of some of the commercial packages, until I can settle on the best one, but here’s my software toolkit at this point:

  • Apache – open source web server that has been around for millenia and is still the de facto standard.
  • PHP – open source programming language that has gained in popularity in the last 5 years or so.  Any self-respecting web application programmer will have at least played with it.
  • MySQL – open source database that used to be for only very simple web tasks, but now competes with the big guys.
  • CodeIgniter – open source PHP web application framework.  I only heard of this code library recently, and am using it mostly because of it simplicity, good documentation, and active peer support forums.  A framework like this should help me avoid having to reinvent the wheel–all the typical “gruntwork” code that every web site needs gets wrapped up in the framework’s worker classes so I can concentrate on the “real” code, on what makes this web site different from the next one.
  • I’m still looking for the perfect IDE (an IDE is an editor and debugger).  A good IDE is a huge time saver mainly because of the debugger, letting you step through code line by line, examining variables, changing them, changing the code and running it through again.  Unfortunately, CodeIgniter messes with the URLs, making them look nice to the user but confusing the debugger.  At this point I’m using NuSphere PhpED as a code editor but I’ve given up on its debugger and am back to the “old fashioned way” again.  If I can’t get its debugger working before my 14 day evaluation period is up I’ll likely switch to a different application rather than pay the $300 USD price tag.  I’m also trying WaterProof PHPEdit, but it seems to be aimed at PHP 5, whereas my ISP only supports PHP 4.  (The PHPEdit forums seem to indicate you can debug PHP 4 as well, but there seem to be a few hoops to jump through, and I’m still not sure what it will think of the CodeIgniter URL mangling.)

Despite the frustration of still not having settled on an IDE, I’m moving ahead with coding (I can register new users and log them in now!), and it really feels good to have a full web server and database running on my little home PC! 🙂