Re:YAML: probably not so great after all (2017)
by tlb on Wednesday June 20, 2018 @03:18PM
(#17358763)
JSON5 supports comments, and is only slightly more complex than JSON. https://json5.org/
[ Parent
| on HN ]
Re:YAML: probably not so great after all (2017)
by saghm on Wednesday June 20, 2018 @03:37PM
(#17358948)
The barrier here would be whether there's support in enough implementations to feel safe using it in the wild, which I'm guessing will take a while at the very least.
Re:YAML: probably not so great after all (2017)
by tajen on Wednesday June 20, 2018 @05:32PM
(#17359993)
What’s incredible here is that we’re not at the beginning of programming, when we built temporary languages that ended up becoming forgotten. Web may be a final form of IT, Angular may be the « right », the final, the perfect way to build applications even in 50 years, just like HTML has become the final way to build websites for the last 25 years, JSON may make legacy, and my grandson might even struggle with parsers that still use JSON instead of this new tech called JSON5...
Re:YAML: probably not so great after all (2017)
by webXL on Friday June 22, 2018 @08:39AM
(#17373474)
The popularity of transpilers might help overcome that barrier. IDE's and task runners can watch for file modifications and run a simple program to convert to the old format.
But I'm curious what you mean by "in the wild"? If you're using (producing) it, something needs to consume it, and you would probably have control over both in whatever project you were using it for.
Re:YAML: probably not so great after all (2017)
by emodendroket on Wednesday June 20, 2018 @04:31PM
(#17359479)
If you're going to do this kind of thing why would you not add a standard date format
Re:YAML: probably not so great after all (2017)
by continuational on Thursday June 21, 2018 @05:44AM
(#17363498)
Just use a string and ISO 8601? “2018-03-25”
Re:YAML: probably not so great after all (2017)
by emodendroket on Thursday June 21, 2018 @09:40AM
(#17364957)
Wow, I can "just" use that, thanks. The problem is that JSON is an interchange format, meaning that I need to implement this serialization and deserialization quirk on every producer/consumer of my API (which, you know, avoiding is kind of the point of using a standard interchange format). Furthermore, because everything is a string, I can't unambiguously indicate something is meant to be a string in that format rather than a date.
Re:YAML: probably not so great after all (2017)
by wildrhythms on Thursday June 21, 2018 @08:19AM
(#17364402)
What's the timezone?
Re:YAML: probably not so great after all (2017)
by lysium on Thursday June 21, 2018 @04:51PM
(#17369181)
Do you need a time zone for dates?
Re:YAML: probably not so great after all (2017)
by wildrhythms on Thursday June 21, 2018 @08:52PM
(#17370410)
Consider if I'm storing a user's (local) birthday on my server:
{..., "birthday": "2018-03-25"}
If my server is located in New York City, and the user is in Sydney, then my server isn't going to wish them happy birthday in time.So maybe we could do:
{..., "birthday": "2018-03-25", "location": "Sydney/AU"}
But at this point we might as well use a standardized time format (UTC) with a timezone offset. Maybe I'm thinking too far into it?
Re:YAML: probably not so great after all (2017)
by webXL on Friday June 22, 2018 @08:43AM
(#17373495)
ISO 8601 has you covered:
Year:
YYYY (eg 1997)
Year and month:
YYYY-MM (eg 1997-07)
Complete date:
YYYY-MM-DD (eg 1997-07-16)
Complete date plus hours and minutes:
YYYY-MM-DDThh:mmTZD (eg 1997-07-16T19:20+01:00)
Complete date plus hours, minutes and seconds:
YYYY-MM-DDThh:mm:ssTZD (eg 1997-07-16T19:20:30+01:00)
Complete date plus hours, minutes, seconds and a decimal fraction of a second
YYYY-MM-DDThh:mm:ss.sTZD (eg 1997-07-16T19:20:30.45+01:00)
where:
YYYY = four-digit year
MM = two-digit month (01=January, etc.)
DD = two-digit day of month (01 through 31)
hh = two digits of hour (00 through 23) (am/pm NOT allowed)
mm = two digits of minute (00 through 59)
ss = two digits of second (00 through 59)
s = one or more digits representing a decimal fraction of a second
TZD = time zone designator (Z or +hh:mm or -hh:mm)
Re:YAML: probably not so great after all (2017)
by outworlder on Wednesday June 20, 2018 @03:35PM
(#17358924)
Most parsers will not support JSON5.
Re:YAML: probably not so great after all (2017)
by nostalgeek on Wednesday June 20, 2018 @07:58PM
(#17360989)
More like browsers can de-serialize JSON5 natively. writing a JSON5 parser is not difficult. It's just not part of most std libs in most languages, but I would argue that most std libs don't parse YAML either.
JSON5 is a good compromise.
Re:YAML: probably not so great after all (2017)
by tlb on Thursday June 21, 2018 @05:27PM
(#17369437)
Neither Chrome nor Firefox's JSON.parse accept JSON5. I'm not sure what browser API you mean.
For example,
JSON.parse(`{"foo":"bar",}`)
throws a syntax error.
Re:YAML: probably not so great after all (2017)
by nostalgeek on Thursday June 21, 2018 @08:29PM
(#17370316)
> Neither Chrome nor Firefox's JSON.parse accept JSON5. I'm not sure what browser API you mean.
This is a typo, I meant "can't" not "can". Off course browsers don't support JSON5 or my message makes no sense whatsoever.