Yeah, they’re all the rage nowadays. Ruby on Rails, Django, CakePHP, among many others. Even though these frameworks have different names, languages and approaches, they all share a common mindset: to make your web development faster and easier.
But why a framework?
From the book of Django itself, here’s the process most web developers go through, sooner or later:
- Write a Web application from scratch.
- Write another Web application from scratch.
- Realize the application from step 1 shares much in common with the application from step 2.
- Refactor the code so that application 1 shares code with application 2.
- Repeat steps 2-4 several times.
- Realize you’ve invented a framework.
So what do I need to learn?
Nowadays there are frameworks for almost every serious web development language out there. If you’re a PHP addict, you can take a look at this list. If you already know some Python, you can try the excellent Django. Chances are you don’t know Ruby, but since it’s so easy to understand at first glance, you might as well give Ruby on Rails a shot.
What you need to understand now is that frameworks use a very different approach to web development than what you’re probably used to. The ones I’ve talked about all use (to a greater or lesser extent) the MVC Design Pattern. This stands for Model-View-Controller and it allows for a good separation of different aspects of your application. For example, Models are in charge of accessing the database and enforcing business logic (for example, data validation rules). The View, as the name suggests, is in charge of delivering such data to the client (this doesn’t strictly mean that views churn out an XHTML page – modern frameworks have made it easy for views to supply whatever format the client needs). The Controller makes calculations, decides which action is performed and which view (including its format) the application needs to show.
Great! So what now?
If you’ve made up your mind about trying out a framework, you’re in for a treat! You can check out the famous Rails 15 minute blog tutorial, it’s CakePHP equivalent, and the Django First App tutorial. Once you’re done with those, look around the all the sites linked here and you should find plenty of other cool resources. Have fun!





I’ll give it a try on Cake PHP :)