Sorry, folks, my bad. I missed a closing quotation mark. Here's my correction. I sure wish TSS had a "preview post" feature!
JDO's lifespan as a persistence specification is somewhat limited by the EJB 3.0 specificationDisclosure: I work for Xcalia, currently a JDO vendor, and in the future also an EJB 3.0 persistence vendor, and a member of both JSRs 220 & 243.
Joseph, this really confuses people.
JDO's lifespan is indefinite. There is no reason to think that JDO will ever go away, especially now that version 2.0 has been approved by the EC in its latest vote. Further, it has been clearly demonstrated that there has been a substantial market for JDO technology for quite some time, and the similarities between JDO 2.0 and EJB 3.0 persistence are a testament to the fact that JDO did a good job of defining what Java object persistence should look like.
If a user adopts JDO today, they will be able to use it indefinitely. If they wish to port to EJB 3.0 persistence, they would have no technical
reason to do so, but they certainly could. I can't predict the future, but I expect there to be a JDO 2.1 that addresses the JDK 5.0 features that weren't present at the time the JDO 2.0 effort was begun back in August, 2003 (see here
The article cited in this thread by Robert Greene
should give you a good idea of the overlap between the two specifications.
The good news is that old-school entity beans are gone, and transparent object persistence is now considered mainstream. We can now focus on becoming better object modelers and avoiding Fowler's "Anemic Domain Model" antipattern
, which is far too prevalent in our industry. Better, you can start today with JDO 2.0, and switch later if you want to, most likely without even changing persistence vendors, as it will be almost trivial for any JDO vendor to implement EJB 3.0 persistence.