[Pythonmac-SIG] New Start Proposal: NXPython

Byron Formwalt ByronFormwalt@aaahawk.com
Tue, 13 Aug 2002 19:33:52 -0400


MacPython enthusiasts,
    I am proposing to head up a new effort to revamp Python for OS X.  This
effort will be done in Objective-C/Cocoa, using Apple's Project Builder/IB
in the Developers' Toolkit that comes free with OS X.  There will be seven
large modules/subprojects to this major undertaking.  If anyone else has
been waiting anxiously for this to start happening, please speak up.
Encouragement, advice, expression of interest, and programming support are
all equally welcome.  A brief overview of the project are laid out below.

NXPython:  Python Implementation Native to Mac OS X
Pronounced 'Native X Python'
Written entirely in Objective-C.

Components:

1) Framework Python Interpreter -- used for execution of Python commands and
as the core interpreter for inside user-generated generating applets and
applications.

2) Framework Python Debugger -- framework for interactively debugging Python
scripts/scripted modules.

3) Framework wxWindows -- used for implementing wxWindows on top of
Aqua/Cocoa.

4) Framework wxPython -- framework layer used for making wxWindows
accessible to NXPython.

5) NXPythonWrapper -- Cocoa tool for wrapping traditional Un*x shared/static
libraries into frameworks directly usable by NXPython.

6) NXPython -- Cocoa IDE application for developing Python scripts/scripted
modules and generating NXPython applications and applets native to Mac OS X
(Cocoa).

7) nxpython -- Foundation tool, serving as the interactive command-line
interface to the Framework Python Interpreter.

Plan of attack:

1) Design the interfaces for the Framework Python Interpreter, Framework
Python Debugger, and External Python Frameworks.

2) Design and implement the nxpython command-line interface tool and the
Framework Python Interpreter.

**MILESTONE 1** 31 December 2002

3) Design and implement NXPythonWrapper Cocoa GUI app for wrapping Un*x
libraries into framework form, with an interface usable by NXPython.  (Note:
these are not Carbon libraries specifically designed for MacPython.  They
are non-X11 Un*x libraries, such as libjpeg.a or zlib.a.

**MILESTONE 2** 30 April 2003

4) Design and implement the Framework Python Debugger and add hooks into the
nxpython tool for interactive debugging of Python scripts.

5) Design and implement the NXPython IDE without support for generating user
apps and applets.

**MILESTONE 3** 30 August 2003

6) Add automatic application/applet generation capability to NXPython.
(Note:  no support is planned for making self-contained distributable
command-line executables, since presumably, anyone using command-line-only
Python tools has Python already installed.)

**MILESTONE 4** 30 October 2003

7) If no-one has made a good, solid, working native implementation of
wxWindows by this point, then design and implement it.  (Hopefully this will
not be necessary.)

8) Create the NXPython accessible Framework for interfacing with wxWindows,
using the semi-automated NXPythonWrapper tool.

**MILESTONE 5** TBD (Possibly as early as 01 January 2004)

9) Enjoy Pythoning on the Mac... Carbon will probably be a thing of the past
by now.

Byron