I’ve been using MVC frameworks for a while now, and it makes me think why I didn’t use it earlier… Yeah, back when I started learn programming I was exposed to procedural way of thinking, remember BASIC on IBM XT ( Yup, I wrote my first program on those awkward looking beige box from IBM, with amber monitor and glorious Hercules graphic card ), and that’s already called a luxurious home PC, considering that at the time, my sister work involving boxes of punched cards and magnetic tapes :)

Ok, back to MVC, I’m not going to do another framework comparison here, rather, just a story about my learning experience…

My first encounter with MVC was using Java, learning to program desktop application using Swing and AWT, pretty enlightening experience, but i dropped it somehow because I have no real use for it, let alone any project to work on using it… then came J2ME, when I really have fun with, creating interesting stuff for mobile devices. I also learn a lot about object oriented programming concept here, another interesting stuf, tightly related to MVC.

Now, so many MVC frameworks pops up, it’s confusing … all popular programming languages have at least one implementation of it as a framework, notably Ruby on Rails, Python’s Django & Turbogears, PHP’s Prado, CakePHP, CodeIgniter, and many others…

Which one do I use ? I tried not to get stuck and become single minded on a framework, since in my perspective, all is just tools to get things done. Currently I use CodeIgniter for my project, while I also use Django to learn Python. Why, because CodeIgniter seems to be easiest to learn, and have certain tolerance to my lazy and messy programming practice :) , tried CakePHP once, and I was lost in convention of plural singular naming… I notice Django has similar idiosyncracies, but I think I’m a bit more ready for it , after all, it’s in different language so everything is new ( I think it’s just me, it is hard to do things on convention, while I already get used to the way PHP done stuff, free and very tolerance to any kind of programming style )

Beware though, for those who just want to start learn programming, jumping into a framework to learn the language ( and learn programming in general ), is not recommended practice. I suggest learning from the very basic, the very fundamental concept like what is programming, what is procedural, OOP, functional programming, and so on. Otherwise, learning using a framework is like signing up to a flying school to learn to fly, but jump direct into the cockpit of a 747 to learn the “basic” of flying and being a pilot.