I’ve been buried in DBMS software this past week, and just finished brand new installs of DB2, MySQL, Oracle, PostgreSQL, SQL Server, Sybase on Windows and Linux boxes. (No, I am not a masochist, this was to test SQL scripts on lots of platforms).
Of the six DBMSs listed, all but MySQL and PostgreSQL come with some form of interactive administrative tools (the lack of these tools in MySQL and PostgreSQL is best left for another post). The SQL Server tools are native Windows apps (I am assuming they are written in C/C++), whereas others (Oracle, Sybase) are Java applications. And the latter are appalling; they are slow and sluggish and unintuitive and non-responsive and … Actually, I got so frustrated with the Oracle Enterprise Manager that I gave up and used command-line SQL to set up user accounts, and to create tables and establish constraints (not a pleasant task), and Oracle is the best and most all encompassing of them! Part of this is a usability issue, and regardless of how you feel about Microsoft, they have mastered the art of creating intuitive usable interfaces (when they want to). But the other part of the problem is Java.
I understand why vendors would choose to create interactive administration tools in Java (portability is a compelling premise, although for some I suspect it is more of a “we won’t write Windows code” thing). But honestly, they are doing a disservice to themselves and their customers. In a very short time Java has proven itself as a solid, powerful, and very capable server platform (and there are lots of examples of good Java based server software). But Java on the client? Remember those nasty things called applets? We’ve made baby steps since those days, apps have gotten better, and not much better.
For now, Java belongs on the server, not on the client.

15 thoughts

  1. the main problem with java on the client is that gui stuff is absolute crap. you wana talk about one area that .net has a distinct advantage over java, this is it.
    one thing you didnt mention is embeded clients. no one seems to mind the java on these things.

  2. I am using Sybase on my Mac at home. I have been very happy with the performance of Java apps on my Mac. Of course Apple has accelerated swing GUI classes on the Mac to take advantage of the Mac OS X Quartz 2D engine. I wish someone would do the same thing for Windows, whether it is Sun or not. I think what Macromedia is doing with Flash/Flex is great. I think that will solve a lot of problems with building Java based client server apps.
    I agree that Microsoft has the best GUI admin tools. I am the SQL DBA at my company. We use Microsoft SQL server 2000 and Oracle 8. We are not using Oracle for any new development for a couple of reasons. The admin tools for MS SQL make it much easier for us to administer our database servers. MS prices are competitive with Oracle and IBM, not MySQL though. Transact SQL is SQL-92 compliant and easy to use for DB scripting.

  3. Yep, I am very familiar with MySQL Control Center, and I do indeed use it. As I said in the post, tools is a whole other subject, that was not the primary point here.
    Having said that, I think that MySQL really needs a simplified one-step install-it-all process, something that will make sense to those who don’t want to compile the source code, and just want it to work out of the box. MySQL is incredibly popular, and is doing very well (and justifiably so), but it needs that next step for it to become a mass usable solution.

  4. I agree with you Ben, but portability have some costs and I like to be able to use the same software on win and Linux box. Oracle Enterprise Manager is terrible, but there are a lot of good client software written in java like Eclipse or NetBeans. I have to say that I see a lot of improvements in Java client, and example like Aqua Data Studio (A terrific generic database query and administration tool written in Java. http://www.aquafold.com/index.html) are candidate case study. Although that maybe is too late. I don’t know if Java could have a great future on the client side, the fact is that a lot of people prefer to write in c++ or python + Wxwindow or QT to write portable software, instead of using Java.
    Bye.
    ps: There are a lot of administrative tools for PostgreSQL free and commercial:
    PGAdmin III: http://www.pgadmin.org/pgadmin3/index.php (C++ + WxWindow)
    PostgreSQL Manager: http://www.ems-hitech.com/pgmanager/ (maybe the best – Multiplatform – Delphi)

  5. What a poor position. There are plenty of great looking and well performing Java-based GUI applications both simple and complex. The notion that Java itself had anything to do with a vendor’s poorly implemented GUI application is just silly. Next you are going to tell me that all those poor performing CFML applications are the result of ColdFusion. Or wait haven’t you always been a voice of reason when it comes to such silly notions?

  6. I second what Faser said, give Aqua Studio a try, it’s an excellent tool, especially in such a scenario, when you have to handle many RDMS at the very same time

  7. There’s a place and time for everything, but to say that Java flat out doesn’t belong on the desktop is a bit harsh. There’s many solid examples of Java desktop applications that not only perform well, serve a more-than-applet purpose, and look like the platform on which their running. Take a look a Swing Sightings on the Java web site.
    http://java.sun.com/products/jfc/tsc/sightings/S19.html
    Aside from the fact that this is the 19th edition, this latest posting lists DBVisualizer – a very nice looking, incredibly functional, database administration tool that includes support for over seventeen different databases (including DB2, MySQL, PostgreSQL, SQL Server and two editions of Sybase). Where’s you’re DB tool Ben? It’s right there, staring you in the face, with Java on the desktop. A one-stop shop for all the databases you’re running and all the platforms.
    Sorry, but I’m with Matt on this one – don’t call out Java on the client as the enemy when vendors provide crappy implementations. I would add that since most Java developers are building server applications, that there’s a select few that can do a client justice; and we know the problem with that – just give a CF developer Flash and ask for an elegant and complex application.
    And to Mike with regards to .NET – Swing’s elastic design and MVC component architecture makes using WinForms like trying to build an aircraft carrier out of Lego’s (no offense to Lego’s – wink).

  8. I’ve seen some decent client side java stuff out there, ephox’s edit live is quite decent as far as applet based stuff goes. But, I have to agree that Oracles enterprise manager is an absolute waste of disk space. Microsoft’s Enterprise manager is so far ahead its pathetic. Every time I have to admin an Oracle box I ensure I have a book handy to read during screen refreshes and various actions.

  9. Ah, just the response I expected! I agree, I was a bit harsh. (Oh, and thanks for directing me towards Aqua, very nice indeed, I can’t believe I hadn’t run into that one yet).
    The fact that you were all able to point out specific good examples does seem to indicate that they are the exception not the norm, for now. You used words like "decent" to describe current Java client, there’s a rather low bar.
    Good point Kevin, the fact that server side developers tend not to think UI could be a big part of it, I accept that.
    But I think a bigger reason is the tools, the libraries, the APIs, the nuts and bolts. Even a lousy Windows app can look good, same goes for apps on the Mac. Writing good looking Java client apps is still too darned hard, and the tools used don’t do enough to make it as easy as it should be. That’s what has to change, and quickly.

  10. I think you guys are giving MSSQL enterprise manager too much credit… sometimes it can be down right anooying when all you are trying to do is right-click a database node. That being said I still use it everyday and have no experience with oracle’s offering. There are some good Java desktop apps out there… we use Adalon (www.synthis.com), it’s bad at all. They really need to release v3 w/ Mach-ii support though.

  11. I agree, there are lots and lots and lots of very poor looking Java apps out there, and the Oracle client tools are the worst of the worst. Oracle is clearly a fabulous database, but is such a pain to work close to because of those tools. Working with SQL server is so, so much easier.
    One really basic issue with Java user interfaces, is that by default the text size on dialog boxes is larger than that in native Windows apps. This makes them jar terribly with people used to consistently smaller fonts.

Leave a Reply