Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Should I wait for Django to start supporting Python 3?

I have a website idea that I'm very excited about, and I love Python. So, I'm interested in using Django. However, I started learning Python in version 3.1, and Django currently only supports various 2.x versions. I've searched for information about when Django will start supporting Python 3.x, and gotten mostly articles from a year or two ago that say it will take a year or two. Meanwhile, the Django FAQ says that there are no immediate plans.

I'm reluctant to build in an old version of Python and then either be stuck with it or go through a huge ordeal trying to migrate later. My original solution to this was to start learning PHP instead and then choose a framework, but as it turns out I don't really like PHP. Django it is, then.

If I decide to wait for a 3.x-compatible version, I can teach myself more front-end web development (and more Python) in the meantime. I've only been at this for a few months so I have a lot to learn. But I don't want to wait forever, and I realize that even after a 3.x-compatible version comes out it will take a while for third-party APIs to catch up. What do you all recommend?

like image 318
user460847 Avatar asked Nov 24 '10 18:11

user460847


3 Answers

No. Don't wait.

Why? Pretty much all django libraries are written for Python 2.x, and if you ever plan on using any of them with Python 3 with the next major release of Django then you'll be waiting not 1 but 3-4 years when everyone starts converting their code.

In this time, you could have already mastered django and could have worked and launched many sites, could've got a Django gig, etc.

Start immediately and don't postpone!

like image 82
meder omuraliev Avatar answered Sep 30 '22 19:09

meder omuraliev


Python 2 will still live for a very long time. Actually, there's no really good reason to use Python 3 right now unless you need Python3 features which are not available as future imports and know that you won't ever need to use 3rd party modules which might not be Python3-compatible.

So the best solution is doing your app now using Python 2 instead of waiting; especially if the app will be useful for you now.

like image 32
ThiefMaster Avatar answered Sep 30 '22 20:09

ThiefMaster


I recommend you learn the frameworks on the old version now, and let 2to3 figure it out when the time comes.

like image 40
Ignacio Vazquez-Abrams Avatar answered Sep 30 '22 18:09

Ignacio Vazquez-Abrams