Forums

Python 3.4 availability?

Hi,

Python 3.4 has some very nice statistics capabilities. When might it be available here, or is it already?

Thanks!

-greg

It's on its way -- not the next release (which should be later on this week or early next) but the one after that. Probably a few weeks out.

Ok, thanks!

Any update?

None yet. It's in our current iteration, so it will definitely get done. It just might take some time.

One question for anyone who's interested: should we keep support for Python 3.3 web apps? As we see it, there are three possibilities:

  • Release Python 3.4 without support for web apps. This feels like it would be leaving the job half-done.
  • Release Python 3.4 with web app support. When people create a new web app, we offer the choice of Python 2.7, 3.3, or 3.4. This feels nice and complete, but if Python 3.4 offers everything Python 3.3 does, perhaps it's making things overly complicated. Three versions of Python is OK, but what happens when 3.5, 3.6, 3.7, etc. come out?
  • Release Python 3.4 with web app support. When people create a new web app, we offer the choice of Python 2.7 or 3.4. Existing Python 3.3 web apps would continue to work, and would continue to use Python 3.3, but you wouldn't be able to create new ones using 3.3.

Any thoughts?

I propose a 4th possibility, as a compromise - offer 3 options: Python 2.7, 3.X-1, 3.X, where 'X' is the latest you support.

So soon it would be:

Python 2.7, 3.3, 3.4

and at some future date:

Python 2.7, 3.4, 3.5

Interesting -- that would be doable. Would that be a big win? We're still back in the Stone Age here at PythonAnywhere HQ and almost all of our code is 2.7, so I don't think we have a good intuition for how quickly new versions of Python 3 get access to all of the useful modules. If as soon as 3.5 comes out, it will have access to everything that 3.4 had, then keeping support for 3.4 feels less important. But if it takes week or months for things to be ported, then obviously it's a different matter.

@giles Probably not a massive win, but with regard to your third option, I'm thinking of a use case where someone using 3.3 wants to investigate a problem and create a new 3.3 test app to help - valid?

I guess there's a spectrum from 2.7 to early (?) adopters of 3.4. Personally I prefer to use 3.3 so far and I'm only using 2.7 for web2py. I haven't started at all with 3.4, as I really don't want to waste time hunting for 3.4-ready builds, and in that sense the longer one leaves it, the better.

I suspect a lot of other people are behind the curve, e.g. because they're busy doing other things, so I would have thought a fairly long overlap / transition would be good, to try to track what folk are actually using.

OK, that makes sense -- thanks. I do like the balance your idea strikes between the bleeding edge and keeping stuff that works.

I like the 2.7, 3.(n-1), 3.n option. That way if you find yourself on 3.(n-1) you have a while to test on 3.n before 3.(n+1) comes out and you more or less are required to move.

(If I have a vote, I vote for that one. :-) )

Thanks

-greg

that makes sense greg... Will keep y'all posted.

Those two are a lot more seasoned w python than I am, so I may not have a useful input, but here it is anyway:

I'm of that mind that when I develop I want to use a platform that works regardless of the language I'm using, which is why I started my learning app in 2.7 instead of the 3.3 that was avail. 2.7 has been around longer, everything works with it etc.

That being said, if I was testing new capabilities and PA didn't offer any way for me to get the newest versions I might be put off on the platform as a whole. So I think I agree w greg. Keep a 'stable' and a 'test' release always available with the option of whatever 'current' is at the time. Meaning you would always have 3 versions, but the second two would be rotated out until 'stable' finally becomes deprecated/obsolete, then it too would be updated. At least in terms of creating NEW apps.

How you would decide that timeline, though, I don't know.

OK, Python 3.4 is now live -- you can create web apps with Python 2.7, 3.3 or 3.4.

When 3.5 comes out we'll probably disable 3.3 for new web apps but keep existing ones running.

When you do that can you include Django1.7 as a native app type? It's got some pretty major database improvements over 1.6. They essentially embedded south.

Sure. And hopefully we'll be able to offer Django 1.7 for all Python versions before then -- right now we're sticking with the older versions so that we don't break existing web apps, but we're planning to make that switchable on a per-account basis.

BTW if you want to use 1.7 right now you should be able to do it with a virtualenv.

Sweet you guys are the best.

Ya I'm familiar w virtenv. Was using it w 1.6.