When I first read the then news of IBM considering to buy Sun I was a little worried. What would it mean to my favorite programming language java? IBM is a strong player in the JCP and with Eclipse they made a IDE available that is constantly among the two most used and the three best IDEs for years. But IBM is at least from my point of view also the biggest roadblock in wider acceptance of the current JDKs 1.5 and 1.6 since Websphere is still heavily used, although few can name any, let alone a good reason for using it. And in many cases even an old version of Websphere is used, so many colleagues of mine are stuck with java 1.4. Also what IBM build on top of eclipse is called WSAD for a reason and not WJOY as Neal Ford puts it.
But now these worries feel like wishful thinking. Oracle bought SUN. And seriously what useful product has come from oracle apart from their database? I don't know any. And oracle proves again and again that they don't know an inkling about language design. Java developers are complaining about the implementation of generics (which are flawed) and miss closures? Have a look at oracles languages: the oracle dialect of SQL and their iterative language PL/SQL. No surprise analytic functions a still not widely used, They have the strangest syntax I have ever met, at least I came a cross the model clause, which immediately caused a rash on my fingers. PL/SQL main purpose seems to be to serve as an example what happens if you don't have coding guidelines. Half the functions use underscores to separate words in names, the other doesn't. It is full of inconsistent parameter lists. Three variations of 'Collections' but none that works properly. I could go on and on. So if Oracle starts getting involved in Java with their regular teams, it is time to look for a new language and probably even for a new platform.
But wait, let us finish this rant with a little exercise in creativity and positive thinking. What is the good stuff that could come out of a strong involvement of oracle in the java world.
- A strong oracle hibernate SQL dialect: How about a plug-in in to hibernate that would NOT use SQL for communicating with the database, but a extremely compact binary format. It could seriously limit the bandwidth needed, by deviating from the scheme of SQL/JDBC where you always get a list of rows as a result, instead it could return serialized objects, so parts of rows that represent only one object could get transferred once instead of multiple times.
- Java plus a LINQ for Java could replace PL/SQL, combining the benefits of Java (nice, well designed language) with those of PL/SQL (high integration with SQL, fast manipulation of massive amounts of data). This could even become a standard, available in all major databases.
- Oracle finally understands the meaning of User Interface Design, relaunches all their websites and client products in a format that is actually usable.
- Oracle sets up a Oracle Community Process for steering the development of their products
- Oracle realizes that a database is not cast in stone, but must evolve. Therefore they start building the infrastructure for
- version control of database artifacts
- modular database design
- unit testing of database artifacts
- and refactoring
Ok, dream time is over. Back to work everybody. Or for me: back to vacation :-)