From: Doug Sutherland (wearable_at_earthlink.net)
Date: 2002-02-27 15:34:05
John,
> Sorry plug-in was a term someone else brought up.
> That is why I was saying Modules!
Okay, good, plug-ins are nasty. But modules ... well
we need to figure out ... are we building objects or
components? Modules are what I would consider to be
the old procedural (but modular) approach. If we are
doing OO they are objects. If we are making a system
based on components, it's a lot more work, harder to
get right, has very rigid rules, etc etc.
>> I've seen some pretty huge and ugly frameworks
> So have I. Windows, Linux, etc :-)
Linus is just the kernel. Everything else is GNU and
other stuff inherited from unix. Windows MFC is a
good example of a huge framework, hope I never have
to touch that.
>> Even components are questionable, it's not like this
>> system is going to be reconfigured
> ??? Why not ???
It may be reconfigured in small ways, but an EEG is
an EEG is an EEG. Components are powerful when many
parts fit together to make different things. Keep
in mind that 'hardened' objects are sort of like
components but they don't need to follow very rigid
interfacing rules (those rules that allow snapping
them together). Do people need to snap together
configurations of OpenEEG? Probably not. In other
words, we can just have a collection of APIs. Yes
the interfaces and class boundaries should be done
with planning, but making them into components is
probably more work than is necessary.
> The Main Program loads all of the modules need for
> the particular application, connects output to
> inputs and the application starts.
That's the way good OO programs work. There is no
reason that they need to be components unless they
will be mixed and matched in various ways. Take a
look at this white paper.
http://www.trireme.com/whitepapers/design/components/objects_vs_components.html
"A key dichotomy asked whether it was all about
managing complexity or about issues of delivery
and maintenance."
> In Java it's trivial as each class is a separate
> file and after extantiation is treated as any other
> object.
No, that's OO not components. Java Beans are
components. Java classes are object classes. This
is what I am saying: we don't need beans. Take a
good look at Beans and COM/OLE and compare with
regular OO. There is a big difference. Objects ARE
modular "black boxes", but not components.
> Can we do the same in C++ or does it have to be
> recompiled to include new classes??
All real OO systems do dynamic loading.
>> NO don't even mention CORBA.
I did an opening keynote at OOP99 in Joerg's back
yard (Munich). They were not too pleased because
they are all CORBA fanatics, and I basically told
them that CORBA was a hairball :)
> Maybe we should do a poll and see who programmes
> on here! We maybe programming for the people that
> use EEG, NF programs in a clinical or healing
> environment. Most of these wouldn't be able to
> recompile and customise a program to do what
> they want it to do.
Okay, you're losing me here John. They won't need
to compile anything. We will have precompiled
binaries and an install script. Ideally the
configuration will be via simple GUIs. That has
little to do with objects vs components. Where
components make sense is when the END USER will
be putting the system parts together in various
different ways, and I don't think they will do
that with OpenEEG.
> So we would have to build every hardware module
> and display type that they MAY want to use into
> the program, that is going to make one blotted
> bit of software (IE Netscape with all the bells
> and whistles). :-(
No. There is no one THE program. There is a set
of classes. Only the classes that are needed get
loaded. Dynamic loading and instantiation.
> But using components they will only load the
> components necessary to run the particular protocol
> they want to run. IE much smaller memory foot print.
No. That is also achieved with objects. Components
have more to do with rigid interfacing requirements.
Please compare Java with Java Beans, then compare
C++ with COM. Therein you will see the difference.
Perhaps there is a place for components somewhere
in OpenEEG but so far I can't see it. There is
actually MORE power in OO if done correctly.
-- Doug
This archive was generated by hypermail 2.1.4 : 2002-07-27 12:28:39 BST