Eclecticity: Dan Shafer's Web Log : Where author, poet, sports fanatic, spiritual teacher, and dabbler in things Pythonesque and Revolution(ary) Dan Shafer holds forth on various topics of interest primarily to him


Subscribe to "Eclecticity: Dan Shafer's Web Log" in Radio UserLand.

Click to see the XML version of this web page.

Click here to send an email to the editor of this weblog.


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 software.

Python has many virtues. Among the most important to me are the facts that it is:

  • object-oriented
  • syntactically clean
  • consistent
  • predictable
  • readable
  • modular

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 ago.

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 software initiatives.

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.

Click here to visit the Radio UserLand website.