
Django 1.2 final out on Monday - agotterer
http://www.djangoproject.com/weblog/2010/may/15/release-schedule/
======
MWinther
Isn't it nice when you not only understand what an article is about from the
headline, but also get all the necessary information from it alone? Short and
to the point.

~~~
hassenben
It is also a change from the Facebook/Steve jobs reply/ipad articles.

~~~
code_duck
The ultimate would be if Adobe's CEO used an iPad to post a message on
Facebook which was leaked out because his privacy settings were changed when
he wasn't looking, and then Steve Jobs replied.

~~~
eam
And then Jobs "liked" Adobe Flash, and that too got leaked.

------
metamemetics
I'm not too excited because I always use the development version of Django.
Django-trunk is always surprisingly stable and hasn't given me any crashes.

~~~
rbanffy
Convincing a sysadmin that trunk is good enough for production is not always
easy.

~~~
scorpioxy
I'd say convincing a sysadmin that any software is good enough is not always
easy. Except for software that they don't have to support.

------
jmoiron
I've been watching this pretty closely; the multi-db in 1.2 alone makes it
worth the upgrade. It's about a 20 line backend router to get round-robin RODB
usage, which is very welcome for sites under high read loads.

A lot of systems have been redone to take custom XBackend classes (like the
CacheBackend before it, EmailBackend and others are now available), and in my
experience this is a good level of access for customizing parts of Django.

Lots of applications aimed at Django are already 1.2 compatible. They've
really spent a long time (a few months after freeze) making sure this release
is going to be solid, so I have high hopes.

------
code_duck
Well, this is good timing! We have a brand new Django project coming out next
week, and I'll have time to set it up with 1.2 from the start.

------
hassenben
Unfortunately, Django 1.2 has much more to learn from Symfony and Doctrine.

~~~
tome
Would you like to share what you think those things are?

~~~
hassenben
models/ORM Doctrine does better job. \- abstract model definition via yml file
\- multiple connections/databases/environments easily managed \- Cool API
(shortcuts, relations, custom tables etc.) + DQL for queries + support for
multiple DB engines

admin interface / CRUD interface \- they are easy to generate but easier to
customize under symfony. \- you can do 90% of the stuff via a config file
generator.yml. The rest is extending the generated code and customizing
queries to the model

configuration \- you can do more via the config files in Symfony and control
your project/applications vs Django.

forms system \- the abstract forms system comes with generated forms based on
your model, widgets with validations, binding with your model, customizable
renderers. You can have a custom CRUD interface up and running and linked to
your tables in less than a few minutes.

routing \- routing.yml and sfPatternRouting does a much better job without
using complex regex patterns \- Also, all routes are abstract, understandable
and well located.

testing \- Unit testing and functional testing is very well done. You can
launch specific tests, launch failed tests only, call your model/forms easily
because they are all objects, simulate a browser session etc. You can do all
that stuff with Django but will a lot more code.

framework vs API \- symfony abstracts anything useless as a plugin where
Django tends to integrate some of it in their Framework (CSV, PDF generators
etc.). That's a lack of vision.

Anyway, just a couple of points, I could go on and on ;-)

~~~
rbanffy
Having read your careful answer, I have to ask:

Have you ever used Django?

Because all the things you say are either wrong (multiple db engines, forms
for CRUD) or a matter of taste (the use of YAML, regexes for routing,
including batteries).

And, for the language thing, PHP is plain horrible.

~~~
scorpioxy
Agreed. Seems to me his answer is mostly taste rather than actual use.

The thing about "complex regex" struck me as odd. Why are his routing regexes
complex? If they're that hard to write, then I'd suggest he'd revisit the
routing scheme.

I haven't used Symfony before because I rather not develop in PHP unless I
really have to. Having said that, If i ever have to, I'd like to give Symfony
a try.

~~~
rbanffy
> I rather not develop in PHP unless I really have to

One would have to hold me at gunpoint to convince me to use PHP for anything
serious.

~~~
stevenwei
That's why I'm sticking with Python even if Django isn't a perfect fit for me.

    
    
      call_user_func_array(array($object,'method_name'),array($arg1,$arg2,$arg3)); 
    

is literally the most _retarded_ syntax I've ever seen for invoking an object
callback, and is indicative of PHP's roots as a non object oriented scripting
language.

~~~
code_duck
No doubt, the way PHP deals with functions is one of the worst parts about the
language. create_function and the rest have been made a bit better, though,
with the introduction of anonymous functions in PHP 5.3.

------
maxklein
I am pretty good at Django. But Django is really disappointing. I've switched
back to PHP. These are the problems:

1\. Django has a steep learning curve

2\. Django speeds up the start of the project, but afterwards development gets
slow. Real slow.

3\. Impossible to find django programmers that are not horribly expensive

4\. The django app model makes code a mess. It's a horrible model and does not
create reusable code.

5\. Django is instable. I have to restart my server ever minute when running
Django

6\. If you use something like Pinax, the amount of memory django consumes is
massive

7\. Your site may run fine with normal traffic, but increase to about 100 a
minute and the site starts giving bad gateway errors. Be CONSISTENT in your
errors, django

8\. The django people are slow. It has been years and django has barely
changed

9\. The templating scheme cannot be outsourced. You need a programmer to
understand it

10\. The nifty tricks they have to render your pages with shortcuts are very
difficult to understand. Really difficult to understand

Django is not a nice framework. I believed in django for two years, but I've
moved on. It's a good theoretical framework, but it's a terrible practical
framework.

~~~
andrewljohnson
I know you are a smart guy, but I totally disagree with almost everything you
said:

1\. Django has a steep learning curve

-> Django has a learning curve for hard stuff, like context processors, complex queries, fixtures, etc., but if you just want to make a simple website fast, then Django is easy. Python is simple to understand, Django is extremely well-documented for beginners, and there is a lot of out-of-the-box functionality to work with,

2\. Django speeds up the start of the project, but afterwards development gets
slow. Real slow.

-> I haven't found this to be the case. I have found that if you make poor design decisions at the beginning of a project, it will crawl to a halt regardless of the language or framework involved.

3\. Impossible to find django programmers that are not horribly expensive

-> Never tried, can't comment.

4\. The django app model makes code a mess. It's a horrible model and does not
create reusable code.

-> There's a difference between reusable code and reusable apps, and Django apps lead to the latter.

5\. Django is instable. I have to restart my server ever minute when running
Django

-> Not me... sounds like you don't use mem-caching.

6\. If you use something like Pinax, the amount of memory django consumes is
massive

-> Can you benchmark this against a RoR or Joomla... I think this is unsubstantiated.

7\. Your site may run fine with normal traffic, but increase to about 100 a
minute and the site starts giving bad gateway errors. Be CONSISTENT in your
errors, django

-> mem-caching!

8\. The django people are slow. It has been years and django has barely
changed

-> This is crazy. Django is being actively developed... 1.0, 1.1, 1.2 were all about a year apart and this involved massive improvements including stuff that personally mattered to me like geo-django being rolled into trunk.

9\. The templating scheme cannot be outsourced. You need a programmer to
understand it

-> I have yet to find a good designer I could outsource any sort of HTML/CSS that didn't cost an arm and a leg.

10\. The nifty tricks they have to render your pages with shortcuts are very
difficult to understand. Really difficult to understand

-> I don't understand what you mean here.

Django is not a nice framework. I believed in django for two years, but I've
moved on. It's a good theoretical framework, but it's a terrible practical
framework.

-> works on my box!

~~~
nir
(Not OP, but I do work with Django every day for the past couple of months):

1\. Django docs, while great compared to many other projects, are still quite
lacking, especially in examples.

3\. It's probably true, compared to the quantity of PHP coders out there. The
average Django dev is probably better than the average PHP dev - again,
quantity - but you don't always need the skills/costs of a really good dev.
Sometimes you just need someone to install & customize Wordpress.

5\. Not sure how memcache is related to that, but in any case - if your app
can use significant caching, framework/language performance isn't an issue to
begin with.

6\. I don't really get the Pinax - RoR comparison.

7\. See 5.

8\. Honestly, coming to Django from RoR, and knowing that they both got going
around the same time, I sometimes wonder what Django folks have been up to all
that time ;) (To be fair, there are definitely things Rails could learn from
Django)

9\. Templating was just a poor design choice for Django, IMHO. Instead of
using Python in the templates, as RoR/PHP do, you basically need to learn a
new single-use language, which in time will inevitably get more like a real
language anyway.

~~~
scorpioxy
Regarding 1, the documentation is quite clear to me. Then again, this is an
open source project and if you think that the documentation is lacking, then
by all means try and improve it. If not for your benefit, then for the benefit
of others like you. Speaking from experience, the core devs are very helpful
on the list.

Regarding 5, I think he means that the OP was not using the caching layer
which should drop the load significantly. I think he's hinting that the
slowdown is from the database rather than Django itself.

Regarding 9, that's a matter of taste. I find their template tags quite good
and I hate the tag soup with other systems. However, every templating system
is going to be a compromise. Personally, I have no idea how to design one that
would please both designers and programmers.

Your point 3 is just plain weird.

~~~
nir
> _Then again, this is an open source project and if you think that the
> documentation is lacking, then by all means try and improve it_

Sure, but when it comes to a making a choice between technologies, most people
would pick the one that already has good docs.

> _I think he's hinting that the slowdown is from the database rather than
> Django itself_

If that's the case, the OP wouldn't see much difference between Django & other
solutions.

> _Regarding 9, that's a matter of taste_

Absolutely, as well as workflow. I'd say if you work in a place where
designers write the HTML separately from developers, a templating language
makes sense. If developers do it, using the native language is preferable.

> _Your point 3 is just plain weird_

How's that? (1) PHP is far more common than Django. (2) As result, Django devs
cost more but have higher average skill. (3) Some web dev jobs are relatively
low skill, so it's useful to have someone who can do them cheaply.

~~~
mkramlich
When I hear someone complain that Django doesn't have good docs it comes
across to me like, say, I'm overhearing a teenager, who is seeing the Sears
Tower in Chicago for the first time, and he says, "Not tall enough. _Lame._ "

I have to laugh, really.

More perspective: I did graphics programming in an evil mix of BASIC and 6502
Assembly, way back long ago. Later I learned OpenGL -- a bit easier, but still
a lot of learning curve, math, non-ideal docs, etc. Then I learned PyGame --
muuuuch easier. Then I was in a club meeting and heard a developer (who of
course was pimping the latest foshizzle mine-not-yours graphics/game framework
du jour) say something like, "PyGame? Too much boilerplate, too complex, too
hard to learn." Left me speechless.

Perhaps in 50 years we'll reach a point where if anything that needs to be
done isn't fully automated and handed to us on a silver platter, people will
complain, "Needs a button I can push to make it happen. No button. _Lame._ I'm
going back to bed."

~~~
nir
I didn't complain about Django's docs. In fact I called them "great compared
to many other projects". I did note they aren't perfect yet. (Basically I have
the same opinion on Django as a whole)

Looks like this discussion is becoming another platform war, something I'd
hope HN & Django would avoid. FWIW, I also taught myself Z80 assembly back in
the day. So? If I had an alternative that was easier to learn, I'd definitely
take it. Unlike the 80s, users now are a download away from switching to a
different platform if they find it more friendly. I think Django's developers
actually realize that better than most.

