[cad-linux-dev] Re: polymorphic inheritance

  • From: Eric Wilhelm <ewilhelm@xxxxxxxxxxxxx>
  • To: CAD linux development <cad-linux-dev@xxxxxxxxxxxxx>
  • Date: Wed, 25 Aug 2004 06:36:23 -0500

# The following was supposedly scribed by
# Bruno Postle
# on Wednesday 25 August 2004 05:47 am:

>> I think anything to do with inheritance and references takes us
>> too far towards relational drafting. =A0That doesn't fit the
>> rhizopod model.
>
>Yes, none of this has any relevance when using a hub as an
>intermediary between existing CAD tools.
>
>Though the other litmus test of a "good idea" is that it makes
>possible things that were never possible before.

It is a good idea, but it's also incompatible with the existing constraints.

>> So, are you already designing the "sardine" spec here?
>
>No, I'm designing an extension to the spec for the 'reference'
>object,=20

I'm afraid rhizopod isn't extensible.

>I want everything else to be identical to rhizopod. =A0If I=20
>can tag these extended reference elements with "version: foo", then
>your library will know not to bother interpreting them=20

But 'grep' wasn't compiled with my library.

>- It will=20
>spit out a warning and won't core dump on people.

That's possible, but I'd prefer to not have strange speedbumps laying aroun=
d=20
in my rhizopod directories.

Let's take your subclass idea and apply it to the spec:

=46or argument's sake, Draft is using the 'sardine' spec, which is a slight=
=20
evolution of rhizopod that supports references with polymorphic inheritance=
=2E =20
Otherwise, it is identical.  With that, a simple connector that doesn't=20
support polymorphic references is my hop_to_links program (which makes=20
directory trees of symlinks to individual files.)  A better connector would=
=20
interpolate the references of the sardine format into static forms that wou=
ld=20
be readable in the rhizopod format.

http://ericwilhelm.homeip.net/svn/Module-Subversion-Juggle/trunk/data/scrip=
ts/

Maybe sardine is more extensible than rhizopod, and maybe rhizopod eventual=
ly=20
becomes sardine (that is, all of its connectors switch to using sardine), b=
ut=20
I think it's better to have at least a one-way data path rather than having=
=20
the postscript connector ignore your brave new entities (you want to be abl=
e=20
to print them right?)

=2D-Eric
=2D-=20
"Everything goes wrong all at once."
                    --Quantized Revision of Murphy's Law

Other related posts: