Why I love python.

Christopher T King squirrel at WPI.EDU
Fri Aug 13 22:03:24 CEST 2004


On Fri, 13 Aug 2004, kosh wrote:

> On Friday 13 August 2004 1:34 pm, Christopher T King wrote:
> > On Fri, 13 Aug 2004, kosh wrote:
> > > Why is there a need for a stand alone executable? At least on all the
> > > unixes whether something is executable is just determined by the
> > > executable bit on the file.
> >
> > Not if you don't have the interpreter installed.
> 
> So install the runtime. If you want to run the .NET stuff you need to
> have the the .NET CLR or Mono installed. If you want to run java apps
> you need the jvm etc.

And if you want to run Python scripts you need the Python interpreter 
installed.

> Overall once a runtime is installed it makes distributing apps a lot 
> easier since the actual thing you need to send someone is tiny.

Oftentimes users will only have one Python app.  They'd much rather
download a 2MB ZIP file and dump it somewhere, than download a 20MB Python
distribution and install it somewhere, download XMB of extension modules
needed by the app (e.g. PIL, numarray, to name a few), and then finally
download and install your script.

> Also at least on unixes I have not run into a box in about 6 years or so
> that did not have python and perl installed so in practice I have not
> run into that problem.

And hence the lack of an executablization program for Unix.

> Overall it would be better if there was an easy way on windows to get the 
> runtime installed since then you can send users far smaller files, smaller 
> updates and it makes it easier for people to patch their systems.

True.  I don't see that happening anytime soon, though.

> I have seen more then a few cases where a bug like temp file creation
> was found to be a problem in python and in some c code. However the
> difference is that you can update the python runtime and all affected
> python programs are fixed. The same is not true of the c versions.

What?  C programs use a runtime library, just the same as any other 
language.  Google for "libc.so" or "msvcrt.dll" if you don't believe me.

> One of them I have run into which is a pain is stuff like openssl. When that 
> gets updated it seems a whole bunch of programs have to be compiled to work 
> with it again. The change is source compatible but for whatever reason the 
> bug fix breaks binary compatibility on a number of apps.

That sounds like an openssl-specific problem, perhaps relating to 
configuration issues.  Since C libraries are linked dynamically, source 
compatibility inherently translates to binary compatibility, assuming 
functions were not moved to different libraries or rewritten as macros (or 
vice-versa).

In a perfect world, all OSes would use proper package management systems, 
and single-executable programs would not be needed.  Unfortunately, this 
isn't true.




More information about the Python-list mailing list