Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
RE: [eclipse-incubator-e4-dev] What I dislike about using EMF for e4...

>From what I've seen[1], JSON is the de facto standard in the Ajax world. No
matter what features it is lacking, that's what people are using. I doubt
we're going to change their minds :-)

Basically, my observation is that in the Ajax world lightweight and simple
pretty much always trumps completeness and fancy features. 

[1] Obviously, my technical credentials are suspect at best :-) By "I've
seen" I mean what I've observed from being on the board of the OpenAjax
Alliance for the past 1.5 years and monitoring the IDE, Runtime and Hub
lists there. 

Mike Milinkovich
Office: +1.613.224.9461 x228
Mobile: +1.613.220.3223
mike.milinkovich@xxxxxxxxxxx

> -----Original Message-----
> From: eclipse-incubator-e4-dev-bounces@xxxxxxxxxxx [mailto:eclipse-
> incubator-e4-dev-bounces@xxxxxxxxxxx] On Behalf Of Michael Scharf
> Sent: Tuesday, April 29, 2008 10:27 AM
> To: E4 developer list
> Subject: Re: [eclipse-incubator-e4-dev] What I dislike about using EMF
> for e4...
> 
> Ed,
> 
> I totally agree with you that JSON is missing two important
> features of a data serialization format: Types and References/IDs.
> 
> I have cerated several JSON like formats that have types and
> id/references. With those two extensions they are very good
> data formats....
> 
> Michael
> 
> 
> > Fabian,
> >
> > Thanks for sharing your experience. Marcelo Paternostro was
> > demonstrating his EMF JSON serializer to me the other day; I guess
> this
> > might be a useful thing in the e4 incubator? I'm not sure I fully
> > understand the use case for JSON yet though. JSON does strike me as
> > pretty much useful only as a serialization format and even then, the
> > limitations compared to XML are kind of glaring. The lack of metadata
> is
> > an obvious one. As you read the data, there's really no indication of
> > what types of complex objects need to be created, so barring some
> > additional information, you end up with maps of lists/array with some
> > strings and numbers for the leaves. Even even at this simple level,
> > there's no support for non-containment references, i.e., sharing of
> > complex objects within the tree structure. Of course we can work
> around
> > this by storing a "type" property in each object and by using strings
> > that act as references just href does in HTML. But as you say, JSON
> is
> > another one of these low bars that would be difficult to limbo
> > underneath though exceedingly easy step over toward a higher goal.
> >
> >
> > Ed Merks/Toronto/IBM@IBMCA
> > mailto: merks@xxxxxxxxxx
> > 905-413-3265 (t/l 313)
> >
> >
> > Inactive hide details for Fabian Jakobs
> <fabian.jakobs@xxxxxxxx>Fabian
> > Jakobs <fabian.jakobs@xxxxxxxx>
> >
> >
> >                         *Fabian Jakobs <fabian.jakobs@xxxxxxxx>*
> >                         Sent by:
> >                         eclipse-incubator-e4-dev-bounces@xxxxxxxxxxx
> >
> >                         04/29/2008 02:50 AM
> >                         Please respond to
> >                         E4 developer list
> >                         <eclipse-incubator-e4-dev@xxxxxxxxxxx>
> >
> >
> >
> > To
> >
> > E4 developer list <eclipse-incubator-e4-dev@xxxxxxxxxxx>
> >
> > cc
> >
> >
> > Subject
> >
> > Re: [eclipse-incubator-e4-dev] What I dislike about using EMF for
> e4...
> >
> >
> >
> >
> > Tom Schindl schrieb:
> >  > Mike Wilson schrieb:
> >  >> Hm... I actually thought that it *was* possible to make it work
> like
> >  >> "document.body.style.backgroundColor="#FF000";" but that was just
> >  >> based on a brief conversation I had with someone who seemed to
> >  >> understand Rhino better than me.
> >  >
> >  > You are right it works and I've implemented it for our EMF-
> Workbench.
> >  > Ironically this gives me another reason why we need META-Model
> >  > information in our runtime or we have to represent all numbers we
> use
> >  > as DOUBLE-Values!!!!
> >  >
> >  > See this piece of code:
> >  >
> >  >>     public void put(String arg0, Scriptable arg1, Object arg2) {
> >  >>         EStructuralFeature f = findFeature(arg0);
> >  >>
> >  >>         // We always get a double so we have to convert to the
> >  >> appropriate value
> >  >>         if( arg2 instanceof Number ) {
> >  >>             if( f.getEType().getInstanceClass() == int.class ) {
> >  >>                 arg2 = ((Number)arg2).intValue();
> >  >>             }
> >  >>         }
> >  >>
> >  >>         if (f == null)
> >  >>             super.put(arg0, arg1, arg2);
> >  >>         else
> >  >>             eObject.eSet(f, arg2);
> >  >>     }
> >  >
> >  > I've commited my changes to the repository. See
> >  >
> > http://dev.eclipse.org/viewcvs/index.cgi/e4-
> incubator/ui/org.eclipse.e4.presentationmodel.pure.emf.workbench/src/or
> g/eclipse/e4/presentationmodel/pure/emf/workbench/rhino/EMFScriptable.j
> ava?view=markup
> >  >
> >  >
> >  > We don't want our Domain-Object to implement this interface
> directly
> >  > because this is a rhino specific thing and other scripting
> >  > technologies may use different strategies, and because we wrap it
> the
> >  > Wrapper needs to translate this into our real model
> implementation.
> >  >
> >  >>
> >  >> I guess what I was getting at though was that when I'm looking at
> one
> >  >> of the model objects it should look like it's as simple as the
> >  >> equivalent JSON object, and it probably doesn't need a lot more
> than
> >  >> that in the way of capabilities.
> >  >>
> >  >
> >  > If JSON is the interface we want to match this is IMHO a bad
> decision.
> >  > It always boils down to the fact that by concentrating so much on
> >  > Scripting-Community that we forget about there are still a lot of
> >  > people who want to interface with our model using plain old java
> and
> >  > JSON is nothing more than a little bit more than HashMapWrapper.
> In my
> >  > last project I did AJAX and it's like hell if your model get's a
> bit
> >  > more complex.
> > I think this is a good point. JSON should not be the interface to
> match.
> > I have had similar experiences with a lage AJAX project I worked on
> that
> > already used JSON for almost any data model. For an external
> developer
> > this was a huge pain. It is the same problem you encounter with hash
> > maps. You never really know which keys a map supports, which data
> types
> > the values of these keys can have. If you have references you have to
> > kepp them in sync manually, etc. One of the first things we did was
> to
> > wrap the JSON data with accessor classes with setter and getter
> methods
> > for each key. This means some performance overhead but it greatly
> > improves the maintainability of the program.
> >
> > In my opinion JSON is great for sending structured data to AJAX
> > applications but that is about it. I should be considered simply as
> > another serialization format.
> >
> > Best Fabian
> >
> > --
> > Fabian Jakobs
> > JavaScript Framework Developer
> >
> > 1&1 Internet AG
> > Brauerstraße 48
> > 76135 Karlsruhe
> >
> > Amtsgericht Montabaur HRB 6484
> >
> > Vorstand: Henning Ahlert, Ralph Dommermuth, Matthias Ehrlich, Andreas
> > Gauger, Thomas Gottschlich, Matthias Greve, Robert Hoffmann, Markus
> > Huhn, Achim Weiss
> > Aufsichtsratsvorsitzender: Michael Scheeren
> >
> > _______________________________________________
> > eclipse-incubator-e4-dev mailing list
> > eclipse-incubator-e4-dev@xxxxxxxxxxx
> > https://dev.eclipse.org/mailman/listinfo/eclipse-incubator-e4-dev
> >
> >
> > ---------------------------------------------------------------------
> ---
> >
> > _______________________________________________
> > eclipse-incubator-e4-dev mailing list
> > eclipse-incubator-e4-dev@xxxxxxxxxxx
> > https://dev.eclipse.org/mailman/listinfo/eclipse-incubator-e4-dev
> 
> _______________________________________________
> eclipse-incubator-e4-dev mailing list
> eclipse-incubator-e4-dev@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/eclipse-incubator-e4-dev



Back to the top