On Sat, 2009-04-04 at 20:54 -0500, Curtis Olson wrote:
> Since the beginning of time, computers have included the concept of
> arrays.
> 
> Since the birth of the property system in FlightGear, it has supported
> booleans, integer, floating point, and double floating point types.
> The property system has also always supported character arrays.

To claim the property system supports character arrays is wrong, and
somewhat disingenuous.  The property system supports strings as atomic
units.  You can not access the nth character of a string nor can you
change only the nth character of a string like you could if it were an
array.

The property system serves as a human interface as well as interfacing
between subsystems.  Melchior expressed his very deep, very real, very
valid concerns better than I can in his initial e-mail
http://www.mail-archive.com/[email protected]/msg21558.html

I have heard nothing to address his vital questions.
How should such a property be displayed in the property browser? Or the
web interface? Or the telnet interface?
Will input fields in remote applications (instructor) have to write
special validators for VEC3 properties, rather than just having
three fields that accept a number?  How will we input VEC3 properties
via the property browser?  

As he is currently the primary coder in the GUI and interface department
he is in the best position to foresee problems.  I urge you to trust his
judgment.


> The property system supports implicit conversions between types if
> that is asked for, and always makes it's best attempt.  But if you ask
> for something nonsensical or poorly defined, you will get something
> back based on the rules of the system, but it may not make a lot of
> sense.
> 
> If you try to extract the floating point value of a string (aka
> character array) you get something back based on the rules of the
> system, but what if you try to retrieve the floating point value of
> "abcdefg".  It doesn't make sense, you probably won't get a useful
> answer although you will get something.  It's up to the calling
> routine to make sensible requests.  It's always been that way, it will
> always be that way.
> 
> Now, the message I am getting here is that some people think it's
> unacceptable to also support double or float arrays within the
> property system.
>

Count me in as "some people"  From the e-mail traffic on this list,
"some people" also include some very talented developers:

Jon Berndt:
"I always came back to the conclusion that (vectors) would be a really
bad idea. And it still is." 

Erik Hofman:
"I have the feeling this will become a developers nightmare" 

LeeE:
"This strikes me as an extremely bad idea." 

Stuart Buchanan:
"I'm very concerned about making the external interfaces more complex.
One of the huge strengths of the property system at present is its
simplicity, and I think that would be lost." 

Csaba Halász:
"I like that the color components are written out, less possibility for
confusion (RGBA? ARGB? BGRA?)" 



> It can't be because arrays are messy because we already support 
> character arrays.
>
> It can't be because some conversions wouldn't make sense, because we
> already have that situation.
> 
> It can't be because it makes the property subsystem too complex,
> because Melchior, to be fair, you are the king of creating very
> complicated systems (with correspondingly high functionality.)  I
> don't mean that as a diss ... I'm just observing that you have put
> together some highly complex systems full of subtle nuance within the
> flightgear code base.

Melchoir has done much to enhance the usability and elegance of most of
our systems.  Initially I was not a fan of all the nasal code, but I
have come to greatly appreciate its functionality and power.  

> I don't have time to follow along with IRC so I can only see what is
> posted to the mailing list, so I very well could be missing key parts
> of this discussion.  But honestly, I am really having trouble
> understanding the objection here.  I fail to see what is going to
> break, what is going to end, what harm is going to be done.  Is there
> a direct conflict in logic?  Is there a non-othogonality in design?
> Is there some behind the scenes fued going on that I'm (thankfully)
> unaware of ... in that case I'll quit trying to draw out logical
> reasons for your objections?  I'm married so I'm continually caught
> trying to find logical explanations where there are none. :-)  I'm not
> suggesting that's the case here, but if it is, we might as well say it
> clearly so I don't have to waste my time trying to understand what's
> going on.
> 
> 
> I asked Tim if it would make sense to just support generic double or
> float arrays in the property system ... just like we support character
> arrays.  However, he replied that you were even more opposed to that
> than specific color or position array types.  Again, I fail to
> understand why.
> 
> I could be easily missing something here, I'm not claiming I have an
> all seeing eye.  But if someone makes an assertion I don't understand,
> or supports it with reasons that don't make sense to me, I have
> trouble buying that assertion.  I've always had that problem, and it's
> my own personal failing I know.  I think it's a good thing I didn't
> sign up for military duty here when I was a kid because of that.

It comes down to human usability of the property tree.  We have taken
great pains to ensure the tree is self-documenting and consistent.  That
is why we have "fuel-level-lbs" instead of just "fuel".  What Tim has
proposed is sticking in unlabeled, undocumented values.  Values that can
not be changed via the current property browser or telnet interface.

In addition, as has been pointed out we already have mechanisms in-place
in the tree to achieve these ends.  To quote AnderG, "...you could tie
each of the components of a double vec[4] to properties, e.g.
color/{red,green,blue,alpha}. That would make it possible for the
internal C++ code to use the vector representation while still
preserving a nicely structured and typed property tree for external
access."


> But at the end of the day here, I haven't seen why Tim's contribution
> is unreasonable, or what makes it so different from other
> contributions that have added functionality to the code base.   I'm
> trying to guess here at what it might be and haven't stumbled on
> anything I can point to.  Really, why is it so unacceptable?
> 
> Regards,
> 
> Curt.

Again, Curt, if you won't trust Melchior's judgment, trust Jon's, or
Erik's or LeeE's or Stuart's or Csaba's.

Respectfully,
Ron






------------------------------------------------------------------------------
_______________________________________________
Flightgear-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/flightgear-devel

Reply via email to