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.