[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.