[BioPython] Python 3
Kevin Teague
kteague at bcgsc.ca
Tue Apr 8 19:35:36 UTC 2008
>
> This is similar to what the bioperl devs think will eventually
> happen with bioperl and perl 6 (which, like python 3.0, is pretty
> much a new language). Not much one can do about it, but it does
> give u the opportunity to rethink implementations. In the
> meantime, bioperl/perl5 will be around for a while.
Python 3 and Perl 6 are similar in that they break backwards
compatability, but beyond that Perl 6 is a complete rethinking and
reimplementation of the entire language. Python 3 is much smaller in
scope, it's primary goal is to clean-up early design warts in the
langauge. The only syntactically significant change is the
replacement of the print statement with a print() function. Most of
the other changes are fairly under-the-hood. Only one string type
(unicode) instead of two (unicode and ascii), only one integer type
(int) instead of two (ing and longint), etc.:
http://docs.python.org/dev/3.0/whatsnew/3.0.html
>
> On Apr 8, 2008, at 12:29 PM, Iddo Friedberg wrote:
>
>> Python 3.x is almost a new language. Thus I expect that if there
>> will be a
>> Biopython 3.x, it will be developed from the ground up, by
>> enterprising
>> souls woho would like to see that happen. But Python 2.x will
>> still be
>> around for a while.
>>
Note that Guido van Rossum and others have been encouraging projects
to port to Python 3 *without* changing the APIs of the project. The
goal is to make it possible to support a Python 3 port from a Python
2 source tree using the 2to3 tool. API changes are encourged to be
made in Python 2, before porting (http://www.artima.com/weblogs/
viewpost.jsp?thread=227041).
>> The powers-that-be in Python are trying to make the whole process
>> of 3.0
>> porting as gentle as possible. Thus Python 2.x is not going away
>> anytime
>> soon and 2.x versions will be around for a while. Also, 2.6 will
>> be in a
>> sense forward compatible.
>>
Yes, Python 2 will not be going away anytime soon. The changes
between Python 2 and 3 aren't *that* major either, so for people
trying to just get work done, there is really no hurry to get to
Python 3. Python 3.0 will also be a bit of an early adopters release,
it's expected that a 3.1 and perhaps 3.2 release will follow in
fairly short order after Python 3, which is probably when larger
projects with library dependencies such as BioPython will more
realistically consider a port. I would guess it would be another 3 or
4 years from now before there are a significant amount of useful
libraries that are only being maintained for Python 3 that one will
have a pragmatic motiviation for porting.
More information about the Biopython
mailing list