On 2013-09-13 10:22, Sönke Ludwig wrote:
I have to admit that looking at the examples *now* leaves me with a
strong distaste for YAML. That wasn't the case in the beginning, but
now, after not having looked at any YAML document since then and even
with only the simplest syntax constructs used, it just looks confusing
to me.
Some points that stand out:
- Built-in field names and user defined dictionary key (can) look the
same and can be quite confusing (my initial reaction to the
"sub-package:" line in the example was "Hmm.. what kind of command
is *that*?")
- Indentation based scoping is much less explicit than braces. Someone
who has never seen the format may well think that it's just visual
formatting and has to read up on it first.
- It still has the deep nesting of the JSON format
- The complexity of the specification is a bit of a turn-off, too
Having said that, YAML for sure is a nice format for many things and
considerably more powerful in some areas than f.ex. SDL, but here I
think the focus should be on the most concise and intuitive textual
representation and IMO SDL does a better job there. More advanced
features of YAML, if needed, can also easily be simulated with SDL.
Here's a lightly modified version of the YAML example:
name: my-package
description: A package for demonstration purposes
dependencies:
vibe-d: ">=0.7.13"
sub-package: { version: ~master}
configurations:
# command line version
- name: console
targetType: executable
versions: ConsoleApp
# Win32 based GUI version
- name: gui
targetType: executable
versions: UseWinMain
libs-windows: [gdi32, user32]
I have used the inline format for "sub-package" and "libs-windows". I'm
also assuming it's possible to use a single value instead of an array
for "versions".
Don't know about SDL, but YAML allow you to have references, like this:
configurations:
# command line version
- name: console &console
targetType: executable
versions: ConsoleApp
libs-windows: [gdi32, user32]
# Win32 based GUI version
- name: gui
<<: *console
versions: UseWinMain
--
/Jacob Carlborg