> >         By the time Objectspaces is released almost all O/R mappers 
> > currently on the market will have all the objectspaces features and 
> > more. They all also will suffer from the same flaw: there is no 
> > general specification, every tool has its own specifications, it's 
> > hard for a customer to swap tools for a specific requirement etc.
etc. 
> > I really really fail to see why that is in any advantage of
Microsoft, 
> > because it will only be a big burden for developers which can truly 
> > hold back .NET's acceptance in the industry where Java is already a
bigger player.
> 
> Is it really that clear that a general specification of OR is 
> a good idea now?
> OK, so it's clear you think so and you have given it a lot of 
> thought.  But having lived in the java world for some time 
> before becoming a .net developer, the general specification 
> approach has not proved that successful either.

        I think it needs research to find out what the real cause is for
that apparant failure. To me it's very clear that Java has one very big
advantage over .NET and that is that there ARE a set of standards for
EJB-CMP and JDO. All O/R mappers for Java support these standards. I
don't see why this then can be interpreted as 'not successful'.

> Unless the the problem domain is perfectly understood, the 
> specifications become a hindrance, a barrier to progress.  
> EJB is probably as good an example as any.  The goal was 
> sound, the attempt made by lots of smart people, and the 
> result, though implemented by a few key players, has had it's 
> share of issues.

        of course it has, every standard has drawbacks in some area's.
That's also why I said that Microsoft should listen to the feedback
ventilated by a lot of java developers about these standards so
Microsoft understands in which direction these standards should be
evolving. 

        But nevertheless, it will be a standard. Every O/R mapper will
adapt the standard like it is done in Java-land. This will result in a
far more open market for tools and a far more appealing market for the
developer: every tool supports the standard, he then thus knows what a
tool at least can do and more important: HOW the developer can utilize
the tool.

> Now the java world is considering radical ideas like POJO as 
> an alternative ;-)

        Seriously: I doubt it. the EJB-CMP specs (especially the latest)
is very solid. You can pinpoint to new technologies all you want but
.NET hasn't an equivalent of that spec anywhere in sight. And again: an
implementation should never be a 'standard' definition, so Objectspaces
should never be seen as 'a standard'. It also can't be a standard, since
it has design limitations which can be a burden when you want to support
other databases, like Oracle. 

        This last aspect is not in the interest of Microsoft, in fact,
Microsoft will do everything it can to make Oracle have more sales
because of .NET, and this is logical behaviour as Oracle are their
competitors. It also makes an implementation like Objectspaces useless
for defining a standard for other O/R mapping tools. This is very very
very sad and counterproductive for the average developer in the field.
For the people who think otherwise: Imagine you are a contractor and you
have to develop an ASP.NET webapplication on Oracle (Oracle is used a
lot today to power normal asp sites, which will be rewritten eventually
in .NET sites). You've learned Objectspaces in a previous job and are
now ready to start this new job. However, Objectspaces doesn't support
Oracle, so you're forced to pick one of these options:
1) use datasets
2) pick a 3rd party O/R mapper tool
3) ask the client to dump oracle for Sqlserver

1) is not an option once you've worked with O/R mappers. 2) is at first
a normal decision. But it also has a problem: this 3rd party O/R mapper
most likely has a total different object query language, works
differently with objects etc etc. This will thus force you to start from
scratch with this new tool. Would there be a standard, this wouldn't
have happened. 3) is what Microsoft wants you to do. It's their right to
do so, they too want to make money after all :). 3) is however not in
the interest of the developer, as he can most likely loose his
contractor job to someone else who can work with the 3rd party tool. 

        This is a story not a lot of people want to hear, I'm aware of
that, however it IS reality. 

> In the case of OR tools, I don't think there is anywhere near 
> enough consensus on how to do it to implement a sane spec, do 
> you? 

        Why not? I found the EJB-CMP spec nice, sometimes a little
farfetched but overall very good. O/R mapping is pure overhead code,
it's there because an OO paradigm requires translation to a relational
model to work. A lot of people make this a very hard to understand thing
but it is in fact very simple: class.Field is stored in table.Field.
whoa, that's hard :) Now, the fun begins when you start talking about
how this mapping is accomplished. I mentioned the direction class.Field
-> table.Field. However what if: class.Field <- table.Field? At first
this seems the world upside down, but it's about the same thing, you
just pick another anchor to lead the design, that's all: be it the
relational model (in abstract form like NIAM/ORM) or the class
hierarchy. A german blogger, Ralf Westphal wrote an article about this:
http://weblogs.asp.net/ralfw/archive/2004/02/04/67262.aspx

        A good spec only defines the core services that have to be
provided and I find EJB-CMP a good example for that. A tough issue will
probably be the object query language, however that too will be a minor
point in the end: there is always something to gripe about: be it not
type safe or be it too verbose or other things. As long as the spec
offers extensibility, it would be great. 

        At the moment we have NOTHING. With objectspaces we get
something, which is close to nothing, because it is not usable in an
environment with another database or when you don't want a non-intrusive
approach (i.e. you want to bind your classes to a grid later on, happy
coding :)). 

> And if MS, or an outside party took a stab at it, and 
> the result was anywhere short of perfect, wouldn't they take 
> every bit as much heat for it, and suffer yet another legacy 
> issue to absolve themselves of, than they are receiving for 
> not doing it now?

        Why? Now there is NO spec, NO work done to deliver a general
spec, just a crippled implementation of an O/R mapper which gives
problems like I gave an example of. Even if the spec is not perfect, at
least there is one, a 3rd party tool vendor can always fall back to own
specifications as extra offerings, like they do NOW (like a second
object query language). 

> If you look at other areas where api specs have been written 
> the results are equally uncompelling, though each has had 
> some important hits.  W3C? OASIS? OMG?

        The W3C is a bad example, as their spec is not implemented
correctly by the biggest player (and member of the W3C): Microsoft,
which just follows behaviour Netscape has showed for years. I'm not
familiar with the other acronyms you mentioned.

        I really fail to see why a solid spec would hurt anyone. 

                FB

===================================
This list is hosted by DevelopMentorŪ  http://www.develop.com
Some .NET courses you may be interested in:

NEW! Guerrilla ASP.NET, 26 Jan 2004, in Los Angeles
http://www.develop.com/courses/gaspdotnetls

View archives and manage your subscription(s) at http://discuss.develop.com

Reply via email to