Discussion:
[Pyogp] The dependancy problem
Christian Scholz
2008-07-17 10:39:19 UTC
Permalink
Hi!

I thought I just write down my thoughts on this issue and why using
existing packages is good :-)

Basically it comes down to reuse. One big goal for software development
always has been to be able to reuse software components. That's what has
driven things like OOP and based on that also thoughts on lose coupling
of components (such as the ZCA allows us to do).

In the Python world this led to the invention of eggs with automatic
dependancy handling, it also led to reimplementing Zope2 as Zope3 and
the invention of the component architecture.

Big packages are now split up into smaller parts (like
grokcore.component was factored out of grok as it made sense to use it
elsewhere).

This being said, we should make use of these packages as they are
usually well tested, have a community around them and are mostly already
in production use.

The downside (which really isn't one) is that the list of packages you
need to install grows over time. But thanks to eggs this is automated.
You would simply say

easy_install pyogp.lib.base

and it would download the library, all necessary packages and installs
everything for you (or you do it via buildout but that's basically the
same).

The list of those components might be somewhat long but remember that
maybe some of these packages are rather small in size. So it's still
better IMHO to have a list of small packages instead of one big one.

As for implementing it ourselves: Sure, we can do that but why? We would
just reinvent the wheel, invent new bugs, need developers to get used to
our stuff and spend time on writing tools instead of solving our actual
problem.

So all these things IMHO make it worthwhile to reuse existing tools
whereever possible. It might mean some learning cycle but chances are
even bigger here that you will find documentation about it. And beside
the ZCA which introduces new concepts I guess many of the other
libraries are not such a burden in learning. E.g. grokcore.component
(which we maybe wrongly usually refer to as "grok") is just some 4-5
directives you need to know and they are even similar to the ones you
use with the ZCA directly.

So all in all I think reuse is the way to go, work with the community
and don't reinvent the wheel.

My $0.02

-- Christian
--
Christian Scholz video blog: http://comlounge.tv
COM.lounge blog: http://mrtopf.de/blog
Luetticher Strasse 10 Skype: HerrTopf
52064 Aachen Homepage: http://comlounge.net
Tel: +49 241 400 730 0 E-Mail ***@comlounge.net
Fax: +49 241 979 00 850 IRC: MrTopf, Tao_T

neue Show: TOPFt?glich (http://mrtopf.de/blog/category/topf-taglich/)
Loading...