On Monday, 25 August 2014 at 23:00:59 UTC, Jonathan Marler wrote:
About the language - if you are making a new data serialization language(NOT markup language. These languages don't actually mark anything up) for DUB, could you please make it support heredocs? This will allow, in the future, to easily add pre-build and post-build scripts directly in the build-file.


I am not familiar with the term "herdoc". After a quick google, it looks like it refers to a way of escaping the language. Is this not something that a single-quoted string couldn't handle? You would still need to escape single-quotes and back-slashes, but it comes close. However, I wouldn't be against adding a special character sequence to support this (Maybe '<<' or something).

Heredoc, after parsed, is no different from a regular string. But isn't ASON as well, after parsed(with schema), is no different from regular JSON?

As far as I understand, the point of ASON is to make the build files more human readable and writeable. Heredoc do the same thing - if you have a long script(a shell script, or one in a hosted scripting language, or even D code that'll be ran with rdmd) it's hard to write it in a regular quoted string, because they don't support newlines(you have to use '\n') and you need to be careful not to use the quote in the script itself(unless you escape them). Heredoc makes writing these scripts more straightforward.


Alos - nameless fields scare me. They mean that ASON is not a schema-less format - and schema-less-ness is one of the most important features of languages like JSON, XML and YAML. I accept it if consumers break when suppliers remove fields - but nameless fields mean that consumers might break when the supplier added fields in the middle or reordered fields. This makes ASON a schema-bound format - and developers that choose schema-bound formats, usually care about compactness that ASON does not supply(since most the syntax is one of schema-less formats, it's very verbose compared to schema-bound formats).


Yes when you start using nameless fields your data now needs a schema. And I had the same concerns you mentioned when adding/removing fields. That's why I recommended the only fields that DUB should make nameless are the "name" fields on some objects. However, this is not important, completely dismissing the nameless fields feature for DUB would be completely reasonable as well.

Using the nameless fields in DUB is not the problem - DUB has a well defined schema with a well defined single source of authority. If you want to see ASON used as a data transfer format(like JSON) then these nameless fields will be problematic.

Reply via email to