Django 1.4 Beta 1 Release
djangoproject.com
djangoproject.com
Here is a direct link to the changes: https://docs.djangoproject.com/en/dev/releases/1.4-beta-1/#w...
However, if you're stubborn enough to power through (and not afraid to roll up your sleeves and manually correct any errors you encounter (which is actually quite a good way to learn the nuances of a new language)) your reward is a language that is more forward-thinking and consistent. Sometimes it's worth the frustration (but only sometimes :) ).
Feel free to use 3.X, but don't expect a lot of the python libs that make it such a great language to hit the ground running in to work.
And Python 3 actually is a reasonable decision for a beginner. It is more consistent and does a better job of exposing the 'right' way to do many things.
Python 2 is reaching the end of its life and has little purpose except to support legacy libraries and apps and ease the transition.
It is not the users of Python 3, but people insisting on using Python 2 to the EXCLUSION of Python 3, who are fragmenting Python
However we decided not to merge this in for 1.4 for a couple of reasons:
1. As you might imagine, it's a big patch, and potentially destabilizing. Although it's in a good state now, it go there fairly late in the 1.4 cycle. If we'd merged it there wouldn't have been enough time to be sure we didn't break anything for 2.X users. So we held off the merge to make sure that 1.4 was as stable as possible.
2. The approach Vinay took (and the one we're sticking with) is a single-source approach. That is, a single source tree to support both Py2 and Py3, no 2to3 translation needed. The difficulty of this approach is directly proportional to how far back in the 2.X line you want to go. We promised that Django 1.4 would support Python 2.5, but single-source including 2.5 is a lot harder (and makes MUCH uglier code) than single-source for 2.6+. So we made the call to make the Py3 support depend on dropping support for 2.5, which we'll do for Django 1.5.
So, all in all, time timing wasn't right for Py3 support in 1.4, but it is right for Django 1.5. Which is why I expect to see this branch merged shortly after the final 1.4 release.
Why not simply switch to N^HJinja2? (Okay, probably not that simple, but still.)
It's jinja2, not ninja. If you want, you can use Jinja2 in your projects, but the other plugins you use will most likely be using django templates.
Coffin ports some template tags as well: https://github.com/coffin/coffin/
That said, PyPy is 16× times faster rendering Django templates, which probably makes Jinja2's code-generation cleverness moot: http://speed.pypy.org/timeline/?exe=1&base=2%2B35&be...
If you have to ask why Django would not switch to (or even make any effort to allow the use of) any externally developed tool in place of its own, you might not have noticed that almost everything in Django is self-developed and that the officially given reason is that they are "perfectionists. with deadlines."
The reason why not is the Django project's philosophy
Jinja2 follows this same philosophy of a sandboxed engine and the syntax matches django's almost exactly (it was actually based on django templates). The designer wouldn't even notice he is dealing with a different templating language.
So, it looks the same from a designer perspective, is at least an order of magnitude faster and is much simpler to extend. So, why not switch?
https://docs.djangoproject.com/en/dev/releases/1.4-beta-1/#a...
#1744 was a bug in contrib.comments and was fixed 6 years ago.
No group by means that a Mr. Blair's project fails, and he gets fired, and loses his health insurance. Combined with his pre-existing medical conditions, he cannot get another job nor afford treatment, and dies a slow death of, say, bonitis.
Literally dead, for lack of a "group by" in an ORM.
Judging by their published release timeline, 1.4 is set to be released the first week of March, I dont think a fix will make it in to 1.4. :[