December 05, 2008

Python 3.0 upgrade incompatible with earlier versions

The Python Software Foundation is working concurrently on two upgrades to the core language and anticipates most people will stick with the Python 2 line for years

Python 3.0, a new version of the language released earlier this week, has incompatibilities with the 2.x line, according to the Python Software Foundation.

While saying the language is mostly the same, the foundation said details such as how built-in objects like dictionaries and strings work "have changed considerably and a lot of deprecated features have finally been removed."  The standard library also has been reorganized to make it more accessible and discoverable.

[ Learn more about the Python Software Foundation's plans for the transition between versions of the Python core  language. ]

In a blog posting on Thursday, Guido van Rossum, lead developer of Python, called the 3.0 release "the first ever intentionally backwards incompatible Python release."

"There are more changes than in a typical release, and more that are important for all Python users. Nevertheless, after digesting the changes, you’ll find that Python really hasn’t changed all that much -- by and large, we’re mostly fixing well-known annoyances and warts, and removing a lot of old cruft," van Rossum said.

Interviewed Friday morning, foundation representative David Goodger said "We fixed problems so we can go forward and add features more easily in the future without having to work around previous bad decisions."

A transitional release toward the 3.0 platform, Python 2.6, was released in October and updated with bug fixes in Python 2.6.1 this week. A Python 2.7 release also is planned, and the foundation anticipates most people will stick with the Python 2 line for years, Goodger said.

First released in 1991, Python is a general purpose language that has been popular in Web development. Among the new features in Python 3.0 are simplified rules for ordering comparisons, replacement of the print statement with a print function, and use of views and iterators instead of lists. Syntactic changes also have been made.

Python 3.0 uses concepts of text and binary data instead of Unicode strings and 8-bit strings. Text is Unicode but encoded Unicode is represented as binary data.

"As a consequence of this change in philosophy, pretty much all code that uses Unicode, encodings, or binary data most likely has to change," according to the foundation.  But the change is for the better, the foundation said. With Python 3.0, the default way to handle text is to use Unicode throughout, Goodger said.

Featured with Python 2.6 is a tool called 2to3, to translate Python 2.6 code to Python 3.0. That tool will be improved along with the Python 2 line, Goodger said.

Python 3.0 is downloadable here.

Paul Krill is an editor at large at InfoWorld.
Close

On Twitter now

Application development

Powered by Twitter

White Paper

D2D Virtual Tape Library Replication Primer

This whitepaper explains the terminology and concepts behind Data Replication technologies and establishes some sizing rules through worked examples. Learn the new paradigm in disaster tolerance—protect data anywhere.

Download now »

White Paper

An Alternative to Virtualization for Datacenter Cost Savings

Server virtualization is a popular option for dealing with mounting datacenter costs. Another equally promising approach is the use of an Application Delivery Controller. Citrix NetScaler provides a low-cost way for organizations to reduce their server count and accrue cost savings from a reduction in space, cooling, power and personnel.

Download now »

White Paper

Why Your Firewall, VPN, and IEEE 802.11i Aren't Enough to Protect Your Network

The emergence of WLANs has created a new breed of security threats to enterprise networks.

Included in HP ProCurve WLAN solutions is security technology that alleviates threats from WLANs through:
* Monitoring wireless activity inside and out of the enterprise
* Classifying WLAN transmissions into harmful and harmless
* Preventing transmissions that pose a security threat to the enterprise network
* Locating participating devices for physical remediation

Download now »

White Paper

Bringing the Edge to the Data Center

Effectively address data protection challenges, implementing solutions that help store and protect business–critical data while cutting costs and improving efficiency and reliability.

Download now »

Sign up to receive InfoWorld Resource Alerts

Subscribe to the Developer World Newsletter

Receive a weekly roundup about the art and science of software development.

©1994-2009 Infoworld, Inc.