Background
I've been busy recently evaluating Web Application Frameworks for a current project. It's a simple idea and I wanted to use an up-to-date framework rather than code everything from scratch. Here's a quick breakdown on what I found.
Ruby on Rails
I started with Ruby on Rails. No surprise there since it's probably the most well-publicised pairing of programming language and framework. I've got to admit it's really easy to get started with Ruby and easier still with Rails. I like the whole CRUD idea but I found the implementation too simplistic. It's fine for single class per table, but once you get to intersection entities/association objects or tables whose primary key comprises of two foreign keys, the concept begins to break down. So I didn't stay too long with Ruby on Rails. Here were the pros and cons for me:
Ruby on Rails Pros:
- Easy to start
- Good basic tutorials
Ruby on Rails Cons:
- A lot of the RoR documentation and tutorials are not up-to-date
- Difficult to tell which of the RoR tutorials relate to which version
- Limitations of the main Object Relation Manager (ActiveRecord)
- Limitations of all of RoR's ORMs made me realise that I would have problems once a project went beyond "Databases 101"
- Lots of noise in forums; don't underestimate this. Look at some of the uneducated answers on Stack Overflow about ActiveRecord.
- Based too much on sqllite or MySQL without referential integrity
Perl and Catalyst
I like Perl a lot. I've always found it an incredibly good language for string manipulation. I've used perl in the past but I've never liked how it was moulded into accepting Object Oriented view of the world. It always seemed too much of a bodge, although I'm happy to admit that maybe because I never got to grips with it. What I did notice is that trying to create MVC applications exacerbated those difficulties.
Perl and Catalyst Pros:
- Perl is very well documented with good, comprehensive manuals
- Great cookbooks, better than for any other language in my experience
- Powerful language
Perl and Catalyst Cons:
- Catalyst really not well documented, there is only one book
- CPAN is a mess as an installer. It's yet another obstacle to overcome. As a perl programmer, you become used to it, but it had been a while since I've touched it and I forgot how much of a pain it is to get up-to-speed
- Perl never seems elegant when being used in an Object-Oriented manner
- Too many obstacles to working through the main tutorial
Python and Pylons
Pylons is one of the main web frameworks for Python, the others being Django, Zope and Turbogears. I chose Pylons after researching the others since it provides a closer fit to what I want out of a framework. Right now, it's my preferred option, however if I end up becoming disillusioned, I'll have a closer look at Zope.
Python and Pylons Pros:
- Easy to start
- Good basic tutorials
- Site and documentation are improving almost daily
- The default ORM (SQLAlchemy) able to handle more advanced database concepts (e.g. compound/composite Primary Keys, multi-column keys)
Python and Pylons Cons:
- Documentation is still a bit basic
- Doesn't have as much traction as RoR or even Django, Zope
Trackback URL for this post:
http://www.awardsounds.co.uk/trackback/374