![Page 2: MacPython - Centrum Wiskunde & Informaticajack/presentations/europython.pdf · Based on perfectly normal unix ... use MacOSX framework Keeps IDE, Carbon, Quicktime, OSA, applets Cocoa](https://reader035.vdocuments.net/reader035/viewer/2022062607/6025f280719d6455e374b74f/html5/thumbnails/2.jpg)
About this talk
Introduction
Past - MacPython-OS9
Present - MacPython-OSX
Rant on Open Source software
Future - World Domination
![Page 3: MacPython - Centrum Wiskunde & Informaticajack/presentations/europython.pdf · Based on perfectly normal unix ... use MacOSX framework Keeps IDE, Carbon, Quicktime, OSA, applets Cocoa](https://reader035.vdocuments.net/reader035/viewer/2022062607/6025f280719d6455e374b74f/html5/thumbnails/3.jpg)
About me
Active Python user since 1992, “responsible” for MacPython since 1995, when Guido got rid of his
Mac.
Work at CWI on multimedia research, active in SMIL standard, did SMIL editor/player in Python.
![Page 4: MacPython - Centrum Wiskunde & Informaticajack/presentations/europython.pdf · Based on perfectly normal unix ... use MacOSX framework Keeps IDE, Carbon, Quicktime, OSA, applets Cocoa](https://reader035.vdocuments.net/reader035/viewer/2022062607/6025f280719d6455e374b74f/html5/thumbnails/4.jpg)
History: before OSX
Main distribution: binary
included IDE by Just van Rossum:
editor, debugger, profiler, etc
Applets: mini-applications that take the place of scripts
true standalone applications
![Page 5: MacPython - Centrum Wiskunde & Informaticajack/presentations/europython.pdf · Based on perfectly normal unix ... use MacOSX framework Keeps IDE, Carbon, Quicktime, OSA, applets Cocoa](https://reader035.vdocuments.net/reader035/viewer/2022062607/6025f280719d6455e374b74f/html5/thumbnails/5.jpg)
MacOS Toolbox a.k.a. Carbon:
Windows, Dialogs, Menus, Events, Fonts, Resources, etc
QuickTime
Open Scripting Architecture (”AppleScript”)
90% automatic with bgen
MacOS technologies
![Page 6: MacPython - Centrum Wiskunde & Informaticajack/presentations/europython.pdf · Based on perfectly normal unix ... use MacOSX framework Keeps IDE, Carbon, Quicktime, OSA, applets Cocoa](https://reader035.vdocuments.net/reader035/viewer/2022062607/6025f280719d6455e374b74f/html5/thumbnails/6.jpg)
Unix emulation
Matthias Neeracher’s GUSI provides sockets, unix-like file descriptors,
select, Pthreads and more
It is difficult to overstate its importance!
![Page 7: MacPython - Centrum Wiskunde & Informaticajack/presentations/europython.pdf · Based on perfectly normal unix ... use MacOSX framework Keeps IDE, Carbon, Quicktime, OSA, applets Cocoa](https://reader035.vdocuments.net/reader035/viewer/2022062607/6025f280719d6455e374b74f/html5/thumbnails/7.jpg)
Python Imaging Library
Numerical Python
Img
Tkinter with embedded Tcl/Tk
Batteries Included!
![Page 8: MacPython - Centrum Wiskunde & Informaticajack/presentations/europython.pdf · Based on perfectly normal unix ... use MacOSX framework Keeps IDE, Carbon, Quicktime, OSA, applets Cocoa](https://reader035.vdocuments.net/reader035/viewer/2022062607/6025f280719d6455e374b74f/html5/thumbnails/8.jpg)
Mac users don’t have compilers
... and if they had they wouldn’t know how to use them
... and GUSI makes life even more difficult
Mac users expect software to “just work”
Why include batteries?
![Page 9: MacPython - Centrum Wiskunde & Informaticajack/presentations/europython.pdf · Based on perfectly normal unix ... use MacOSX framework Keeps IDE, Carbon, Quicktime, OSA, applets Cocoa](https://reader035.vdocuments.net/reader035/viewer/2022062607/6025f280719d6455e374b74f/html5/thumbnails/9.jpg)
Very small number of active developers: between 2 and 25
Active user community: about 300?
Users: 10K downloads per release
where are they? what are they doing??!?
Community
![Page 10: MacPython - Centrum Wiskunde & Informaticajack/presentations/europython.pdf · Based on perfectly normal unix ... use MacOSX framework Keeps IDE, Carbon, Quicktime, OSA, applets Cocoa](https://reader035.vdocuments.net/reader035/viewer/2022062607/6025f280719d6455e374b74f/html5/thumbnails/10.jpg)
Based on perfectly normal unix Python 2.3
but: use MacOSX framework
Keeps IDE, Carbon, Quicktime, OSA, applets
Cocoa support through PyObjC
Batteries no longer included
MacPython-OSX
![Page 11: MacPython - Centrum Wiskunde & Informaticajack/presentations/europython.pdf · Based on perfectly normal unix ... use MacOSX framework Keeps IDE, Carbon, Quicktime, OSA, applets Cocoa](https://reader035.vdocuments.net/reader035/viewer/2022062607/6025f280719d6455e374b74f/html5/thumbnails/11.jpg)
Packaging construct to allow easy install/removal
Framework is really “shared library on steroids”:
library, resources, header files, documentation, auxiliary programs
MacOSX frameworks
![Page 12: MacPython - Centrum Wiskunde & Informaticajack/presentations/europython.pdf · Based on perfectly normal unix ... use MacOSX framework Keeps IDE, Carbon, Quicktime, OSA, applets Cocoa](https://reader035.vdocuments.net/reader035/viewer/2022062607/6025f280719d6455e374b74f/html5/thumbnails/12.jpg)
Easy uninstall: remove framework and application only
Some location independence while still allowing sharing
Tcl/Tk does it too:-)
Why use framework?
![Page 13: MacPython - Centrum Wiskunde & Informaticajack/presentations/europython.pdf · Based on perfectly normal unix ... use MacOSX framework Keeps IDE, Carbon, Quicktime, OSA, applets Cocoa](https://reader035.vdocuments.net/reader035/viewer/2022062607/6025f280719d6455e374b74f/html5/thumbnails/13.jpg)
Many more useful packages for OSX than OS9
Often more solutions: Tkinter versus wxPython
too much work
Many more developers who contribute
Enter PackageManager!
Batteries not included!
![Page 14: MacPython - Centrum Wiskunde & Informaticajack/presentations/europython.pdf · Based on perfectly normal unix ... use MacOSX framework Keeps IDE, Carbon, Quicktime, OSA, applets Cocoa](https://reader035.vdocuments.net/reader035/viewer/2022062607/6025f280719d6455e374b74f/html5/thumbnails/14.jpg)
“Package Install Manager for Python” was voted down:-(
Central concept: single responsible person(s), the scapegoat
On-line database with packages that are tested and tried
both source and binary
Package Manager
![Page 15: MacPython - Centrum Wiskunde & Informaticajack/presentations/europython.pdf · Based on perfectly normal unix ... use MacOSX framework Keeps IDE, Carbon, Quicktime, OSA, applets Cocoa](https://reader035.vdocuments.net/reader035/viewer/2022062607/6025f280719d6455e374b74f/html5/thumbnails/15.jpg)
Does not require developer tools for end user
Can update itself
... except for its GUI:-(
Allows decentralization
Diminishes rush when 2.X comes out
A PEP will follow
![Page 16: MacPython - Centrum Wiskunde & Informaticajack/presentations/europython.pdf · Based on perfectly normal unix ... use MacOSX framework Keeps IDE, Carbon, Quicktime, OSA, applets Cocoa](https://reader035.vdocuments.net/reader035/viewer/2022062607/6025f280719d6455e374b74f/html5/thumbnails/16.jpg)
Binary installer is essential for Mac
no dependency on Developer Tools!
no Terminal window, please!
But do cater for developers too
and try to allow for a shallow learning curve...
Distribution
![Page 17: MacPython - Centrum Wiskunde & Informaticajack/presentations/europython.pdf · Based on perfectly normal unix ... use MacOSX framework Keeps IDE, Carbon, Quicktime, OSA, applets Cocoa](https://reader035.vdocuments.net/reader035/viewer/2022062607/6025f280719d6455e374b74f/html5/thumbnails/17.jpg)
you may download source
you may rebuild it yourself
you may even fix bugs
Open Source- theory
![Page 18: MacPython - Centrum Wiskunde & Informaticajack/presentations/europython.pdf · Based on perfectly normal unix ... use MacOSX framework Keeps IDE, Carbon, Quicktime, OSA, applets Cocoa](https://reader035.vdocuments.net/reader035/viewer/2022062607/6025f280719d6455e374b74f/html5/thumbnails/18.jpg)
you will download source
you shall rebuild it yourself
you must even fix bugs
Open Source- practice
![Page 19: MacPython - Centrum Wiskunde & Informaticajack/presentations/europython.pdf · Based on perfectly normal unix ... use MacOSX framework Keeps IDE, Carbon, Quicktime, OSA, applets Cocoa](https://reader035.vdocuments.net/reader035/viewer/2022062607/6025f280719d6455e374b74f/html5/thumbnails/19.jpg)
Python core is pretty good:
few dependencies on third party packages
build process tested and tried
Extensions can be bad (no offense meant!)
Small number of developers
long time between releases
![Page 20: MacPython - Centrum Wiskunde & Informaticajack/presentations/europython.pdf · Based on perfectly normal unix ... use MacOSX framework Keeps IDE, Carbon, Quicktime, OSA, applets Cocoa](https://reader035.vdocuments.net/reader035/viewer/2022062607/6025f280719d6455e374b74f/html5/thumbnails/20.jpg)
Get rid of clunkyness
Solution: PyObjC
Make GUI development easier
Solution: PyObjC
Does not have to wait for 2.4
Future - the easy bits
![Page 21: MacPython - Centrum Wiskunde & Informaticajack/presentations/europython.pdf · Based on perfectly normal unix ... use MacOSX framework Keeps IDE, Carbon, Quicktime, OSA, applets Cocoa](https://reader035.vdocuments.net/reader035/viewer/2022062607/6025f280719d6455e374b74f/html5/thumbnails/21.jpg)
Python is better than AppleScript
so let’s make it as user-friendly
Python is better than RealBasic or Hypercard
So let’s come up with a decent entry-level GUI builder
World Domination - part one
![Page 22: MacPython - Centrum Wiskunde & Informaticajack/presentations/europython.pdf · Based on perfectly normal unix ... use MacOSX framework Keeps IDE, Carbon, Quicktime, OSA, applets Cocoa](https://reader035.vdocuments.net/reader035/viewer/2022062607/6025f280719d6455e374b74f/html5/thumbnails/22.jpg)
Python is better than ObjC
so show this to the ObjC community
Python is great for CGI
so flatten the learning curve
![Page 23: MacPython - Centrum Wiskunde & Informaticajack/presentations/europython.pdf · Based on perfectly normal unix ... use MacOSX framework Keeps IDE, Carbon, Quicktime, OSA, applets Cocoa](https://reader035.vdocuments.net/reader035/viewer/2022062607/6025f280719d6455e374b74f/html5/thumbnails/23.jpg)
Mac is better than Unix
so make MacPython better than /usr/local/bin/python
for unix-heads, that is!
Mac is better than Windows
... aww, forget about them:-)
World domination - Part two
![Page 24: MacPython - Centrum Wiskunde & Informaticajack/presentations/europython.pdf · Based on perfectly normal unix ... use MacOSX framework Keeps IDE, Carbon, Quicktime, OSA, applets Cocoa](https://reader035.vdocuments.net/reader035/viewer/2022062607/6025f280719d6455e374b74f/html5/thumbnails/24.jpg)
Draw attention
Reviews, magazine articles
Easy access for testing the waters
Inclusion on CDs
Run from CD without installation
World domination - Finale
![Page 25: MacPython - Centrum Wiskunde & Informaticajack/presentations/europython.pdf · Based on perfectly normal unix ... use MacOSX framework Keeps IDE, Carbon, Quicktime, OSA, applets Cocoa](https://reader035.vdocuments.net/reader035/viewer/2022062607/6025f280719d6455e374b74f/html5/thumbnails/25.jpg)
For end-users beat the ease of use of good shrink-wrapped software
think of YOURSELF! This presentation was finished 4 hours after first contact with Keynote
Try that with LaTeX:-)
But don’t get in the way of the developers...
But seriously:
![Page 26: MacPython - Centrum Wiskunde & Informaticajack/presentations/europython.pdf · Based on perfectly normal unix ... use MacOSX framework Keeps IDE, Carbon, Quicktime, OSA, applets Cocoa](https://reader035.vdocuments.net/reader035/viewer/2022062607/6025f280719d6455e374b74f/html5/thumbnails/26.jpg)
42