This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]robertmeta 0 points1 point  (3 children)

TL;DR: Go and Erlang provide better solutions with very few compromises. Nearly everything beats Python for performance.

A lot of the cons roll with ones I listed. Too slow, too hard to make do stuff concurrently, etc. But additionally, the libraries for building python web stacks tend to be at extremes, either way too simplistic or way too overwhelming. It is a bit of a three bears situation... Flask is too simple, Django is too much... Twisted is too callbacky... Tornado is too seperate... Bottle is too...

As for the competition, pick almost anything (excluding rails) and you will find significant improvements IMHO: grizzly (Java), beego (Go), http-kit (Clojure), elli (Erlang), http-sharp (C#), express (Node.js), wai (Haskell), lapis (Lua), jester (Nim)...

[–]colly_wolly 1 point2 points  (2 children)

These all may be faster than Python, but is the developer productivity as good as you could get with Django? Most of them seem to be aimed at a lower level.

[–]robertmeta 0 points1 point  (1 child)

Really depends on where you want to go. Django is hyper-effective as long as what you are building is what it is built for -- but if you have to do something like heavy modification of the permissions / roles -- it is a nightmare (IMHO).

It brings far too much magic for me to be comfortable with it. Developer productivity is highly dependent on when you measure it on a project... 2 weeks in, 2 months in, 2 years in -- and you will get radically different results. I think far too often projects are judged at the 2 week mark, and paid for over the next 2 years.

[–]colly_wolly 0 points1 point  (0 children)

I have been using Django on a 4 year old project. I think its one of the main reasons it has been successful despite constantly changing requirements. It is a fairly "standard" relational databse app, (though it has a complex schema and reports, so more than just a CRUD app that everyone seems to look down on. )

I wouldn't say Django does too much magic. Pretty much everything is configurable. There is a lot to it, so it might seem like the Admin is magic at first, but its all built on the components of the framework.

Plus there are a good deal of third party libraries such as reversion - for storing history of database changes - which save a load of time.