tags:

views:

1783

answers:

7

Will what I learn transfer easily to 3.0, or will there be a lot of wasted effort?

+5  A: 

This applies to almost any language. The code you're going to find for years to come will be in the current version, so learn that. If you have the luxury of completely new greenfield development, choose the latest versions that you can. It's not often that I get to do that though, and I'm still astonished how much of the world depends on technology, language versions, or hardware from 10 years ago.

But, Python isn't going to be radically different in Py3k. It's still going to be Python, so a lot of the concepts, even if not all of the syntax, of the current Python will help you.

brian d foy
+6  A: 

You could just START with 3.0: http://www.python.org/download/releases/3.0/

From the link: "Python 3000 (a.k.a. "Py3k", and released as Python 3.0) is a new version of the language that is incompatible with the 2.x line of releases. The language is mostly the same, but many details, especially how built-in objects like dictionaries and strings work, have changed considerably,

Corey Trager
I agree, if your not planning on delivering any production code, and you want to learn out of personal interest go and learn 3.0 now.
monkut
+2  A: 

Yes, it will transfer. There's also already a HUGE pile of Python <3.0 code around that won't just disappear. The 2.x series will be around for a long time.

Tony Arkles
+2  A: 

Python 2.6 is intentionally compatible with 3.0. It's the bridge version, containing some older features, access to newer features and diagnostic tools to help you locate the deprecated features.

Learning with 2.6 is a fine way to get ready for 3.0.

S.Lott
+10  A: 

Python 2.6 is fine, like said by others. Notice that you can run scripts in a compatibility mode with the python2.6 shell which will give you warnings about features removed in python3.

$ python2.6 -3 yourfile.py

The -3 is the option making it show warnings when a feature will be gone.

There will be a few changes between versions (as an example, how 'print' will behave), but most of the code will be fairly easy to port, especially if you test it with the compatibility option on.

I GIVE TERRIBLE ADVICE
A: 

3.0 is exactly how it sounds, an improvement over the older version. They aren't going to change the entire language on you, just add some new features and modify some of the existing ones. Of course upon full non-beta release of 3.0, you can see which features have been changed and implement them accordingly into your coding habits. Or just start with the beta like other users suggested ;D

John T
Erm, no, Python 3.0 has been designed from the ground up to clear up some warts in the language, and so *is not* 100% compatible with precious code. It's not going to be a huge step to migrate, but it's also not going to be a pure walk in the park.
James Bennett
What in Python 3.0 is going to require radical jettisoning of knowledge gained of 2.6?
Matthew Trevor
A: 

Ive started with 3.0 recently, and i was asking myself the same question as you are, after searching the net for a couple of hours i decided to go with 3.0, however, i am intending to learn the language for creating small (relatively) standalone aplications for my proffesional work, mostly for solving mathematical problems ( civil engineering, Im 3. year now ) so i was not concerned abaut "comercial side" of that decision.

If you are in the same "interest group" as I am, I would suggest you to go with 3.0

good luck