[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