The real problem with Python 3 - no business case for conversion(was "I strongly dislike Python 3")

J

John Nagle

David Cournapeau said:
I think one point which needs to be emphasized more is what does
python 3 bring to people. The" what's new in python 3 page" gives
the impression that python 3 is about removing cruft. That's a very
poor argument to push people to switch.

That's the real issue, not parentheses on the "print" statement.
Where's the business case for moving to Python 3? It's not faster.
It doesn't do anything you can't do in Python 2.6. There's no
"killer app" for it. End of life for Python 2.x is many years away;
most server Linux distros aren't even shipping with 2.6 yet. How can a
business justify spending money on conversion to Python 3?

If Python 3 came with Unladen Swallow, and ran several times
faster than Python 2.x, there'd be a strong business case for
conversion. Especially for large sites with racks of servers
grinding through slow CPython code. But it looks like Unladen
Swallow will be available for 2.6 before it's available for 3.x.
So that's not a selling point for 3.x.

Python 3 is a nice cleanup of some legacy syntax issues. But
that's just not enough. Perl 6 is a nice cleanup of Perl 5, and
look how that went. Ten years on, it's not even mainstream, let
alone dominant.

This has all been said before. See "Python 3.0: What’s The Point?"
from December 2008:

http://jens.mooseyard.com/2008/12/python-30-whats-the-point/

Not much has changed since then.

What I'm not seeing is a deployment plan along these lines:

1. Identify key modules which must be converted before Python 3
can be used in production environments.

2. Get those modules converted to Python 3.

3. Put together a distribution for the major platforms (at least
Linux and Windows) with builds of those modules. This
could be done on PyPi, which is at present is mostly a link
farm, not a repository.

4. Get some major distros, like Debian and ActiveState, to
include Python 3, as "python3", not as the primary Python,
so there are no conflicts. (Debian already has a formal
policy to keep Python versions separate.)

5. Get at least two major hosting services to put up Python 3.

6. Get at least two popular end-user programs (not modules) to
support Python 3.

7. Publicize some success stories.

Unless the Python 3 enthusiasts get their act together and work much
harder on providing an easy transition experience, it's not going to
happen.

John Nagle
 
T

Thomas Jollans

What I'm not seeing is a deployment plan along these lines:

1. Identify key modules which must be converted before Python 3
can be used in production environments.

That depends VERY strongly on the environment in question.
2. Get those modules converted to Python 3.


The stdlib is there. The rocky bits are being fixed all the time. The
other important modules all have strong development communities.
Upstream numpy works with Python 3 already. (no release yet) That
enables SciPy to update, which they will do.
PyGObject is also working on Py3 support.
3. Put together a distribution for the major platforms (at least
Linux and Windows) with builds of those modules. This
could be done on PyPi, which is at present is mostly a link
farm, not a repository.

The use cases for Python being as diverse as they are, this is utter
nonsense. Also, I myself see no benefit in making PyPI a mirror of
everything, as opposed to a useful index of packages that you may or may
not want to use.
4. Get some major distros, like Debian and ActiveState, to
include Python 3, as "python3", not as the primary Python,
so there are no conflicts. (Debian already has a formal
policy to keep Python versions separate.)

Current Ubuntu releases include Python 3.1 as /usr/bin/python3. So does
Debian (not sure about stable at this point). I'm sure the other major
Linux distributions are doing the same thing. It's happening!
5. Get at least two major hosting services to put up Python 3.

Apparently, some hosters already support Python 3. Web development is a
bit of a weak spot at the moment though, and this is problematic, due to
WSGI not being quite unicode ready.
6. Get at least two popular end-user programs (not modules) to
support Python 3.

7. Publicize some success stories.

Unless the Python 3 enthusiasts get their act together and work much
harder on providing an easy transition experience, it's not going to
happen.

It's not happening fast, it probably can't, but it *is* happening.
Software distributions are including Python 3, and popular
modules/packages are starting to support it. Other software is going to
move on in its own time.
 
C

Carl Banks

    This has all been said before.

Yes, we know. And when no one did anything about it the first dozen
times it's been said, it wasn't because we didn't hear it, it was
because we didn't care. We still don't care now, and won't care no
matter how many times you repeat it, because it's simply wrong. So,
please do everyone a favor, and stop wasting your own time, and stop
repeating this.


Carl Banks
 
J

John Nagle

webfaction.com has python3.1

WebFaction's big thing is that they have a really good system for
installing anything the user wants. They're doing semi-virtual machine
hosting, where each user sees a somewhat different environment, but
doesn't have their own copy of the Linux kernel. That's a nice
advance in server management.

Any user can install Python 3.x, but it's not there by default. See:

"http://blog.webfaction.com/python-3-0-is-here"

If that approach catches on, Python 3 deployment will be much easier.
But for now, only a few smaller players like WebFaction are using it.

John Nagle
 
S

Steven D'Aprano

Where's the business case for moving to Python 3? It's not faster. It
doesn't do anything you can't do in Python 2.6. There's no "killer app"
for it. End of life for Python 2.x is many years away; most server Linux
distros aren't even shipping with 2.6 yet. How can a business justify
spending money on conversion to Python 3?

If you (generic you, not John specifically) can't, then don't. It's as
simple as that. Stick with 2.6, or 2.7, or even 1.5 if that's the version
you're using. A client of mine is still using 2.3. That's okay. It's
allowed. If your business case is best satisfied by staying with 2.x
until the sun burns out, more power to you.

Just don't expect security upgrades (let alone functional upgrades) for
more than a few years. If they are important to you, then *that's* your
business case for upgrading.

But if you're starting a new project, there is no cost of conversion.
 
A

Aahz

Any user can install Python 3.x, but it's not there by default.

Yes, it is. I logged into my webfaction shell, typed python3.1, and got
a standard Python prompt, without doing anything whatsoever to make
Python 3.1 available.

Is there some reason you're using a broken URL format?
If that approach catches on, Python 3 deployment will be much easier.
But for now, only a few smaller players like WebFaction are using it.

In the hosting space that makes Python available, WebFaction is hardly a
smaller player.
 
T

Terry Reedy

That's the real issue, not parentheses on the "print" statement.
Where's the business case for moving to Python 3? It's not faster.
It doesn't do anything you can't do in Python 2.6.

False. One cannot run code in 2.6 that depends on bugfixes in 3.1. Nor
can one run code with unicode identifiers.

The exclusive new features in 3.1 and 3.2 are less than they might have
been because the developers expended extra effort, now ended, to
backport new things developed for 3.x. (One result was some neglect of
the stdlib, which is now the focus of efforts.) One reason was to make
porting to 3.x easier should one wish to do so. The other reason was to
make some thing available should one wish not to do so. Using that extra
effort as a reason to put down 3.x is not very gracious.
There's no "killer app" for it.

For some, unicode identifiers are 'killer reason' to use 3.1.

Anyway, can you name me a "killer app" for each and every version of 2.x?
> End of life for Python 2.x is many years away;

Given that 1.x is still used, so what?
most server Linux distros aren't even shipping with 2.6 yet. How can a
business justify spending money on conversion to Python 3?

How can a business justify spending money on conversion to 2.0, 2,1,
2.2, 2.3, 2.4, 2.5, 2.6, or soon, 2.7? Some cannot for some projects and
have not.

Enough with strawman arguments against claims no sensible person has
made. Python3 was developed for new Python programmers and current
programmers who wished to add or switch. It was developed for new code
and old code that would benefit from the changes.
 
N

Nobody

That's the real issue, not parentheses on the "print" statement.
Where's the business case for moving to Python 3?

If you're going to be doing a lot of Unicode text processing, I would
expect that using Python 3 would make the task somewhat simpler.
 
D

D'Arcy J.M. Cain

Not according to Vex's published package list:

http://www.vex.net/info/tech/pkglist/

As it says on that page it may not be up to date. Look at the
generated list link. I guess I should update the static page as well.
"vex.net" isn't exactly a major hosting service.

OK, I'll give you that. It is on the backbone of the net at 151 Front
Street in Toronto, has almost 100% uptime and uses high speed servers
but we don't have 15 layers of bureaucracy between the owner and the
user and I certainly know of no "real" hosting provider that invites
all their clients out for dinner once a year. And how can we be a real
ISP when the president knows most of his clients on a first name basis?

I know what being "major" means to the owners and stockholders but what
features of being major matter to the client?
 
S

Steven D'Aprano

Hold on. That *is* the generated list and Python 3.1 is on it. We have
both 2.6 and 3.1. The 3.1 version is listed right below the 2.6 one.
The page is generated from pkg_info(1) and includes everything we have
installed from FreeBSD ports.

Pfft! Facts! You can prove anything you like with facts!
 
A

Aahz

OK, I'll give you that. It is on the backbone of the net at 151 Front
Street in Toronto, has almost 100% uptime and uses high speed servers
but we don't have 15 layers of bureaucracy between the owner and the
user and I certainly know of no "real" hosting provider that invites
all their clients out for dinner once a year. And how can we be a real
ISP when the president knows most of his clients on a first name basis?

vex.net is Canada's Panix. ;-)
 
J

John Nagle

Hold on. That *is* the generated list and Python 3.1 is on it. We
have both 2.6 and 3.1. The 3.1 version is listed right below the 2.6
one. The page is generated from pkg_info(1) and includes everything we
have installed from FreeBSD ports.

The base Python 3.1 is installed there, but without any modules.
Below is the list of Python 2.6 modules installed. Search that
page for "py3", and you get nothing.

On a hosting service, a raw Python with none of those modules isn't
very useful.

This is what I mean about Python 3 not being ready for prime time.

John Nagle

Python packages on Vex:

py26-MySQLdb-1.2.2 Access a MySQL database through Python
py26-PyGreSQL-4.0,1 A Python interface to PostgreSQL, both classic and
DP-API 2.0
py26-gdbm-2.6.4 Python bindings to the GNU dbm library
py26-psycopg-1.1.21_1 The high performance Python adapter for PostgreSQL
py26-pyPgSQL-2.5.1_3 A Python DB-API 2 compliant library for using
PostgreSQL databases
py26-rrdtool_lgpl-1.0b1 Python interface to RRDTool, the graphing and
logging utility
py26-sqlite3-2.6.4_1 Standard Python binding to the SQLite3 library
py26-asn1-0.0.9a_1 ASN.1 toolkit for Python
py26-cElementTree-1.0.5_1 A fast C implementation of the ElementTree API
py26-cheetah-2.2.1 HTML template engine for Python
py26-elementtree-1.2.6_1 Container for hierarchical data structures
written in Python
py26-setuptools-0.6c11 Download, build, install, upgrade, and uninstall
Python packages
py26-statgrab-0.5 A set of Python bindings for libstatgrab
py26-twisted-8.2.0 Metaport of Twisted, an event-driven networking engine
py26-twistedCore-8.2.0 An asynchronous networking framework for Python -
Core module
py26-twistedFlow-8.0.0 Generator based asynchronous result flows
py26-twistedRunner-8.2.0 Runner has process management, including an
inetd replacement
py26-zopeInterface-3.5.2 Zope.interface package from Zope 3
py26-twistedMail-8.2.0 An SMTP, IMAP and POP protocol implementation
with clients and servers
py26-twistedPair-8.0.0 Twisted Pair can do low level TCP work

py26-twistedWords-8.2.0 Twisted Words has more chat than you can handle

py26-snmp-3.4.4 SNMP framework for Python
py26-twistedSNMP-0.3.13 Twisted Python framework for doing SNMP stuff
news
py26-twistedNews-8.2.0 An NNTP protocol implementation with client and
server
py26-fail2ban-0.8.3_2 scans log files and bans IP that makes too many
password failures.
py26-openssl-0.8_1 Python interface to the OpenSSL library
py26-paramiko-1.7.6 A python library for making SSH2 connections
py26-posix1e-0.4.0 Python module for manipulating POSIX.1e ACLs
py26-pycrack-0.5.1 Python bindings to cracklib
py26-pycrypto-2.1.0_1 The Python Cryptography Toolkit
py26-twistedConch-8.2.0 An SSH and SFTP protocol implementation with
clients and servers
py26-docutils-0.5 Python Documentation Utilities
py26-dsv-1.4.0 A Python module to parse or write delimeter-separated
(e.g. CSV) files
py26-twistedLore-8.2.0 Documentation generator with HTML and LaTeX support
py26-xml-0.8.4_2 PyXML: Python XML library enhancements
py26-cherrypy-3.1.2 A pythonic, object-oriented web development framework
py26-django-1.1.1 High-level Python Web framework
py26-flup-1.0.2 Random assortment of WSGI servers, middleware
py26-twistedWeb-8.2.0 An HTTP protocol implementation together with
clients and servers
py26-twistedWeb2-8.1.0 The next generation Web Server Framework built
with Twisted
 
D

D'Arcy J.M. Cain

The base Python 3.1 is installed there, but without any modules.

We install modules as clients ask for them. No one has yet requested a
Python 3 module.
On a hosting service, a raw Python with none of those modules isn't
very useful.

Well, it isn't useless.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,581
Members
45,056
Latest member
GlycogenSupporthealth

Latest Threads

Top