Name: Anonymous 2007-08-29 9:58 ID:/KFl/omF
Discuss.
Yet Another Markup Language (YAML) was a great markup language. A way to handle scalars, array, hashes and multi-lines in a human-readable form, and move to and from data structures easily, theoretically in many languages (I have no experienced in this regard).
The best comment I ever heard was "It's great, we just spit out our nightly processing run reports in YAML and the bosses secretary can read them just fine".
Except that somewhere along the way, it would seem the dream was lost. Instead of a straight forward documents<--->struct language, we are seemingly now left with a multi-doc-per-file data serialization language with all sorts of nasty holes in it.
In attempting to become all things to all people, it has become a failure at all of them (except possibly as a debugging data dumper).
It fails as a simple markup language, as it now supports structures and notations that humans have trouble understanding, especially non-technical humans.
It fails as a data serialization language. You simply can't serialize all the oddities of Perl data structures, such as circulars and objects and overloads and so on, without extensive work, and the assistance of those classes.
Storable does these tricky bits right, but it's taken years. Adding support for Singletons to Storable alone took several months, involved 4 people, and produced what is probably the largest rt.cpan.org comment trail of all time (Bug #4901)
YAML just blindly blesses things into classes, regardless of whether the class can support that, is loaded, or even exists.
Support for complex Perl structures also pretty much kills comprehensive cross-language support. The largest gripe that the Python people have with the JavaScript Archive Network is it's use of YAML.
You cannot implement Perl-complixity serialization without class hooks, and you can't sanely implement class hooks in any sort of cross-language fashion.
Noting the 4 outstanding bugs rated "Critical", 12 rated "Important", and about 15 other smaller ones, and as much as it pains me to do this, I have to rate YAML as a failure.
And given the mission it has now set itself, I cannot see it ever being able to succeed. There are too many irresolvable paradoxs.
I'd greatly like to see something that addressed the original goal... perhaps "YIML - YIML isa Markup Language"?