On Tuesday, October 9, 2018 5:45:02 PM MDT Nicholas Wilson via Digitalmars-d 
wrote:
> On Tuesday, 9 October 2018 at 18:07:44 UTC, Márcio Martins wrote:
> > On Tuesday, 28 July 2015 at 14:07:19 UTC, Atila Neves wrote:
> >> Start of the two week process, folks.
> >>
> >> Code: https://github.com/s-ludwig/std_data_json
> >> Docs: http://s-ludwig.github.io/std_data_json/
> >>
> >> Atila
> >
> > Sorry for the late ping, but it's been 3 years - what has
> > happened to this? Has it been forgotten?
> >
> > Working with JSON in D is still quite painful.
>
> I presume it became vibe.data.json, there is also asdf if you're
> looking for some other library.

As I understand it, it was originally part of vibe.d (though I think that it
may have been internal-only to be begin with) and was put into std_data_json
for the attempt to get into Phobos. The version inside of vibe.d has
continued to be maintained while the separate version hasn't really been.
Either way, there wasn't enough agreement about the design during the Phobos
review process for it to make it into Phobos, and Sonke gave up on it.

I've used std_data_json on a few projects, and it works reasonably well for
reading JSON, but I've found it rather frustrating when writing JSON,
because you have no control over the order it writes data in - which results
in perfectly valid JSON, since the key-value pairs are not ordered, but it's
really annoying to use it for configuration files and the like where you
organize the file the way you'd like, and then your program completely
reorders it when it needs to make an adjustment to the file. However, I
really need to check out the properly maintained version in vibe.d, and as
you say, there are other JSON parsers on code.dlang.org such as asdf.
Writing a JSON parser is pretty easy. It's coming up with an API that would
get through the Phobos review process that's not necessarily easy.

While we would like to replace std.json, someone is going to have to put in
the effort to write (or complete) something - and push it through the Phobos
review process - in order to replace std.json. And while there's clearly
some interest in having certain modules in Phobos replaced (or in some
cases, new modules added), there doesn't seem to be many people willing to
push their code through the Phobos review process at this point even if
they've put the time and effort into writing the code. They're far more
willing to just put it up on code.dlang.org and leave it at that. I think
that the fact that code.dlang.org works as well as it does has to a large
extent killed off interest in attempting to put anything through the Phobos
review process. It's been quite some time since anyone has made the attempt.

Personally, I don't think that we even need some of the stuff in Phobos
that's in there (like JSON or XML parsers) and that having it on
code.dlang.org makes more sense, but I do think that having subpar versions
of them in Phobos is a problem - arguably even more so when we say that at
the top of the documentation and have had for years as is the case with
std.xml. I don't think that std.json is rated as badly, but it's been talked
about as needing replacement for years, and std_data_json would have
replaced it had it made it through the review process. So, we should
probably replace it with something one of these days, but of course, someone
has to put in the time and effort, which no one wants to do.

- Jonathan M Davis




Reply via email to