[Tutor] (no subject)

Andreas Kostyrka andreas at kostyrka.org
Sat Nov 25 22:25:42 CET 2006

* Python <python at venix.com> [061125 14:47]:
> On Sat, 2006-11-25 at 00:10 -0600, Luke Paireepinart wrote:
> > Although I'm prettty sure most modern linux distros come with Python 
> > already installed, so you don't need to be concerned about those linux
> > folk.
> I think Windows is the only major OS distribution that still omits
> Python.
> > Except, I find that it's more trouble for linuxers to get packages
> > for 
> > their python scripts, because they have to make-install etc. whereas 
> > windows people have a nice friendly,
> > fuzzy little GUI installer for the majority of python packages.
> The belief that all Linux software must be compiled and installed
> manually is a common misconception.  The major Linux distributions all

Even worse is the common misconception that this is even a problem.
One big benefit of this is, that package authors are forced to
consider the built and install environment.

As a cynic, and this is only a rule of thumb, the following points
usually means force built/install automation:

a) commercial software => usually smaller user population (and well,
Windows does usually come preinstalled, so the population that does
Windows installations is extremly small).

b) closed source software => it does not matter how ugly it is, as
nobody sees it. And providing a sensible environment is often not
considered relevant by management. (E.g. I once did revamp the build
system of a commercial closed source application, but I had to hide
the work hours in a "paid-for" project)

c) Windows => Windows has no systematic filesystem layout, is still
having problems with filesystem permissions, and lacks a standard
compilation environment.

These are additative, IMHO ;)

Yeah, I know there are exceptions, but over a decade these points have
been validated in many, many cases.

> have servers with thousands of packages that install easily, either from
> a command line or a GUI interface.  For my Fedora laptop:
> 	yum install python-kid
> checks for any dependencies (e.g. python-elementtree) and installs all
> needed packages.  (There is no need for the package to have been written
> in Python.  I just used a Python example since this is a Python list.)
> Most Linux packages have available source code and you *can* install
> from source, but that is not forced on you.

Basically software installation on Linux (and to a lesser degree on
commercial Unixes) is way less flashy than on Windows, but at the same
time more advanced. 
Automatic fetching and dependency resolution have been standard
features for Linux distribution for years now.

E.g. Installing package B that breaks package A is considered a bug on
Debian. Installing package B on Windows that replaces common DLLs and
breaks half of the system is "state of the art".

> If a Python package is not available through yum, installation from the
> Cheese Shop is still quite simple, and certainly no more difficult than
> on Windows.

As noted above if there a no distribution specific packages, we can
fallback on a number of Python specific ways to build packages:

a) easyinstall. Autofetching, building and installing, including
b) eggs. binary and system-independant prepackaged Python packages.
Including version management of a given package.
c) distutils setup.py => no autofetching of dependencies. automatic
build + install.

Btw, these are also available ob Windows, as these are Python specific
ways to handle packages. OTOH they are hindered on Windows by the fact
that there is no standard compiler environment (see above) that is
always available. Getting a VS NET 7.1 license in the office (a big
international company *g*) takes days. It's a pain, but it's
easier to patch the installed python config to compile via mingw.

And if I think about that one, yes, the private closed source packages
that are Windows specific have the worst buildsystem. Aka a README
where one can copy & paste CL.EXE invocation from. Cool, not.


More information about the Tutor mailing list