Will MEAN replace Django?

I love Django, perhaps mostly because I love Python but Django's ORM is lovable in its own right. Using it, fronted by Nginx, I've built sites ranging from the simple (like mine here) to the highly complex such as the (team built) liquid site.

Django is excellent for developing sites that present data where the presentation is largely static. The page templating and modelling capabillities make it very fast and productive when doing back end (server side) work.

It is not good for highly interactive, typically single page, applications. These are becoming increasingly common thanks to the likes of AngularJS making them easier than ever to implement.

Lately, I've found myself using AngularJS on projects because it facilitiates user interaction making data visualisation easier and more flexible.

This leads to my needing to add the very good rest framework to Django in order to supply the Angular javascript with json versions of my models.

Another thing I have to do a lot with Django applications is carry out data migrations to update the schemas to accomodate change. These are routine for me but they take time which can be frustrating.

I'm also programming in both Python and Javascript. Python is nicer to work with but one language would be better.

Enter MEAN

The MEAN stack keeps everything in Javascript (and JSON). It uses conventions to work around some of Javascripts' worst features and the result is a very interesting and efficient way to build potentially complex interactive web applications.

The links above give plenty of detailed introductions. I'm looking closely at using MEAN on future projects because it does away with most migrations, focuses development on a single language and facilitates the development of highly interactive applications.

Much as I hate having to focus on Javascript when Python is much the better language for coding, it looks likely to save substantial effort in the long term.


There are currently no comments

New Comment


required (not published)


Australia: 07 3103 2894

International: +61 410 545 357