Apparently I've stumbled upon a problem that has recently faced many web developers. That is, I would like to adopt an open-source web development framework for mid-sized project. Well... searching that phrase only yields 200,000+ results. So how does one choose?
I guess Ruby on Rails sparked the whole "Web Development Framework" movement (among other things). I've typically used PHP for my web-based projects in the past, but over the last 2 years, I've also become a huge fan of Python. I'm not opposed to learning a whole new language (in fact, I'm quite for it!), but for this particular project, I'd like to stick with something I already know quite well. So, that limits my languages to PHP and Python.
Additionally, I would like that the framework support multiple databases on the back-end (especially SQLite!), and that there not be huge additional requirements to get things up and running. I would also like it to integrate nicely with Prototype, and, if it works on Mac OS X, that a huge PLUS!
So, for the PHP side of things, my top three candidates were:
I've already started working through symfony's excellent tutorials, and there are two main reasons that I chose symfony to start with:
- An online book (and excellent Documentation)
- An easy-to-use sandbox. This lets me get started quickly with it.
I've still got a soft spot in my heart for Python, and eventually, I'd like to let it into my Web Development world. I've read good things about both TurboGears and Django. Interestingly enough, Django comes bundled with its own (lightweight) web server (for testing purposes), so it's a great candidate for anyone wanting a framework with little overhead... It will probably be my overall number 2 choice.