From: Brian I. <in...@tt...> - 2002-09-06 18:10:55
|
On 06/09/02 17:36 +0000, Clark C . Evans wrote: > On Fri, Sep 06, 2002 at 10:15:52AM -0700, Mike Orr wrote: > | On Fri, Sep 06, 2002 at 12:40:11PM -0400, Steve Howell wrote: > > I have no problem with a flag to turn it off. But I really think > that such a flag belongs in the YAML file itself. To do otherwise > is quite mis-leading. This is similar to the discussions we had on tabs. At one point I wanted to let the application decide how to handle them. Clark and Oren talked me out of it, and I think they were right. You want a YAML document to stand on its own as much as possible, and to contain all the information that an application needs to process it and roundtrip it accurately. The temptation is great to just use YAML as a syntax and then apply any sort of useful semantics you wish to it. This of course kills interoperability. On one hand, I buy that argument. Clark will die by it. Oren will be next in line. I personally am not that sure. The key point is on how important of a use case "interoperability" actually is. I tend to think that for the motherload of applications, there will be one programming language, one set of programmers and one application domain. I sure as hell don't care how well my config file for my foobar written in Perl, works for your barson written in Ruby, if you get my drift. Perhaps we need to define the usage categories first and then graph out what level of interoperability is important in each. Oren is EXCELLENT at this type of thing (if you get my drift Oren ;) For instance, maybe YAML is only completely interoperable under the guidance of a schema. We need to map usage categories against semantic properties. I'll start a list of each. Feel free to flesh them out. After we get enough, let's graph them. YAML Usage Categories: - Internal Data Serialization - Config Files - Log Files - Data Dumping - RPC Messaging - Object Persistence - Documents (like invoices) - YAML Editors YAML Semantic Properties: - NYN Roundtripping - YNY Roundtripping - Non string data types - Numeric types - Timestamp types - Mapping key order It has been my uneasy feeling that we have never looked closely at these types of correlations. Clark has always wanted a YAML config file to be as heavy duty as a inter-platform messaging system. I think that's the crux of our problem. YAML needs to make the simple things simple and the hard things possible (like Perl! :) There needs to be a sliding scale of language features (like schema) and tools (like YPATH) and information models (like the Generic model) that make YAML stronger when it needs the strength, but (more importantly) can be avoided when it doesn't. Cheers, Brian |