Eaten by the Tiger? Open Source WO is coming...

"Pierce T. Wetter III" <[email protected]>
Newsgroups gmane.comp.web.webobjects.general
Message-ID <[email protected]>
  Our previous hacking of WO 4.5.1 to get it to work on 10.1, then  
10.2, then 10.3 seems to be stuck at the moment on 10.4.

  Don't get me wrong, I think its great that they're moving KVC into  
the mainstream even if:

    1. They broke NSArray and NSSet.
    2. They forgot to expose the API for writing your own array  
accessors.

  But I digress.

  We'll probably be able to hack around it (again) by replacing the  
valueForKey: implementation on NSArray and NSSet, but its clearly  
getting time for us to move to SOPE, and an EOF clone (since the gdl1  
in SOPE is inadequate).

  First off, SOPE kicks ass with some of the best features of both WO  
and Zope. So it wins hands down. Plus you can get XCode projects for  
building the damn thing, and can even write Cocoa apps that work like  
WO apps behind the scenes.

  But SOPE only has gdl1, which is like pairing a rocket engine to a  
donkey cart.

  So the real issue is what to replace sope-gdl1 with.


   Here's my evaluation so far:

     AJRdatabase: http://sourceforge.net/projects/ajrdatabase

     This is an XCode project, so its the simplest to build and get  
going. However it does the same annoying thing EOF does, which is use  
NSArrays for everything in EOEditingContext instead of NSSet. So it  
will have the same unnecessary scaling problems as EOF, though that's  
probably fixable in a simple way. It has 3! database adaptors for it,  
and an EOModeler implementation.

     It's about 22871 lines total of .m files for EOAccess/EOControl.  
It's not clear exactly how far along it is to being a full EOF clone,  
some of those objects are clearly stubs.


     GDL2: www.gnustep.org

     This use its own build system, so its a significant commitment  
just to build the damn thing. It uses NSHashTable instead of NSArrays  
in the EOEditingContext so it has the possibility of being _faster_  
then EOF which is interesting.

     It clocks in at 51962 lines but its hard to say if that means  
more coverage because some of that is clearly duplicating things  
already in Foundation for Gnustep, like KVC.

     It's at about the level of EOF from WO 4.0, which means no  
shared editing contexts (which didn't work anyways in 4.5) or  
EOGenericRecord  (which did work but weren't that useful.

     Nat!:

     Nat! has blogged about writing his own EOF clone, which  
dubiously he thinks he might charge for (in other words, he found out  
its a lot of work, and he's not getting any help). Since I could  
barely tolerate Apple's implementation, it makes me nervous to not  
have source. Plus a big part of EOF is writing all the database  
adaptors, so that will be hard to get other people to do if its not  
open source. Since I haven't seen it, its hard to have much of an  
opinion, but he has a great track record.

     Sometimes I wish there was a "paid" source model, where you paid  
a license fee, but you got source access.

     Apple:

      CoreData will no doubt go through revisions, but that will take  
2 years to duplicate EOF (sigh). Now that EOModeler is built into  
XCode though, any new code could leverage off of a very nice modeler  
application, so that's a lot less stuff to duplicate. So waiting for  
Apple doesn't seem like an option. CoreData is cool and a great  
direction, but it won't quite be there for some time.

     Summary:

   None of them are quite there yet. GDL2 is the closest, but its so  
hard to get going with just an initial build that I suspect AJR or  
Mulle is more likely to happen because most WO guys became Cocoa  
guys, so working on Gnustep seems too painful. Probably easier for  
the AJR guys to steal rabidly from GDL2 into AJR then fuss with all  
the GnuStep stuff in GDL2.

     This is somewhat annoying, because given 3 different EOF clones,  
you would think that if those guys had pooled their talents, we could  
have one working EOF clone, rather then 3 different groups of people  
writing 75% of an EOF clone. Though the AJR guys are stealing from  
SOPE-gdl1 so maybe AJR will leap past gdl2.

     None of these guys seem to have thought about how to take EOF to  
the next level the way SOPE has taken WO and made it WO++ yet, but  
that's probably because just cloning EOF is a major task.

    Once that's done though, we might have an ObjC WO/EOF under Cocoa  
that:

        1. Is Open Source.
        2. Scales better (sometimes, yes you do get 10,000 objects  
back from the database)

    A way the Apple solution will probably fall short of on both counts.

    And someday perhaps:

        3. Interacts with databases better: One of my pet peeves with  
EOF was that you
           could only have one transaction pending with the database  
at a time, even
           though with the way EOF interacted with the database (one  
transaction for
           the select, a later one for the insert/update), most  
databases could have
           easily handled multiple parallel reads...

        4. A client-server layer ala Java client in WO 5.0 so that  
you can easily write
        client-server applications where the business logic can live  
on the client side.
        (Just a different type of datastore...)

   Though when that happens, it doesn't seem like there will be a lot  
of reason for anyone to look at WO 6.x. But given that Apple let WO  
development stagnate for 5-6 years, that's about right; on the java  
side with Tapestry and Cayenne I don't think WO is that competitive  
anymore.


Pierce
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.