Re: JSON in OTP

Viktor Söderqvist <[email protected]>
Newsgroups gmane.comp.lang.erlang.general
Message-ID <[email protected]>
Thanks for the replies. I just thought it's convenient that a standard
library provides convenient stuff, but a good package system can do
that as well.

I assumed these libraries (jsx, jsone, jiffy) would be stable by now
and wouldn't need much maintainance, so you could just take one of them
in, but I guess I was wrong. These three all have recent commits.

JSON doesn't seem to be in all other high-level langauges' standard
libraries either (Python: yes; Perl: no; PHP: yes; Java: no; Elixir:
no; Haskell: no). Package systems seem to solve it instead.

One problem with multi-level dependencies is that if each of your
dependencies depend on a different JSON implementation (or a different
version), you may end up depending on several different
implementations. But if you decouple the encoding/decoding from
libraries doing things like JSON Schema, JSON RPC, etc. and only pass
them the parse tree, you avoid this. I guess this is good style anyway.
At least there is a de-facto standard parse tree representation by now.

So I guess you're right being restrictive. How about deprecating inets?
xmerl? parts of zlib/zip (there's some overlap)? I guess you're already
thinging hard about what can be removed...

BR/
Viktor


On Wed, 2020-11-04 at 17:11 +0100, Kenneth Lundin wrote:
> The answer is that looking back maybe we should have added JSON
> encode/decode to OTP 12 years ago, but now there are a number of good
> separate JSON libraries
> outside OTP so why should we (the OTP team) take on the task of
> developing and maintaining a JSON library.
> Why is it better to include the JSON lib in OTP than to have it
> separate?
> We have:
> jsx, jsone, jiffy, .... to name a few
> 
> We or someone else could create an OTP+ distribution which includes
> OTP + other popular non OTP applications. I even think Erlang
> Solutions has done that at some point.
> 
> /Kenneth, Erlang/OTP, Ericsson
> 
> On Mon, Nov 2, 2020 at 10:39 PM Viktor Söderqvist <
> [email protected]> wrote:
> > 12 years have passed since EEP 18. [1] Since then, maps have been
> > added
> > to Erlang and the string module has been made accept binaries. This
> > makes up a more obvious representation of JSON than in 2005 [2].
> > 
> > If anyone was arguing that OTP is made for telecom and not web
> > development, this argument doesn't hold anymore, now that the
> > telecom
> > standards are replacing GTP and Diameter with HTTP and JSON.
> > 
> > The 5G mobile network specifications are full of JSON, REST and
> > HTTP/2
> > (e.g. 3GPP TS 29.500 [3]) and in 3GPP TS 29.501 [4] things like
> > HATEOAS, OpenAPI specifications using JSON Schema and YAML files
> > and
> > how JSON documents should be patched using HTTP PATCH requests are
> > covered. (Other interesting 5G specs are 23.501 [5] and 23.502
> > [6].)
> > 
> > JSON has also been standardized as ECMA-404 [7] in 2017.
> > 
> > Is it time to re-evaluate adding json:{encode,decode}/1 in OTP? Or
> > are
> > the arguments against it still valid?
> > 
> > Regards,
> > Viktor
> > 
> > [1]: http://erlang.org/eeps/eep-0018.html
> > [2]: 
> > http://erlang.org/pipermail/erlang-questions/2005-November/017805.html
> > [3]: https://www.3gpp.org/DynaReport/29500.htm (Click the Versions
> > tab,
> > then click a linked version number to download a zip file which
> > contains a Word document, which can be converted to a readable
> > format...)
> > [4]: https://www.3gpp.org/DynaReport/29501.htm
> > [5]: https://www.3gpp.org/DynaReport/23501.htm
> > [6]: https://www.3gpp.org/DynaReport/23502.htm
> > [7]: 
> > http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf
> >
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.