Hi Steve I really appreciate your feedback! Certainly I'm no expert "for the many differences in package formats and install requirements between the different platforms".
But let me explain a bit more: I don't have the idea that the multi-platform client should handle all the different package formats - instead it should define a new one: a simple zip-file. For me "self-contained, independent of an already installed Python" means that there is a complete, isolated Python environment for each app (see virtualenv). So Python would go into APP/lib/..., APP/bin/... and the app itself into APP/app/... Certainly there would be also some more files like the app icons and a description file APP/app.xml The packaged app is a zip/gzip of the whole APP directory. Installing is simply unpacking to a defined directory (into something like PythonApps/APP) and setting it up as an os app. Because there is a complete Python environment for each app (disk space and bandwidth are cheap nowadays!) and all 3rd party libs are "integrated" there shouldn't be any other local dependencies. So there could be APP1 with a Python 2.5.2 + a wxPython/wxWidgets and another APP2 with Python 2.6.1 + PyQt4. (This is something I'm not really sure about: is it possible to setup all binary 3rd party libs «*.so/*.pyo/*.dll/*.pyd/...» into an isolated Python environment?) Of course there can't be a single APP1 for all possible platforms. But there could be one setup for each: APP1_Linux, APP1_MacOsX10.5, APP1_WinXP The developer has to setup/test every supported platform anyway. The "bootstrap" (standing on the shoulders of giants) could work like this: - first there is a base app "Python 2.5.1 for Mac OS X 10.5" built by developer A - next developer B creates "Django 1.0.2 for Mac OS X 10.5" based on the one above - then developer C integrates Pinax into B's app and creates "Pinax 0.5.1 for Mac OS X 10.5" All those "apps" could be found in Python AppStore and a developer could search for the one which matches his requirements best. His implementation cost is therefore minimized. A iTunes-like client would allow the end-user to find apps - assumed that all (or most) developers upload their apps into the one and only Python AppStore. The client (there should be one for every supported platform) is a front-end application for the (PSF-) hosted "super-cheeseshop", which end-users are not expected to access directly. Is my nirvana really that far away? ;-) Best regards, Marcel PS A "Souq" is an Arab market (similar to a bazaar): http://en.wikipedia.org/wiki/Souq I got to know one visiting one last year in Oman - and I really liked it. But now I can see that soundex('souq') == soundex('suck'). You're right, this would be a very bad choice... ;-) On Sun, Feb 22, 2009 at 3:21 PM, Steve Holden <[email protected]> wrote: > Marcel Luethi wrote: > > 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. > > > Without wishing in any way to "rain on your parade", a "beefed up > cheeseshop" isn't a new idea. When you say it should be "... simply an > management platform for the app packages" this doesn't solve any > problems at all. > > And the "multiplatform client" that should "easily and elegantly allow > app browsing, downloading and installing those apps" would presumably > have to account for the many differences in package formats and install > requirements between the different platforms. > > So I don't think you will find too much disagreement that this is an > excellent idea, but neither do I think you fully appreciate the > difficulties this would involve. > > There have been many discussions on the python-dev list and the > distutils list about how applications should and/or could be > distributed, but so far little universal agreement on how to achieve > this nirvana of which you conceive. > > > 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. > > Unfortunately I have no idea what a "souq" is, so I suspect this may be > linguistically biased against English speakers. Or perhaps I'm just > ignorant. > > regards > Steve > -- > Steve Holden +1 571 484 6266 +1 800 494 3119 > Holden Web LLC http://www.holdenweb.com/ > > -- > http://mail.python.org/mailman/listinfo/python-list > -- ******************************************** MLSystems GmbH Marcel Lüthi El.-Ing. HTL, Inf.-Ing. HTL/NDS, CNE, CNS Betriebswirtschafts-Ing. HTL/NDS Schwarzbachstrasse 22a CH-3113 Rubigen / Switzerland Tel. +41 (31) 721 83 25 Mob. +41 (79) 709 66 58 [email protected] ********************************************
-- http://mail.python.org/mailman/listinfo/python-list
