I'm starting a new project which is hardly revolutionary in what it is, a dynamically generated web site powered by a relational database with Latex being used to generated formatted PDFs. That's as much as I'm going to write about the project for now.
The problem is that this is a low capital out of hours project and this means my toolkit is considerably different to what I'd use at work. If I were planning this using any tools I wanted I'd most likely be using Microsoft SQL Server as the database, Windows 2008R2 as the operating system and a mix of C# and ASP.Net all developed in Visual Studio 2010.
There is a slight problem with this, two in fact. One: I can't afford to licence all that software for home use, two: I'm not going to use any work equipment or software. As annoyances best come in threes I'm also deciding to make sure I don't use any technologies used by my employers as this creates a complete separation between the two pieces of work.
What I'm Going to Use
Database
I'm not expecting massive traffic and coming from a relational database background I have no real interest in trying a noSQL solution just for the sake of it. This leaves two real contenders in the running MySQL and PostgreSQL, after a complete lack of careful consideration I went with PostgreSQL for the following reasons.
- MySQL has traditionally been a bit of a lightweight database (although now much better), PostgreSQL has more of a reputation as a serious database
- I like the PostgreSQL documentation style more than that of MySQL
- PostgreSQL has better ACID compliance
Language
This was the hardest choice as coming from Java and then moving into COBOL and then to C# I had a whole host of languages all needing something more expensive than a cheap hosting package.
The obvious choice was PHP which for small projects seems to be the de-facto language of web development. I don't yet have a deep hatred of PHP as I've not needed to use it for more than trivial applications, but research seemed to suggest that after any amount of time using it I would grow to hate it. This left (as far as I was concerned) Perl and Python and given a choice between line noise and copious amounts of white space I decided on Python. This should be interesting as I've never actually done anything serious in Python.
Framework
While I could do the entire thing without a framework it'd feel very odd. Mere minutes of research pushed me to Django as it looks like it will do the job.
Development Environment
As I no longer own a Linux box (something which must be rectified) I'm going to be using an iMac running Mac OS X Lion. I've got XCode, Emacs and a good terminal emulator; as soon as I get code completion working in Emacs everything should be sorted.