[Pythonmac-SIG] a beginner's list

Kevin Ollivier kevino at theolliviers.com
Wed Feb 8 22:20:44 CET 2006


Hi Bob,

On Feb 8, 2006, at 1:49 AM, Bob Ippolito wrote:

>
> On Feb 8, 2006, at 1:06 AM, Kevin Ollivier wrote:
>
>>> In addition, if you have your code running just fine and dandy under
>>> Apple's python, then you upgrade to 10.5, chances are that your app
>>> will
>>> no longer work, as Apple is likely to yank their python out from  
>>> under
>>> you.
>>
>> What do you mean by this? None of my Panther scripts stopped working
>> under Tiger (I do have a couple ;-), and I didn't even touch Python
>> 2.4 on Mac until around October, where they still worked as they
>> always did on 2.3. Why should I now assume 10.5 is going to break all
>> my apps?
>
> Unless you're a unix person, there's very few useful things you can  
> do with Python 2.3 sans third party extensions (especially on  
> Panther, where wx and tkinter were not shipped). All of those  
> extensions, or at least a .pth hack if you just did an upgrade,  
> need to be installed to keep that working.  Applications built with  
> py2app or bundlebuilder are even worse off.
>
> Mac OS X 10.5 will surely ship with at least 2.4.2, which means all  
> extensions built against any previous vendor Python will break,  
> period.  Additionally, all of the WASTE-based stuff (the shipping  
> Python IDE, the worthless PackageManager, etc.) is incompatible  
> with i386.  Only the most basic mostly platform independent scripts  
> are going to work with Mac OS X 10.5.

It's a bit confusing to talk as if needing new extensions ==  
breakage. (You know you're a geek when it's second nature to write  
equality tests like this. ;-) I remember Python 2.1 and I've had to  
upgrade several times, and I never thought of re-installing my  
extensions as 'fixing what broke'. I called it 'upgrading'. Some  
people may see initially see what appears to be broken scripts, but  
unfortunately that would just be because they aren't aware of issues  
that may occur when upgrading their Python install. I don't think the  
proper solution is to keep them from upgrading; we just need to build  
awareness that a new Python major version means new extensions.

> If a third party Python is used, it will work forever... or at  
> least as long as Apple maintains basic API compatibility with the  
> version of the OS it was built with (whether through emulation or  
> otherwise).
>
> I have Python applications built on Mac OS X 10.2 that work on i386  
> Mac OS X 10.4 because they used a third party Python.  If those  
> applications had depended on /usr/bin/python and extensions linked  
> against it, then it would be toast -- especially because  
> bundlebuilder doesn't have a PPC bootstrap.  bundlebuilder-built  
> applications (assuming semi-standalone), without Info.plist  
> changes, will launch with an i386 Python and almost definitely  
> won't work at all unless they don't include any extensions at all.
>
> If we do strongly recommend that only third party builds of Python  
> are used, then we don't have to say "I told you so" to as many  
> people when their apps break a year or two later. The package  
> database and the documentation also become shorter and more  
> maintainable if only recent third party builds are supported.   
> There will be much less confusion if there's one-- and preferably  
> only one --obvious way to use Python on Mac OS X. Given these  
> caveats and limited resources, the vendor Python is absolutely  
> irrelevant as far as I am concerned.

Right, but I knew this before you wrote your message, because I've  
long known your position on support and maintenance. And I've never  
said anything against it. When I say "some people can use 2.3", I'm  
not advocating officially supporting 2.3 on this list. When people  
say "let them start out with Apple's Python" they don't mean that  
deployers and active Python users should dump 2.4, etc. What we're  
talking about is small and simple steps to get newbies started. The  
existing Python community obviously doesn't need this kind of  
guidance - they need a whole different support mechanism, which I  
think you, along with Jack and others, have already gone great  
lengths to provide.

That being said, I think you'd be surprised how even new users could  
survive with "any" Python if they had a clear understanding of 1) how  
to get started and 2) how to build extension modules from 'source'.  
This talk of building supported Pythons, and supported extensions, is  
nice, but the reality is that there's only so much volunteers can do.  
I think we're better off teaching users how to handle the common  
issues that they may come across, like dealing with a package with no  
binary/installer for their Python. Teaching a Python to fish rather  
than giving them fish, or something like that. :-) As for deployment,  
well, just write a few sentences about what you should do to properly  
deploy an app and why, and link to some sample py2app scripts, etc.  
Done.

> If someone wants to deal with separate support and documentation  
> for what ships with Mac OS X 10.3, Mac OS X 10.4, and Mac OS X 10.5  
> then have fun, but I am NOT interested in that.

No one (that I'm aware of) is saying that. A "30-second getting  
started" tutorial doesn't mean producing an entire support  
infrastructure around the various "Apple Pythons" (or a support  
infrastructure for any particular version, really). It's just "here,  
Python is included on OS X, here's how to give it a spin, and here's  
some links to learn more about what Python can do". That's all. (At  
least in my idea, and I think Bill J.'s as well.)

If you look at the new beginner's page that's being talked about (as  
far as I've read the messages, anyways), it starts (as did Jack's  
MacPython page) with notes about what your options are. Beginners  
don't want options; they want to be told what to do. They also prefer  
0 minutes setup time to 5  minutes setup time. Seeing a bunch of  
paragraphs (even before they read them) says to the user - uh, oh,  
this is going to be complicated.... That's what makes Bill Janssen's  
tutorial great. They read "30-second getting started tutorial", which  
sounds pretty appealing, then they click on it, and in one minute,  
they've *seen* how Python works, rather than spending that minute  
reading about whether they should use Apple's Python, not use Apple's  
Python, and what about extensions and deploying, etc. Then, after  
that one minute doing hello world, they can follow the Python and wx  
tutorials (we can point them to the wx demo too) to learn all sorts  
of other neat stuff they can do with it. Then, once we've got them  
thinking "this is great, I want this!" then maybe they'll be a little  
more interested in reading about whether or not they should upgrade  
to 2.4.

We can have all the information for existing Python users trying to  
sort out their options, deal with upgrade issues, deploy apps, etc.,  
but let's have a clearer starting path for beginners too.

Thanks,

Kevin

> -bob
>



More information about the Pythonmac-SIG mailing list