[Baypiggies] Frequently Argued Objections

Shannon -jj Behrens jjinux at gmail.com
Fri Jun 20 10:19:15 CEST 2008


> - Why such difficulty with extensibility?
>
> OK, there are cases that are valid, I don't know of a library that I can
> natively read an OODoc spreadsheet in python where that exists in perl for
> example.    However, I think this is a biproduct of the "batteries included"
> mindset, which i interpret as -- the python community has an acknowledged
> preference for libraries that work to a fairly sound definition of "good
> enough", and maybe there's no good-enough OODoc python library yet.
> Still, in terms of discovery, perl has CPAN, and perl folks seem to like
> ...  well no, they seem to tolerate it.     Does Python need an improved
> CPAN?    Or is Python so "batteries included" that it's either - the
> language has it standard, or you're going to need google to find it?
> There's probably a related question of how large are the community of
> contributers and what are the barriers to entry, what is the relative merit
> of 10 half-baked libraries targeted at slightly different use cases, vs 1
> that kicks butt.
>
> Still, I get "poor extensibility" as a top critique of python probably more
> than anything else these days.

The Python version of CPAN is PyPI.  "easy_install whatever" will
automatically compile C extension, pull down dependencies, etc.  It
doesn't come with Python, but it's easy to install, and most people
use it.  It's nice.

Python is actually one of the most extensible languages:

* Writing C extensions is easier in Python than in Perl or Java.
* PyRex allows you to integrate with C using a Python/C hybrid that's
easy and powerful.
* You can call directly into C code using ctypes.
* You can get access to Java and .NET libraries via Jython and
IronPython respectively.

Ok, one more:

Q: Why does Python have non-OO crap?
A: Because it's a multi-paradigm language.  Sometimes a bit of
functional programming (a la Lisp) really hits the spot.  Sometimes,
it's more natural to use OO.  Sometimes a bit of imperative
programming (a la C) does the trick.  Even AOP has a place in Python.
Being practical instead of dogmatic is a nice part of the Python
personality.

-jj

-- 
I, for one, welcome our new Facebook overlords!
http://jjinux.blogspot.com/


More information about the Baypiggies mailing list