{"id":1000418,"date":"2007-02-18T09:24:20","date_gmt":"2007-02-18T14:24:20","guid":{"rendered":"http:\/\/www.elharo.com\/blog\/software-development\/2007\/02\/18\/answering-sleepycat\/"},"modified":"2007-02-18T09:24:20","modified_gmt":"2007-02-18T14:24:20","slug":"answering-sleepycat","status":"publish","type":"post","link":"https:\/\/www.elharo.com\/blog\/software-development\/java\/2007\/02\/18\/answering-sleepycat\/","title":{"rendered":"Answering Sleepycat"},"content":{"rendered":"<p>Sleepycat <a href=\"http:\/\/www.theserverside.com\/news\/thread.tss?thread_id=38916\">asks<\/a> some interesting questions about a <em>non-standard<\/em> persistence API they are developing. By the way, non-standard is <em>good<\/em>. Ideas like this should be tried out in open source products first before baking them into standards. I applaud Sleepycat for taking this route instead of rushing into the <abbr>JCP<\/abbr>. Indeed standardizing in advance of implementation experience explains a lot of the problems in <abbr>JEE<\/abbr> that APIs like this one are designed to replace. Anyway, on to the questions:<br \/>\n<!--more--><\/p>\n<blockquote><p> 1. If you have one, what is your favorite persistence approach for Java and how would you rate its usability compared to the usability of the Persistence API? What aspects of the Persistence API are more or less usable?\n<\/p><\/blockquote>\n<p>I tend to look at very low-level solutions for persistence: JDBC or XML files. I am extremely suspicious of any effort to serialize objects, especially across application boundaries. I prefer to roll my own serialization code. This also has the advantage of being extremely usable.<\/p>\n<p>Other than that I can&#8217;t say anything because your <a href=\"http:\/\/dev.sleepycat.com\/je-persist-review\/java\/com\/sleepycat\/persist\/package-summary.html\">link to the API<\/a> keeps redirecting me to the main home page.<\/p>\n<blockquote><p>   2. The Persistence API makes heavy use of Java 1.5 generics and annotations. Without using these new language features, we believe that usability would be lessened. Do you consider the use of these language features positive or negative, and why?<\/p><\/blockquote>\n<p>It&#8217;s a negative. I still use Java 1.4 for a lot of work, plus generics don&#8217;t actually work. The simplest forms are convenient for documentation purposes. However, you can&#8217;t rely on them at runtime.<\/p>\n<blockquote><p>   3. The Persistence API, while it increases usability, does not add a high level query facility. Do you consider a high level query facility to be a requirement for a Java persistence solution?<\/p><\/blockquote>\n<p>Yes. It&#8217;s fairly important.<\/p>\n<blockquote><p>   4. The Persistence API does not conform to an existing standard such as JDO. To do so, we believe that both usability and performance would be compromised. Do you consider conformance to a standard to be more important than such compromises?<\/p><\/blockquote>\n<p>No, it is not. Anyone who wants to use <abbr>JDO<\/abbr> can. This API is only for people who&#8217;ve rejected JDO. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Sleepycat asks some interesting questions about a non-standard persistence API they are developing. By the way, non-standard is good. Ideas like this should be tried out in open source products first before baking them into standards. I applaud Sleepycat for taking this route instead of rushing into the JCP. Indeed standardizing in advance of implementation [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[32],"tags":[410],"class_list":["post-1000418","post","type-post","status-publish","format-standard","hentry","category-java","tag-flash"],"_links":{"self":[{"href":"https:\/\/www.elharo.com\/blog\/wp-json\/wp\/v2\/posts\/1000418","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.elharo.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.elharo.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.elharo.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.elharo.com\/blog\/wp-json\/wp\/v2\/comments?post=1000418"}],"version-history":[{"count":0,"href":"https:\/\/www.elharo.com\/blog\/wp-json\/wp\/v2\/posts\/1000418\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.elharo.com\/blog\/wp-json\/wp\/v2\/media?parent=1000418"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.elharo.com\/blog\/wp-json\/wp\/v2\/categories?post=1000418"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.elharo.com\/blog\/wp-json\/wp\/v2\/tags?post=1000418"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}