[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Some Comments [was Re: Article for Slashdot]




I'd like to emphasize some points about the original posting and the various 
replies that were written by other Linux-IL members:

1. For the record: I know Java, and I did a rather large project of converting 
MikMod for UNIX (v. 2.14) from ANSI C to Java. It is functional now, but 
requires a JIT environment to run properly. You can find it on my homepage. 

I dare say I did not experience much with the various additions of JDK 1.1, but 
I plan to remedy it now that I have a larger Linux hard-disk at home. 
Nevertheless, I am familiar with its philosophy, and its restrictions and 
limitations.

2. My main theme was not that Java is a bad language for writing applets, small 
and portable GUI applications, and various other "toys". Its inner restrictions 
allow a programmer of such things to implement them quickly, and be quite 
certain that they are bug-free, run nicely everywhere, etc.

My point was however that as the basis and underlying scripting language of an 
OO RDBMS, Java will fail absolutely. I don't think Perl, or any other language 
I encountered, is good for all purposes as-well, but it certainly tops Java on 
this one.

3. A little emphasis on why I think Java will fail in this case: an OO RDBMS is 
a complex and fully-optimized client-server and scritpable environment that is 
supposed to be state of the art on almost all levels of programming from simple 
algorithmics to artificial intelligence. And naturally there's a _lot_ of data 
and text processing (such as compression, encoding/decoding, packing/unpacking, 
memory allocation, maintaining reference counts, format conversion, caching) 
involved.

Many newbies think, because of the hype of Sun and many other bodies and 
individuals about it, that Java is the "language of the future" and some hot 
breakthrough in language design. However, It is simply a smalltalk-like 
language built around the C++ syntax that everybody are used to and like, with 
a nice GUI, some powerful inherent features, a good (?) class-structure and a 
consistent philosophy. Sun has (very wisely in my opinion) decided to push it 
as a good solution for the "toys" I described.

Perl 5 on the other hand is an almost amazing langauge, that was built from the 
grounds up to be a good data & text processing language. It has amazing AI, 
multi-tiering, OOP&D (more towards the Secula76 school to which C++ belongs), 
multi-tasking and security features. On top of all, it uses standard UNIX-like 
functions, has an almost seemless integration with the UNIX environment, and 
has a C++-like syntax . Its creator Larry Wall, is an experienced UNIX 
programmer as well as a linguist, and he received a "Dr. Dobb's Journal" award 
for his creation. Dr. Dobb's Journal is the most popular magazine on 
programming, and perl technologies are constantly mentioned in it.

Oracle 8 is not a toy. It is a huge independant system, that is supposed to 
serve a costumer's need for a long time before it breaks down under pressure or 
needs to be upgraded. If the programmers use Java to build it, too much time 
will be spent on:
1. Designing a complex hierarchy of classes, interfaces and exceptions that 
will be a good basis for the DB.
2. Understanding what the code written by other programmers meant, and what 
classes should be used and when. (remember that operators cannot be overloaded, 
etc.)
3. Making sure that they not overdose the maximal number of objects that the 
JVM can hold.
4. Writing complex code for some very mundane operations of duplicating an 
object (every member has to be assigned separately).

It is achievable, but will be very hard to maintain (most computer technologies 
are still advancing at a dazzling rate), will require a large amount of memory 
to run, and will probably disappoint most users. >From the script-writers side: 
Java is not very suitable as a scripting language and IMO, is a very hard 
computer language to learn as a first language. I was an experienced BASIC, 
C/C++ and perl programmer when I learned Java, and I still had to get used to 
some of its nuances.

4. The someone to blame issue: Oracle is not going to start throwing 
accusations at SGI or sueing it for money if a bug in IRIX causes Oracle for 
IRIX to fail. They just trust SGI to report the bug soon enough, release a 
patch, etc. so Oracle can inform their costumers, or release a patch of their 
own. Likewise, Oracle cannot "blame" Sun or any of the many other JRE vendors 
if their runtime environment break the server, either.

Plus, some major UNIX vendors recently announced that they will release ports 
of their servers to Linux, which is just as worst as perl is regarding having 
someone to blame. Yet, both Linux and Perl are popular, well-designed, stable, 
open-source, affordable, well-supported and well-documented (at least in the 
case of Linux) technologies, which is more than enough for a vendor of a 
serious DB server to rely on.

5. Perhaps I should have mentioned it in the article, but I realize that perl 
has its disadvantages: high probability of typos causing trouble (can be 
avoided with a proper design), lack of organized on-line documentation, 
slightly patchy syntax that was derived from many sources and so forth.

I believe that those disadvantages will cause less trouble when it comes to 
programming a RDBMS and later scripting it, than Java's inherent restrictions. 

6. I suppose Oracle and other DB companies can work on their own clone of Perl 
with a cleaner syntax (something like ObjectPerl) at a later stage. 
Furthermore, I'm not very familiar with Python and it's possible that it (or 
some other interpreted language) is more suitable to program an RDBMS with than 
perl is. I was just using perl as a point of reference that shows why Java will 
not be a good idea to program a DB server with.

BTW, I already sent the editorial to Slashdot's maintainer, only to realize I 
received a lot of commentary overnight. I think it is accurate enough to post 
as it is, and I don't have the nerve to start re-writing it to emphasize or 
explain some fine points. Maybe I will, though.

Can anybody give me an E-mail of an Oracle-related mailing-list to where I
can send it too?

	Shlomi Fish


----------------------------------------------------------------------
Shlomi Fish        shlomif@vipe.technion.ac.il 
Home Page:         http://t2.technion.ac.il/~shlomif/
Home E-mail:       shlomif@ibm.net

The American Lottery - All you need is a dollar and a dream. We will
take the dollar, but you can keep the dream.