[MMTK] Re: [PyMOL] improving interoperability between python moleculetoolkits (fwd)

Richard Gillilan reg8@cornell.edu
Fri, 13 Dec 2002 10:25:15 -0500

> Konrad Hinsen wrote:
> Indeed. But this illustrates nicely a frequent problem faced by
> software designers: Software like OpenDX is powerful and flexible, but
> also huge and difficult to learn. A small specialized tool is easier
> to use for the specialized user. Of course those users then find
> themselves in a mess of specialized tools a few years later, but it is
> rather hopeless to try to warn them about this in advance.
> > future system should put a great deal of work into developing a
> > strong underlying general data model, not just for molecules, but
> > for all kinds of scientific data: grids, vector fields, polygonal
> > surfaces, trees etc. Just leaving things open to general objects is
> Although that is desirable in principle, too ambitious projects often
> end up in either an unfinished or an unmanageable state. Take CORBA,
> for example. ...

Yes, CORBA is complex and has some overhead. I have also read that
Microsoft's DCOM/OLE is very complex. I don't think either of
these is a good way to go, though there are some very cool applications
I have seen. A lab I know at LBL uses CORBA as a device interface. 

>  A great concept, very general but implementations are few
> in number, often slow, sometimes expensive, and always come with a
> steep learning curve. Or take SGML: the general of the general, but
> people started looking at it only when its slim brother XML was there.

Even XML is very verbose for molecular data, but I haven't seen any
better way to write general objects to disk.

> It is not easy to find the right equilibrium between simplicity and
> generality. For the specific case of scientific computing, I think
> simplicity is more important in most cases. Scientists need to
> understand and be able to modify code that is the basis for their
> research. And they are usually not well-trained software developers.

I agree that simplicity is most important. The vast majority of 
scientific users are non-programmers and have no time or desire to
write and debug code (scripts, visual programs or otherwise). These
folks need a good end-user application with simple configuration
options. The mode of operation I have seen for years is that a research group hands down
mostly undocumented scripts to future members, passing on the knowlege
of how to use them by one-on-one interaction. A few students will delve 
into the code and really modify, but most will just know how to edit
a few parameters to get what they want. I agree with Allen Holhub in his
book on C/C++ coding rules: "Don't solve problems that don't 
exist" and "Solve the specific problem not the general case". Too much code 
is over configurable, which makes installation and use a combinatorial nightmare.

> Well... It's a design by committee approach that has rarely produced
> useful results in spite of an enormous effort. Moreover, which
> scientist can afford to participate in their meetings? That's a
> full-time job.

What can I say? Nobody likes to have to adhere to standards, and it is very hard work
to get people to agree on them. Ultimately, though, I think that is the way
things will head as information (ge

> Konrad.