M
Marcel Luethi
Dear Community
Now I'm standing here, having this great idea for a brand new rocking
app...
But where do I start? I want it to be multi-platform (Linux, Mac OS X,
Windows). It should be easy to install and upgrade. It should be self-
contained, independent of an already installed Python. And of course -
the world should be able to find it!
So what do I do? I'm studying all the possibilities to make it self-
contained (virtualenv, InstantDjango, PortablePython...), searching
for installers (PyInstaller, EasyInstall, ...), looking into making it
executable on every platform (py2exe, py2app, cx_Freeze, ...),
analyzing all GUI frameworks (wxPython, PyGTK, PyQt, ...),
investigating all hosting providers (Google Code, SourceForge, ...)
and so on and so forth.
This is not easy at all!
Using my iPhone I suddenly realize how easy it is to find applications
in Apple's AppStore. How easy and fast it is to install or de-install
an app. My iPhone even checks in the background if there is an upgrade
which could be installed painlessly.
Then I see VMware's Virtual Appliance Marketplace, where you can
download already pre-configured "appliances" for all kind of stuff.
You can even download a basic appliance, install and configure your
servers and tools - and upload it again, so that others can profit of
your work.
Unfortunately there's nothing like this in the Python world...
My idea: what about having a beefed up Cheeseshop for Python apps and
an accompanying client app kind of iTunes for Python apps?
The server side could be easily implemented with any of the current
web frameworks. It's simply a management platform for the app packages
(descriptions, versions, platforms, licenses, user's comments, number
of downloads, ...) and the package files themselves.
It should be definitely hosted by the PSF I think.
The multi-platform client should be intuitively and elegantly allow
app browsing, downloading and installing those Python apps. In that
respect it is sort of a Linux package manager (Synaptic, YUM, ...).
But this is only the end-user related stuff. Furthermore it should
allow to create new apps (probably based on a previously downloaded
base app), package and upload them again (kind of Google AppEngine
Launcher). Those base packages should include some basic management
framework (for installation and configuration) and hopefully soon
after the release of this platform they will be created in a broad
variety to allow app developers to choose among many Python-version/
platform/GUI/...-combinations.
IMHO an architecture like this would greatly enhance the productivity
of the whole Python community by capitalizing the knowledge of many
Python specialists. I don't have to find/install/configure all the
basic stuff myself (see above) to build my app. But I can concentrate
on my app because I'm standing on the shoulders of giants.
I believe it also would make Python as a great platform more visible
to the world - because there is only one place you have to go...
What do you think???
Is this crazy??? Or simply stupid?
Or is this the way to world domination...? ;-)
Unfortunately I'm not expert enough to build such a system - but if
there is enough interest in the community I gladly would like to help.
Marcel
PS:
Naming is important! "Python AppStore" or "Python App Marketplace" is
nice - but I would prefer something like "Python Bazaar" or "Python
Souq" to emphasize the community aspect.
Now I'm standing here, having this great idea for a brand new rocking
app...
But where do I start? I want it to be multi-platform (Linux, Mac OS X,
Windows). It should be easy to install and upgrade. It should be self-
contained, independent of an already installed Python. And of course -
the world should be able to find it!
So what do I do? I'm studying all the possibilities to make it self-
contained (virtualenv, InstantDjango, PortablePython...), searching
for installers (PyInstaller, EasyInstall, ...), looking into making it
executable on every platform (py2exe, py2app, cx_Freeze, ...),
analyzing all GUI frameworks (wxPython, PyGTK, PyQt, ...),
investigating all hosting providers (Google Code, SourceForge, ...)
and so on and so forth.
This is not easy at all!
Using my iPhone I suddenly realize how easy it is to find applications
in Apple's AppStore. How easy and fast it is to install or de-install
an app. My iPhone even checks in the background if there is an upgrade
which could be installed painlessly.
Then I see VMware's Virtual Appliance Marketplace, where you can
download already pre-configured "appliances" for all kind of stuff.
You can even download a basic appliance, install and configure your
servers and tools - and upload it again, so that others can profit of
your work.
Unfortunately there's nothing like this in the Python world...
My idea: what about having a beefed up Cheeseshop for Python apps and
an accompanying client app kind of iTunes for Python apps?
The server side could be easily implemented with any of the current
web frameworks. It's simply a management platform for the app packages
(descriptions, versions, platforms, licenses, user's comments, number
of downloads, ...) and the package files themselves.
It should be definitely hosted by the PSF I think.
The multi-platform client should be intuitively and elegantly allow
app browsing, downloading and installing those Python apps. In that
respect it is sort of a Linux package manager (Synaptic, YUM, ...).
But this is only the end-user related stuff. Furthermore it should
allow to create new apps (probably based on a previously downloaded
base app), package and upload them again (kind of Google AppEngine
Launcher). Those base packages should include some basic management
framework (for installation and configuration) and hopefully soon
after the release of this platform they will be created in a broad
variety to allow app developers to choose among many Python-version/
platform/GUI/...-combinations.
IMHO an architecture like this would greatly enhance the productivity
of the whole Python community by capitalizing the knowledge of many
Python specialists. I don't have to find/install/configure all the
basic stuff myself (see above) to build my app. But I can concentrate
on my app because I'm standing on the shoulders of giants.
I believe it also would make Python as a great platform more visible
to the world - because there is only one place you have to go...
What do you think???
Is this crazy??? Or simply stupid?
Or is this the way to world domination...? ;-)
Unfortunately I'm not expert enough to build such a system - but if
there is enough interest in the community I gladly would like to help.
Marcel
PS:
Naming is important! "Python AppStore" or "Python App Marketplace" is
nice - but I would prefer something like "Python Bazaar" or "Python
Souq" to emphasize the community aspect.