Why I love python.

kosh kosh at aesaeion.com
Fri Aug 13 22:20:00 CEST 2004

On Friday 13 August 2004 2:03 pm, Christopher T King wrote:
> On Fri, 13 Aug 2004, kosh wrote:

> > 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.

I do know that c programs can be dynamically linked and most of the time on 
unixes they seem to be. But it seems to be far too common that the library 
changes in some way that requires that the program be recompiled. I have seen 
it with both kde and gnome where just recompiling them with no changes to 
their code at all fixed library problems that where being reported.

I have never seen that kind of thing in python.

> > 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).

I don't know why they break. I know that they do.

> 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.

Well in my world everything is written for unixes and deployed on unixes and 
most of them are linux boxes which have good package systems.

More information about the Python-list mailing list