What web framework should someone new to web development learn?
Any framework that follows what I call “The Law of Least Googling.” This law states that a tutorial will not let a learner have to Google anything for as long as possible and for as little as possible.
I’ve followed the Django Tutorial all the way to the end. I did not use Google once, which means Django follows The Law of Least Googling.
Because of this, I am now recommending that any person new to web development use Django.
I used to think Rails was the way to go but because of the dependency mess with having to use Rake 0.8.7 to get RSpec working correctly, I am less inclined. Rails is a pain to install on Windows. You also have to google how to get the MySQL gem installed. This is not ideal when SQLite can’t get installed for some reason.
But once you get Rails running it’s great, but as a newbie, I wouldn’t be surprised if lots of folks already gave up.
Rails isn’t that bad. It hits these 3 snags:
- Issues with SQLite3 or MySQL gem install
- Creating sessions not working correctly with Rake 0.9.2. But There’s a patch.
- It’s a pain to install on Windows, but I’m not really a Win Fanboy.
Now if we’re talking LAMP, then forget it. It’s easy to get going with something like MAMP, or WAMP, but the frameworks simply don’t have that install and learn to code feel that Rails or Django has. You really cannot use a PHP framework without having to resort to Google very early. For example with CodeIgniter I have to figure out how to point my doc root correctly via Googling.
My main take away is that if you want to learn to code on the web do it on Django. Python is the language that powers Django. There’s also a great Python tutorial to get you started.
One reply on “Django Follows the Law of Least Googling”
2012 maybe for django. Plate is full right now.
Zed is right about process killing creativity… and about process helping execute on creativity. I see it (philosophically) as a yin-yang system of building processes to free myself from thinking about… process.