Thank you Archie, nicely expressed.

The discussions in this thread will help us write a crisper set of 
goals/non-goals and a clearer motivation for the to-be-written JEP.

Paul.

On May 21, 2025, at 10:03 AM, Archie Cobbs <archie.co...@gmail.com> wrote:

On Wed, May 21, 2025 at 11:30 AM Paul Sandoz 
<paul.san...@oracle.com<mailto:paul.san...@oracle.com>> wrote:
I consider this a “known unknown” (in the words of Mr. Rumsfeld). We would need 
to explore this area throughly, which includes the interconnection with 
Serialization 2.0, before we really know what we can and should do in the near 
and long term. That’s a significant effort, and I would like to separate it out 
from the non-trivial effort to first get a rather modest API over the line.

I think the discussions about object mapping and serialization are important 
and super interesting, but as Paul points out, not really an immediate concern 
wrt. this proposal.

In trying to understand this discussion, there are so many different concepts 
stirred up it's hard to keep track. It was helpful for me to go through the 
exercise of trying to partition the discussion space. Below is my feeble 
attempt at that...

Side note: for better or worse, there are lots of parallels here with XML, so I 
expect the solutions to parallel the XML solutions, for many of the same 
reasons. We should also avoid parallelling the mistakes (e.g., including too 
much functionality in the JDK which gets stale over time).

Q1: What is JSON? Just like XML, it's a specification for structured documents. 
By "structured" we mean the syntax implies a nested tree-like structure (by 
"document" we mean "file" or "streams of bytes").

Q2: What do people want to do with JSON?

1. Model a JSON document as Java objects in memory (using a "document object 
model" or DOM). Analogy: org.w3c.dom

2. Convert JSON DOM objects (see #1) to/from JSON documents. Analogy: 
{javax,jakarta}.xml.{parsers,transform}

3. Transform JSON documents. Analogy {javax,jakarta}.xml.transform

4. Read/write normal Java objects to/from JSON ("object mapping"). Analogy: 
{javax,jakarta}.xml.bind (JAXB), JiBX

5. Read/write normal Java objects, where JSON is one possible encoding 
("serialization 2.0"). Analogy: java.beans.XMLEncoder (!?)

To me these are mostly separate problems whose solutions can be solved 
separately, each building on the previous (analogous to what was done with XML).

So what problem is this new API trying to solve? Just #1 and #2.

Of course, you probably want to use the solutions to problem 1 and 2 in your 
solution to problems 3, 4, and 5.

But let's respect the ordering here. In solving problems 1 and 2, we should 
focus on those problems only. The solution to problems 1 and 2, if done well, 
will automatically be a good foundation for solving problems 3, 4, and 5, etc.

-Archie

P.S.  I'm interested in "serialization 2.0" too - and that discussion must be 
happening somewhere else... where?

--
Archie L. Cobbs

Reply via email to