Search |
||
Okay, I was wrong!Posted by javakiddy on July 19, 2006 at 2:12 PM PDT
Several people responded to my original rant, and I'm glad to say just about everyone one of them had an interesting take on the whole Java DB issue. Romain Guy and Joshua Marinacci even went as far as to blog on the topic. Some of the comments appended to all three entries are exceptionally noteworthy too. Spinning of from TOR (the original rant) is John Reynolds and Evan Summers who threw up some well made points I'll deal with below. I wasn't planning to do a follow up blog, however some of the feedback has shifted my mind a little (just a little), and while I do still question many of the pro arguments, I have to admit I am more open to Java DB on the desktop than I was previously. I thought it was only fair to admit this publicly, after all this is a good thing — throwing out strong questions about a topic invites strong arguments in return, and if you're very very lucky someone will say something which opens your mind to a different way of looking at an issue. But don't start cheering yet — I still have many doubts. Indeed some pro Java DB arguments still look suspiciously like solutions in search of a problem. Persistence is suddenly very easy, and therefore trendy, and everyone is looking for an excuse to use it. Any excuse to use it! Just like a few years back when we'd all use XML at the drop of a hat (and look where that got us!) And because of its EE origins, the current model is tied firmly to an RDBMS, and people don't want to explore beyond that. So I guess I've moved from being 'mildly skeptical' to 'mostly indifferent'. Perhaps someone might reply to this blog with a comment which will cause me to upgrade to 'modestly interested'. ("Are you sure you want to go to red alert, sir? It will mean changing the light bulb." : Kryten the android, Red Dwarf.)Firstly it might help to give a little background of who I am and where I'm coming from. Professionally I have written full blown desktop applications in Swing (for 'closed' markets, such as education and local government) in which the database is merely a tool to store, manipulate and filter large bodies of data centrally in a collaborative working environment. These are clients of the thickest, traditional, kind (not thin CRUD wrappers) where the user interface and the database have very little one-to-one coupling, and most of the user's work revolves around local files. Therefore I see an RDBMS as a useful tool to be employed when advantageous. I do not nessasarily see it as the primary starting point of all new projects (in other words I don't subscribe to what one commentator unkindly labelled the "'RDBMS is the root of all' mindset".) (Btw: Yes, I also wrote that modestly well known API for accessing a certain popular Instant Messaging network. But I never released the IM client which sat atop that, so it doesn't count in this context!) Secondly I should restate my main concern, loud and clear: it is not actually that Java DB is being put into the JDK, rather that the lopsided manner in which this is being done will cause problems in itself. Java's boast is, after all, that you write it once and deploy anywhere without hassle. Suddenly we have a component which is standard on the developer's JDK, but optional on the end user's JRE. The pressure begins to mount to have Java DB included in the JRE, and next thing we know there's two megabytes more of a reason for Joe Public to click "CANCEL" on the "Download Java plugin?" dialog. But I'll return to that concern in the conclusion. The case for the prosecution
Random thoughts
The case for the defenceI'm going to drop the bullet pointed format for this. I'm a big fan of the idea of replacing some AJAX type apps, specifically those that mimick the desktop, with rich UI desktop applications which have the ability to 'float'. "Float?" "Float???!?!?" By 'float' I mean not be tied to or installed directly on any given user workstation, but following the user around from place to place just like web applications. I see Swing and WebStart as a step towards this goal, although this is just (to paraphrase the fortune cookie) a single step in a journey of a hundred miles. In such an environment, the notion of a fixed filestore on a specific PC becomes an anathema to the floating ideal. We could extend the current filesystem idea to make it global: store your files in a central filestore (or set thereof, perhaps rented from a filestore company or provided by your workplace) and hook up to that whenever and wherever you log in. But another possibility is that in such an ethereal environment, the user might feel happy with dispensing with the file centric 'motif' entirely and moving to something more like a database. So each application hooks into one or more databases where project data is stored, and collaborative work is done without the need to email files around. Perhaps. Who can tell? I suppose the only way we will know is to try developing genuine 'floating' applications and seeing if OSSAC still makes sense. (Yup, having just invented the OSSAC acronym, I'm going to get my money's worth by using it as often as possible!) Moving on: one thing databases do provide is integrity: for example they're a cheap way of making persistence atomic — an update either happened or it didn't. "Do, or do not. There is no try", to quote Frank Oz's right hand. This is a valid point (and I'm surprised only a couple of people mentioned it in the feedback) and one which I think probably genuinely does merit the overhead of a database. Yes — perhaps it is time we desktop coders stopped just crossing our fingers and hoping the data we wrote to disk actually arrived? Of course, the down side is we still have a user base more familiar with the notion of files/trashcans/My Documents... And finally: I've saved the best point till last... A number of people, Evan Summers in his blog entry for example, made the comment that there is a popular strand of desktop software which involves Swing as a thin wrapper around database CRUD operations. While I've had no professional experience developing such software, I am aware of it's existence. As I understand these are often (although not exclusively) bespoke developments for company intranets or specific business sectors, rather than general purpose products sold to a mass market. What I was unaware of is the scale of this market. I knew there were a number of frameworks and other tools emerging which service this area — not having done much in this market I've only glanced over these, and only tried one. Perhaps I underestimated their importance? It sure looks like I may have done. If, as some claim, there is a genuine and substantial demand for Java to be used for this purpose, then including a RDBMS in with the JDK would be a pragmatic thing to do. Why not? If Java is thriving in this market then I suppose I should back everything and anything which helps make developer's lives easier (and more predictable.) Perhaps I'm just miffed that Java is only finding success on the desktop as a thin layer over CRUD? Perhaps I wished too much to see world class editors, media players, graphics tools and all the other goodness we associate with desktop applications harnessing the power of Java? Maybe I should be more realistic and accept that if Java is ever to make it 'big time' on the desktop, then we need to shore up the areas in which it is seen as a contender? ConclusionDid you survive this far? Well thank you for reading. I said at the start that I wanted to return to the point about JRE bloat in the conclusion. And so here it is: all of this kerfuffle really isn't about a RDBMS — it's about the size of the JRE download and how inflexible that download is. In my next blog (if my fingers ever recover from typing this one!) I want to talk about this issue, along with general issues of firing up Java apps on the desktop. Specifically I want to throw out a few ideas I've had about introducing a small platform neutral bootstrap which would fix many desktop Java problems. The bootstrap would allow libraries and even sections of the JRE to be loaded and cached on demand — meaning that in future we can all have our Java DB cake and eat it! Thanks for reading. 'Till then... »
Related Topics >>
J2SE Comments
Comments are listed in date ascending order (oldest first)
|
||
|
|