Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Ask HN: What framework should I learn
2 points by jmuir on Dec 14, 2010 | hide | past | favorite | 5 comments
Ive been developing in C# and .NET MVC for the past few years and am looking for open source alternative. I have dabbled in php based framworks (mostly drupal and cake) but keep hearing about other frameworks such as rails and django and was wondering if there is anything out there that might have less of learning curve given my current background?


I'd suggest django, based on my experience.

About a year or so ago, I was looking for a framework, and narrowed my possibilities down to Catalyst (perl), Django (python) and Rails (ruby).

I was a perl guy, so ruled out Catalyst, as I wanted to learn a new language aswell, so Rails and Django was the two I had a look at.

Both had extensive documentation, I didn't know either language (though, I did dabble into python before, but that was mostly bugfixing some GUI apps, where I knew the toolking from another language anyway).

In the end, after playing with each for about a week, I went with Django, because the ORM seemed much friendlier, and I didn't really like how I'd have to install a bunch of gems if I wanted to play with the bleeding edge rails. Gems, which weren't packaged by my distribution..

With Django, however, I could just check it out from SVN, and that was that. Much easier.

While I understand that this is a non-issue for production apps, where one would bundle all the stuff with the application, when I want to play and learn something, I very much prefer that it works with stuff that my distribution has available. Or at least, there's very little extra I need to install.

As for the learning curve: it took me about two hours to start work on the project I wanted to do (with Django, it was a bit longer with Rails), and I didn't know neither the framework, nor the language all that well before that.


My current favourite for quick prototyping is Flask. A minimal Flask app is just a few lines of Python, plus some sensible defaults, which is great when you just want to throw something up quickly as proof of concept. There's a set of handy extensions when you need to do more, such as ORM stuff.

It's also pretty easy to integrate with the Google App Engine, which I personally don't like (I mean, Python 2.5 ? It's nearly 2011 already !) but has its uses.

For larger projects (especially client-related) it's definitely Django, just for the number of features out of the box (such as the admin). If you're just starting in Python you might find Flask (or similar micro-frameworks such as Bottle or web.py) easier to get started with, as there's quite a learning curve with Django before you really get to know the framework and it's better (though not required) to have a good grasp of Python first.

It's been bread and butter for me for the past couple of years though and I'd definitely recommend it for "serious" work.

If you're used to C# and want something a bit more familiar (i.e. Java) Play is quite interesting and quite unlike the typical over-engineered Java framework.

Outside of Python, for something more esoteric, I'm starting to get into Clojure and the Compojure/Ring stack - I love the concepts, but my mind isn't quite in functional mode yet.


Thank you. I had never heard of Flask and Play until now. Play definitely looks like something that I could pick up.


Rails is easy to pick up and well documented. Python is not too hard either. Give each an hour of your time, then choose the one which you like best.

Alternatively, if you want to go more bleeding edge, have a look at node.js, it's the hot potato at the moment.


If you're open to anything and everything, give Google's App Engine a try. Their Python implementation is pretty quick and easy to pick up, and you can't beat the free price of hosting :)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: