Dotan Cohen wrote:
> The little programming that I need I have been able to get away with
> silly php and bash scripts. However, my needs are getting bigger and I
> see Python as an ideal language for my console apps, and the
> occasional GUI that I might write for the wife. However, with the
> coming of Python3 and the new syntax, is this a bad time to start
> learning Python? I don't want to learn 2.x if 3.x will replace it, and
> not be compatible, in one year. I know that I can continue using 2.x,
> but maybe I should wait until 3.x is released to start learning? What
> does the community think?

Don't wait. Python 2.5 is very useful today. Python 2.x will be viable 
for years. Python 2.6 is not even scheduled for release until this 
summer and it will be maintained long after that. PEP 3000 says,

"I expect that there will be parallel Python 2.x and 3.x releases for 
some time; the Python 2.x releases will continue for a longer time than 
the traditional 2.x.y bugfix releases. Typically, we stop releasing 
bugfix versions for 2.x once version 2.(x+1) has been released. But I 
expect there to be at least one or two new 2.x releases even after 3.0 
(final) has been released, probably well into 3.1 or 3.2. This will to 
some extent depend on community demand for continued 2.x support, 
acceptance and stability of 3.0, and volunteer stamina."

http://www.python.org/dev/peps/pep-3000/


> That asked, I've heard that 2.6 can be configured to warn when using
> code that will not run in 3.x. Is this correct? How is this done? I'd
> like to do it on a per-file basis, so that I will only need to run one
> version of python on this machine. I want my own apps to throw errors,
> but not other python apps on this system. Is there some error-level
> code that I can run?

There is a command-line switch in 2.6, -3, which will enables warnings 
about features that will be removed in Python 3.0, and some features of 
Python 3.0 are being back-ported to Python 2.6:
http://docs.python.org/dev/whatsnew/2.6.html#python-3-0

There is also a tool being developed (2to3) to convert Python 2.x code 
to 3.0 semi-automatically:
http://svn.python.org/view/sandbox/trunk/2to3/README?rev=57919&view=markup

However, the goal of these efforts, IIUC, is *not* to allow a single 
script to run in both 2.6 and 3.0, it is to enable easy porting from 2.6 
to 3.0. In particular, my understanding is that the -3 warnings will 
warn of constructs that cannot be correctly converted by 2to3. More 
details here:
http://www.python.org/dev/peps/pep-3000/#compatibility-and-transition

So I would say the outlook for 2.6 is better than you think but the 
outlook for compatibility is worse.

Kent
_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to