The Source for Java Technology Collaboration
User: Password:



Masood Mortazavi

Masood Mortazavi's Blog

Evenly Divided?

Posted by mortazavi on July 31, 2006 at 11:42 AM | Comments (9)

Polls are what they are--an indication of public sentiment.

Although the poll results for Java DB's inclusion into Mustang seem evenly divided, I think that, in the long run, the inclusion will prove to be a great advantage for Java developers.

Which financial wizard was it that once said "Mr. Market" votes but the true investor weights? Was it a certain Benjamin Graham or a Warren Buffett? Whoever it was, he had a great point.

Similarly, when it comes to Java DB inclusion in Mustang, we should try to weight the situation rather than simply busying ourselves with casting votes one way or another.

When I first started with my own Java development work about 11 years ago, I always wished to have a developers' database at my fingertips. The inclusion of Java DB in the base Java platform gives that versatility and freedom that I needed as a developer. The wide distribution should now make it possible for people to build cool tools and other gadgets to make it even more fun to use Java DB as a prototyping base if nothing else.

By the way, the argument that Java DB has led to a further bloating of the Java platform does not make any sense to me since Java DB is not even included in the Java Runtime but only in the development kit.

So, weight the benefits for yourself, get going and give it a try and let us and the Apache Derby community know what you really think once you start gaining some experience using Java DB. And remember--Java DB is 100% Java. That says a lot about a database!


Bookmark blog post: del.icio.us del.icio.us Digg Digg DZone DZone Furl Furl Reddit Reddit
Comments
Comments are listed in date ascending order (oldest first) | Post Comment

  • And what use will it be in practice? If it's not in the JRE the only thing it will do is cause masses of complaints from noviates who use it and then "app no run on other computer, hlp me plz ASAP!!!!". When I started with Java 9 years ago I never bothered with trying to find a database engine. People without the experience to use them don't need them, those who do have the experience have access to them. I had access to DB/2 (and later Oracle) almost from the outset for example.
    Experienced people won't use it because they have real database engines at their disposal.
    A better way of measuring the outcome is that 60% of voters will not use it for sure even if it is included, 2/3 of them are seriously enough opposed against it that it may cause them to abandon the platform or stick with 5.0 or earlier. The rest may use it at some point, maybe, possibly, if they can't get a real database installed.

    Posted by: jwenting on August 01, 2006 at 04:38 AM


  • "App no run on other computer" would have a simple response: "Please learn about Java class loading, JRE and the extension mechanism and solve your deployment problem. Here is an example...."

    Look, even Ruby bundles things with itself, including IDEs, etc.

    If nothing else, the distribution of Java DB in Mustang would be a very useful bundling in a widely used toolkit. People won't have to get it separately. It is right there and tested, too!

    What is more, I will have tools and know-how built around it, soon.

    I agree with you that 9 years ago most Java developers just found the database for their use when they needed it. That's probably also the case now for some people. However, a lot of Java developers are now familiar with databases. Every computer science student now takes a relational databases course and a course with some Java in it. Just for them, this will be a great distribution. Once they've used it, it is highly likely they'll keep using it.

    Furthermore, the distribution is a great bonus for Apache community.

    It's another way for an Apache product to get distributed very broadly to a very large community of people.

    It is good that right now it is not part of the JRE.

    People can experiement with what's there and can easily incorporate and deploy intermediate releases of Apache / Derby with their Java DB app on the same Java SE platform---if they need it.


    Posted by: mortazavi on August 01, 2006 at 08:30 AM

  • While I do recognize the benefits of having a DB, lets see Sun has bundled the DB in the Netbeans IDE, its Application Server and now in Mustang itself. I am not speaking for everyone, but surely this is a bit too much? I mean who needs 3 DBs?! Just bundle one DB in the IDE and have the app server refer to that as well as have Netbeans refer to that!

    Posted by: suryad on August 01, 2006 at 12:04 PM


  • The current, multiple distributions and bundlings may be an abberation that will be fixed with time.

    In the longer run, for example, the IDE, app server and other tools, servers and clients will have the DB distributed with the base platform (Mustang and beyond) to use.

    What would be wrong with that approach?

    Posted by: mortazavi on August 01, 2006 at 03:05 PM

  • I also would have liked to have had a small database included with Java 11 years ago. However, the need has subsequently been filled by other vendors.
    There is no compelling reason to include Derby in the JDK. Everyone arguing for it is blatantly ignoring the perfect substitutes out there.
    In addition, even if it had been included in the JDK 11 years ago I still probably wouldn't have used it much. Having to go down to the command line and do DDL to get anything is exceedingly primitive, a job not for programmers, but for DBAs and other cavemen still banging rocks together in the digital stone age.
    Get with the program guys. Anyone putting out a DB and not providing GUI tools for starting and stopping the db, adding users, manipulating tables and viewing data should be smacked with a big stick. Repeatedly if necessary till they get the point.
    Not only are the substitutes just as good as Java DB, they are actually better, since some of them actually provide these kinds of tools.
    What really has pushed me over the edge into full fledged loathing of Derby is that it has 'broken' my Netbeans. I had Sun's Appserver 9 installed, I removed it and substituted Glassfish (in a different location on the hard drive), set Netbeans up to point at it so I can run my enterprise apps...
    And now every time I fire up Netbeans it throws up an exception because it cannot find Java DB. Removing the 'sample' Java DB from the list of known databases doesn't fix the problem.
    Mustang isn't even finalised and tools which know about Java DB are already broken in new and unfortunately not very interesting ways. Thanks Derby (and whichever idiot in Sun thought this was a good idea) for creating a configuration problem where none existed before.
    I agree with the jwenting, except I don't think this will cause people to abandon Java as a platform, unless the configuration problems get really out of hand. I will however need to invest in a larger cluestick to whack the legions of lemmings who will use Java DB without realising the problems they are setting themselves up for. *sigh*

    Posted by: rickcarson on August 01, 2006 at 05:01 PM


  • Trump's business also claimed bankruptcy, he himself went bankrupt...let's also not forget modified failures such as VB.net or Microsoft Bob...

    Would Java go the way of the dodo for including a database? Of course not. But the scales have given tipped and given weight to the heavy database hitters so long ago: Oracle. DB/2. MySQL. Further heavy proofs can be found in wanted ads - the ratio of Derby to these heavy hitters (Oracle DB2 MySQL) is rather one-sided.

    The motive for inclusion of Derby into the SDK is confusing, at best, from a technical standpoint. From a business standpoint for Sun, it's quite clear why Derby is included (references to investing legends? Perhaps this decision was pushed by the protege of McNealy?). Anyways, that is what frustrates us 42%-ish of why the SDK inclusion. I would warn Sun to stay away from making more business driven decisions that turns software sour and disenchants end users - it's ended many a good original product (again reference VB.net & Bob).

    Keep in mind I'm not knocking Derby - it's probably a fantastic open sourcer. Nope I've never used it (I'm too busy using Oracle / MySQL / DB/2). There's simply no technical reason to why Sun choses to include it. If we are to apply the same logic of Derby's inclusion to the Java SDK, we should also include Jakarta Commons Lang, Jakarta Commons Logging, Log4j, Jakarta Commons Validator, JDO (got the relational database included, why not the ORM, right?), Spring 2.x, Apache JMeter, JUnit...

    Posted by: phlogistic on August 01, 2006 at 05:09 PM


  • To: rickarson--

    Java DB was never meant to compete with enterprise databases that have full-fledged tooling (Oracle, DB2, etc.). However, it is also a very useful starting place for doing early development work and proofs of concept---and it is *free*.

    Pains have been taken to have Java DB to be conformant with a standard intersect of SQL.

    Many years ago, I actually used Java DB (aka Cloudscape) for a call-control prototype, and using command line and the usual build environment set-ups was sufficient to do my job. Nothing complicated.

    In fact, Java DB is the last database in need of a DB Admin because it comes with no frills, is so simple and includes no complications.

    Just use SQL and command line to set up the schema of your app, and then use JDBC to fill out, query, etc. This may not work for everyone but can work for a large number of people doing simple tasks. It is certainly not intended for you to go to implement a real-time, enterprise-wide resource management system. However, I don't think many were expecting to do that.

    The problems you're having with your Netbeans tooling should be fixed. We tried to give enough warning about the inclusion in Mustang. We wrote several blogs to let people know this was there and pointed out some issues they had to deal with.

    To: phlogistic--

    We're not catering to wanted ads. If you like to get a DB applications job, go learn Oracle, DB/2 or MySQL.

    If you're interested in the internals of a DB, the quickest way is probably joining the Apache Derby community.

    If you just want a simple database to do some prototyping or build proofs of concept, you have Java DB bundled with Mustang. It is worth a try.

    So, why are we not including everything that comes from Apache.

    First, everything that comes from Apache is available to everyone who wants it.

    Second, a distribution with the JDK involves a *selection*.

    Not every piece of news makes it to the Washington Post or the Wall Street Jounal. Some do. It is a matter of judicious selection.

    And yes, sometimes editors make mistakes.

    In this case, I think they've not.


    Posted by: mortazavi on August 01, 2006 at 06:10 PM

  • "nothing else, the distribution of Java DB in Mustang would be a very useful bundling in a widely used toolkit. People won't have to get it separately"They would though if they were to distribute their app making use of it.... And many of them will forget that, as it's part of the standard library anyway so everyone has it... And then when it won't run somewhere else they'll come screaming that "Jav zuckz", never bothering to figure out what's really going on. Seeing the fulltime job we had telling hundreds or thousands of kids that there was no bug in Java when it generates classfiles with version 49.0, this will be worse.
    In the longer run, for example, the IDE, app server and other tools, servers and clients will have the DB distributed with the base platform (Mustang and beyond) to use. So we'll have a JRE which includes Netbeans, an application server, a database server, and everthing else? Disaster.
    However, it is also a very useful starting place for doing early development work and proofs of concept---and it is *free*.
    Another example of including something for the sole purpose of marketeers being able to claim that "yes, we have that as well", there are enough such tools already out there for people to use if they need them. And that's the entire point, there's no need to invest the effort invested in this (and the other crap added to Mustang like web servers, SOAP containers, etc. etc. that noone wants to be part of the core system because they all have existing systems anyway that work better.

    Posted by: jwenting on August 02, 2006 at 12:47 AM


  • To: jwentig--

    Java DB is being distributed as an extension of the toolset and for prototyping and early development work. It is not an extension of the platform. It is not part of the standard library!

    So, the type of confusion you're describing should not happen for developers who're scrupulous.

    It is not too much to expect that Java developers will actually bother to figure out what exists on that very basic level, i.e. on the level of understanding what is and what is not part of the standard library.

    Including capabilities that are not part of the standard library but which can be accessed through the standard library (in this case JDBC APIs) actually enrich the Java development toolkit.

    Netbean's and app server's use of the Java DB in the base platform simply means that in upcoming releases Netbeans and the app server can use, for development purposes, the Java DB that comes with the base platform toolkit. I never meant anything more. (I should note that at one point, back in 1999 - 2000, J2EE reference implementation used to ship its own version of the RMI-IIOP. There are ways to make such things work, too.)

    The JRE has never been meant to include Netbeans and the app server, and as far as I can tell, there are no plans to include the DB in the JRE. In fact, if such a topic comes up, I'll most strongly argue against it.

    If bundling of Java DB with Mustang serves marketing (of either Derby or Mustang or both), so be it.

    However, marketing can hardly be the singular motivation.

    The inclusion of Java DB in the base platform toolkit servers all developers by giving them development options and enhancing their toolkit, and that is its primary goal.

    Posted by: mortazavi on August 02, 2006 at 02:55 PM



Only logged in users may post comments. Login Here.


Powered by
Movable Type 3.01D
 Feed java.net RSS Feeds