On 2009-11-12 16.42, Jacek Sokulski wrote:
I would even say strongly interlinked. It looks like doing OO in C, it is possible but one needs to stretch the language a lot and sometimes do magic tricks.
True. One reason I wanted to stick with Java was because I looked at AspectJ, which introduced a new language, and don't think that it really worked out all that well. So we stuck with "Java++", in the sense that we're using the Java language with the extensions made possible by using annotations. I still believe that was a correct decision.
I would see step by step way to Qi4j something like that: 1. More theory - what is it all about. One can find some pieces here and there but it is time consuming and it is not clear what is still current. At least you could put in one place links to some threads from the list (like one on what is object - explain a lot, or one on entity patterns) and other useful staff in the net (posts from Rickards' blog).
Agree, the docs needs to be better structured.
2. Look, you can do some valuable staff without the whole Qi4j infrastructure (or some minimal subset of it), like traits.
Yes, you can start with just some basics. I would suggest that Constraints is a good minimum to start with, since many people are wasting time writing "if (foo == null) throw new NPE" code, which should be unnecessary.
3. Now you can model one domain with Qi4j and integrate is with the rest of the application, so an examples/tools/extensions how to integrate with Qi4j app as library, services or anything else would be helpful.
AFAIK Qi4j has two-way Spring integration, which might be a start.
4. You are ready to take fully advantage of Qi4j Maybe it would be good to separate COP and DDD concepts/infrastructure they are two separate concerns that interfere a lot in studying Qi4j. I think it would be easier to get first COP only, especially for people who do not know DDD.
I think that the recent DCI track we had at Oredev will be helpful. Once the videos are up, in which Trygve Reenskaug, Jim Complien and me explain why OOP in its current incarnation doesn't work, that will be most helpful to stop thinking of COP as an alternative to OOP, and instead think of it as a necessary evolution from OOP. It really does make things much easier and allows us to get out of the complexity nightmare that todays tools bring with them.
Right, If you use any technology a lot, backing out is usually a problem. Even migrating between to versions of the same all-standard-based-J2EE-server like JBoss is a big headache. But they give you at least a mirage of not lock-in, so one can sleep well, until...
Yes, we are not going to suggest that there is a way to "back out". But once you're used to the Qi4j model, you wouldn't want to anyway. All developers that try it have a period of confusion initially, but eventually it dawns on them, and then you'd be terribly frustrated to do it any other way. We just have to work on minimizing the confusion period :-)
/Rickard _______________________________________________ qi4j-dev mailing list [email protected] http://lists.ops4j.org/mailman/listinfo/qi4j-dev

