PythonCard Runs on Mac OS X!
As of April 23, 2002, PythonCard runs on Macintosh OS X. Thanks to the wxPython-mac
team, we can begin to enjoy the fruits of our PythonCard on the platform where
the program that inspired it to begin with -- Apple Computer's trailblazing
HyperCard -- originated.
To be sure, this is preliminary stuff. There is a bit of functionality that
doesn't quite work right yet, things that are still being ported and are only
half-done. But a surprising amount of wxPython -- the framework on which PythonCard
is built and with which it is designed to run -- runs properly on OS X. It is
likely now a matter of a few weeks, perhaps less, before we'll be able to do
everything on Mac or Windows or *nix and run the resulting PythonCard apps anywhere
with no re-coding while maintaining native look and feel.
As far as I know, this will be the first development tool other than professional-grade
CodeWarrior from Metrowerks that will allow Macintosh programmers to create
software in their favorite world and then deploy it across all other popular
platforms without a coding change! As this comes to fruition, it will indeed
be the Macintosh developer's Holy Grail.
Only Mac Programmers Care
Or so it has seemed to me over the years. Windows programmers are almost universally
apathetic about writing software that run on Macintoshes. Why should they? They
are already targeting the platform that has managed to corner 90% of the desktop
OS market. That other 10% which is primarily made up of MacFans is of little
moment to those who prefer to work in Windows or choose to do so for their own
reasons. But those of us who have always seen the Macintosh as being a better
platform for users, a more elegant place to do our work, have also understood
the economic reality that we need our software to run on Windows if we're going
to be successful. If only we didn't have to program on Windows -- and
in the process abandon our beloved Macs -- to do so.
Well, now we don't. Or at least, we soon won't be forced to do so. PythonCard,
the brainchild of Kevin Altis (who wrote the best personal information manager
ever produced for HyperCard, and stretched that envelope a good bit in doing
so), when it's "soup," will be a delightful platform for Mac developers
and scripters to use for building our own software products. That those products
will then be able to run straight-up on Windows is an awesome side effect.
The Spirit of PythonCard
I've been part of the PythonCard development team for only a few weeks but
I've come to have great respect for Kevin and other key players on that team.
We are committed to developing a world-class graphical application creation
tool that is Open Source and built in the finest programming language I've ever
encountered...and I've studied dozens in my longish career as a technologist
and pundit. Python is quite
simply the ideal programming language for me and those who, like me, are not
full-time coders but who want robust tools when they are called on to develop
Python has many virtues. Among the most important to me are the facts that
- syntactically clean
During the two days preceding my taking time to write this paean, I have completed
a project in Python using Zope
as a server architecture and data storage mechanism that had, prior to my deciding
to use Python, had consumed about 100 largely unproductive hours as I tried
to beat the problem into submission with less-than-elegant languages and tools.
In just seven hours, the Python application was running. My client was blown
away, said I had exceeded his wildest expectations. I haven't had such a software
triumph since the days I worked in Smalltalk and this time I could have handed
him the application on a very old floppy disk with minimal capacity. It runs
on the Web. I change things in a heartbeat. I'm empowered.
Python Meets wx
The Python community is large and not only strong but growing and thriving.
I don't know how big it is but it is clearly in the tens of thousands if not
the hundreds of thousands. In the months that I've been working to become a
Master Pythonite, I've "met" dozens of bright, intelligent, committed
folks who have discovered Python and never looked back. It is a full-blown,
first-class language, not a toy. It scales. It performs. It behaves.
Quite a while ago, a guy named Robin Dunn apparently got tired of the limitations of Tk, the GUI library that ships with standard Python distribution, and decided to create a Python version of a fairly popular library called wxWindows. The result is wxPython.
When Kevin started the PythonCard project, part of his original grandiose design
was to accommodate any arbitrary set of GUI classes and data structures, whether
Tk or wxPython or some other, as-yet-unknown platform. But as time has passed,
it has become clear to just about everyone in the Python community that wxPython
is the clear winner. Taking advantage of a single, quasi-standard library has
sped the development of PythonCard.
But What About My Macintosh?
When Kevin enticed me for the second time to take a look at PythonCard because
of my long and affectionate involvement with HyperCard (I had written a best-seller
and a half-dozen other books as well as some well-received software with it
and had become known as something of an ardent evangelist), I was fairly immediately
entranced. I ran some of Kevin's demos -- all on Windows -- and looked at code
and began to appreciate the power and elegance of Python.
But where, I wondered aloud, was support for the Macintosh. Kevin assured me
that it would be forthcoming, though he was clear that he couldn't promise when.
There was a group of wxPython folks, he said, who were porting wxPython to the
Mac. Weeks passed and I monitored the mailing lists. Progress seemed to me to
be painfully slow most of the time. I couldn't follow most of the conversations
because they were dealing with wxWindows at a deep implementation level and
all I wanted to do was use it to build cool stuff!
Now, we are nearing the time when wxPython-Mac will become a respectable, supported
member of the wxPython world. That, for me, is a wonderful, wonderful event.
PythonCard and HyperCard
As it has evolved, PythonCard has edged slowly but decidedly away from HyperCard
in some important ways. It is not accurate to describe PythonCard as an attempt
to recreate HyperCard in Python for cross-platform usage, even though that was
at least a glimmer in Kevin's eye when he launched the effort nearly a year
But there are some strong similarities, sufficiently so that experienced HyperCard
designers and scripters will find the environment at least not alien. And it
is important to remember, of course, that HyperCard is quite aged by now, creaky
even (though there are still hundreds of companies in the world who run major
pieces of internal departmental functionality on a product Apple has stupidly
abandoned). The software world has learned a lot in the intervening years and
the Web has emerged as an important -- indeed central -- component of important
So PythonCard will continue to evolve and grow, maintaining at least some semblance
of its ancient roots while it dresses up in cross-platform costumes, learns
a much more powerful but equally accessible programming language, and carries
us to a place where we can create beautiful software (as described by Yale Professor
and pundit extraordinaire David Gelertner in numerous articles and books).
PythonCard on OS X. I sense a new breeze blowing through my mind, clearing
cobwebs and opening up vistas of software possibilities that have lain dormant
during this transition period.
© Copyright 2002 Dan Shafer.
Last update: 11/13/02; 2:12:37 PM.