[XML-SIG] xml.apache.org
uche.ogbuji@fourthought.com
uche.ogbuji@fourthought.com
Tue, 09 Nov 1999 19:22:50 -0700
Greg Stein:
> I looked at IBM's XML4C package a while back. A bazillion C++ classes all
> over the place. I don't know what it is about C++, but most C++
> programmers seem to want to write a class for this and that, the other
> thing, their sister, and for their little dog, too. I shook my head at the
> beast and haven't looked back.
> (figuring that if somebody really wanted XML4C plugged into mod_dav, then
> they can do the work...)
It can be odd, coming from the tremendous productivity of Python development,
to contemplate the typical state of large-scale C++ and Java projects.
There is an interesting article in last Month's DDJ talking about a software
engineering principle that I was at first shocked to discover is just being
re-invented. It points out that the structured-programming movement was about
moving from a graph model of code dependency and control-flow to a tree model.
They then point out that the OO revolution has merely moved us back to the
old problem in slightly different form: now we have a graph of
object-dependencies. The whole article talks about a C++ programming practice
of organizing object dependencies and flow strictly into tree-form.
My first thought was that this was all quite a commonplace to be occupying the
respectable pages of DDJ. There have been several books on large-scale OO
programming that admonish developers to manage component dependencies as DAGs
and trees to reduce complexity and improve traceability. But then I thought
of the several huge projects I've worked on pre-Python, and I realized that we
broke such sound sense many times because "uses" relationships often
stubbornly refused to line themselves up properly. I have noticed that I am
much more successful in proper hierarchical design using Python, and similar
problems usually resolve themselves into far fewer actual classes with
better-defined interfaces.
I'm not sure exactly why this is the case, and I'm sure there's a Ph.D.
dissertation in there somewhere, but despite people's insistence on knocking
Python for large-scale system design, I find it many times more suitable than
C++ or Java.
--
Uche Ogbuji
FourThought LLC, IT Consultants
uche.ogbuji@fourthought.com (970)481-0805
Software engineering, project management, Intranets and Extranets
http://FourThought.com http://OpenTechnology.org