To LUGNET HomepageTo LUGNET News HomepageTo LUGNET Guide Homepage
 Help on Searching
 
Post new message to lugnet.cad.devOpen lugnet.cad.dev in your NNTP NewsreaderTo LUGNET News Traffic PageSign In (Members)
 CAD / Development / 8445
8444  |  8446
Subject: 
Re: Backwards Compatibility (Was Calling all Meta-commands)
Newsgroups: 
lugnet.cad.dev
Date: 
Sat, 15 Mar 2003 23:56:02 GMT
Viewed: 
1898 times
  
In lugnet.cad.dev, Orion Pobursky writes:
I think we need to put a lock on the creation of any new commands until we
can properly document the existing commands.  This will prevent the overlap
of functionality.

Having read the other replies to this post, I feel that--no matter how
well-intentioned--putting a lock on new meta-commands is both wrong and
impractical.

The simple fact is that all LDraw-based development is done voluntarily.  As
such, it's impossible to control what developers will do.  We can ask
nicely, but that pre-supposes that all developers will see the request and
obey it.

And, even if a devoloper voluntarily accepted the lock on new meta-commands,
this could easily result in having the new functionality they wanted to use
a meta-command for never implemented at all.  When you're programming
something for fun, you often never come back to ideas that you were
sidetracked from.

It may sound selfish, but when I'm working on LDView, I'm not usually
willing to wait for group opinion before adding some new feature (not that
I've added or even really needed any new meta-commands for LDView, since
it's just a viewer).  First off, it takes too long, and forces me to try to
come up with some other feature to work on in the interim.  And second, the
simple fact is that I add the features to LDView that I want to add.  Many
LDView features are the result of user requests, but the simple fact is that
I'm not going to work on a feature I'm not interested in, no matter how many
users request it.

Having said this, I do believe that we should request that all future
meta-commands be done in such a way that it is self-evident that they are
meta-commands, and not comments.

Here is my suggestion (just a suggestion, mind you).  All future
meta-commands could look like the following:

0 {META} <command> [arguments]

Where the "0 {META} " signifies a meta-command (the spaces are both
required, but can be repeated), <command> is whatever the name of your
meta-command is, and [arguments] is the optional list of arguments.  Example
(re-do of MPD commands):

0 {META} MPD-FILE <filename>
0 {META} NOFILE

I changed it from FILE to MPD-FILE because FILE isn't really very
self-documenting.  The NOFILE command on the other hand isn't really
MPD-specific.  It's a generally useful command that just happens to have a
slightly extended definition when present in MPD files, and was originally
created as part of the MPD spec.

Note: I'm not suggesting we EVER implement the above MPD meta-commands.  I
feel that the existing MPD meta-commands have been in use too long for it to
be practical to change them.  Since all programs would really need to
maintain backwards-compatibility with the old ones, it would mean that files
using the new format would be compatible with less programs, and program
authors would all have to add code to support the new format.

Another note:  I haven't really seen it in this thread, but there is a
fundamental difference between meta-commands that actually cause behavior,
and formalized tags for file meta-data.  For example, "0 Author:" is a
formalized tag for specifying meta-data.  Programs may want to parse the
data, but it's still just a tag.

We could request that future description fields be of the following format:

0 {FIELD} <field name>: <field value>

Example:

0 {FIELD} Created-by: MLCAD

Any program that wanted to could display a free-form list of all the fields
in a file without any fore-knowledge of the field names.

--Travis Cobbs



Message has 4 Replies:
  Re: Backwards Compatibility (Was Calling all Meta-commands)
 
In lugnet.cad.dev, Travis Cobbs writes: <snip> (...) I like this suggestion a lot. It solves most of the problems we've been discussing about namespace pollution. -Orion (22 years ago, 16-Mar-03, to lugnet.cad.dev)
  Re: Backwards Compatibility (Was Calling all Meta-commands)
 
(...) Right. While a lock would be well meant, it just isn't the right approach. (...) Yep. (...) Not selfish in the least, I don't think. If you're doing this for your own enjoyment, why should you be expected to get a group opinion before adding (...) (22 years ago, 16-Mar-03, to lugnet.cad.dev)
  Re: Backwards Compatibility (Was Calling all Meta-commands)
 
(...) This is all the main idea behind my suggestion for a branch of the namespace to be considered 'open to all' without discussion. I originally suggested 0 APP appname COMMAND but now I wonder if 0 UNOFFICIAL appname COMMAND, or something (...) (22 years ago, 17-Mar-03, to lugnet.cad.dev)
  Re: Backwards Compatibility (Was Calling all Meta-commands)
 
(...) I like that. I think a clear indication that a comment is in fact a meta statement is needed. And I find "0 {META} " more distinct than (META), <META>, {BFC}, <BFC>, MODULENAME and whatever else has been suggested. But we're still stuck with (...) (22 years ago, 20-Mar-03, to lugnet.cad.dev)

Message is in Reply To:
  Re: Backwards Compatibility (Was Calling all Meta-commands)
 
In lugnet.cad.dev, Tim Courtney writes: <snip> (...) I think we need to put a lock on the creation of any new commands until we can properly document the existing commands. This will prevent the overlap of functionality. -Orion (22 years ago, 15-Mar-03, to lugnet.cad.dev)

154 Messages in This Thread:
(Inline display suppressed due to large size. Click Dots below to view.)
Entire Thread on One Page:
Nested:  All | Brief | Compact | Dots
Linear:  All | Brief | Compact

This Message and its Replies on One Page:
Nested:  All | Brief | Compact | Dots
Linear:  All | Brief | Compact
    

Custom Search

©2005 LUGNET. All rights reserved. - hosted by steinbruch.info GbR