Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses
 
PerlMonks  

Re^3: Open Human Readable Computer Aided Design file format

by jdporter (Canon)
on Sep 08, 2004 at 21:26 UTC ( #389475=note: print w/ replies, xml ) Need Help??


in reply to Re^2: Open Human Readable Computer Aided Design file format
in thread Open Human Readable Computer Aided Design file format

Maybe if they just include a hook to the Eclipse shell, as an (optional) layer above the fs, they can get the versioning/collaboration "for free". IMHO, that's the only very interesting part of this problem. The rest is just the classic (yet still never quite settled) question of how best to freeze/thaw objects.

I for one am disappointed they're using YAML. It's an ugly, non-intuitive (to my non-Pythonized eyes), and obsequiously-different format. But if they do it right, the freeze/thaw layer will be pluggable, so I could use XML, or Lisp, or whatever, as I saw fit.


Comment on Re^3: Open Human Readable Computer Aided Design file format
Re^4: Open Human Readable Computer Aided Design file format
by ewilhelm (Novice) on Oct 08, 2005 at 18:11 UTC
    The beauty of using YAML is that it works well with simple shell tools like grep and also diff's well because a change of one property involves a change of one line. XML is too often stored without linebreaks, not to mention what happens when you add linebreaks and then diff that.

      Obviously, line-oriented tools, such as grep and diff, are mismatched to XML. A proper XML toolset operates on the data structures, not on the raw text.

      The "one difference, one line" feature is nice... but it doesn't include any context, i.e. where in the data structure the different element is; you'd have to do something else to reveal that (e.g. load it in an editor). An XML diff'ing tool can report such context, because it knows it.

      Don't misunderstand me — I'm not defending XML. I know it has its problems. But — unlike yaml — being gratuitously different isn't one of them.

        ...but it doesn't include any context...

        Ahh, but one-entity, one-file gives most of the context you could want. Currently, I've just started a huge pile of work on defining a new hub for the über-converter, so I'll see how well this holds up moving into the chromista hub design.

        This example is a little old, but maybe gives you a good idea of why YAML is a Good Thing™ in this case.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://389475]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others taking refuge in the Monastery: (8)
As of 2014-08-23 06:17 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The best computer themed movie is:











    Results (172 votes), past polls