[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Article for Slashdot: Oracle for Java
> Java is converted into a machine-independent bytecode, and then
> interpreted or JIT-compiled by a system-dependent interpreter. Such
> interpreted languages have the advantage of running within their own
> virtual machine. Thus, they can hide such machine-code derived
> problems of buffer overflows or assigning values to the NULL pointer:
> in the worst case the interpreter will either trap the exception or
> exit with an error code, and will not cause any damage to the system.
I have yet to see one Java VM that doesn't dump core. I fear it's too
early for Oracle to trust in Java, unless they are going to re-implement
JVM entirely. Oracle target market is industrial-strength critical
applications, which won't tolerate stability, compatibility, performance
and usability level of current Java.
> All the applications I mentioned do a lot of data and text processing.
> And with all due respect Java is not suitable for data and text
> processing. I can testify that both C++ (which is probably the
> language Oracle is written with at the moment) and perl version 5 are
> much better. Plus, perl 5 is much handier than C++, and has some
> advantages of being an interpreted language running on top of its own
> virtual machine.
Perl loses to C when the speed is critical. Java loses ten times more,
though.
> In Java, the most common data structures like a stack, a queue, or an
> associative array lie somewhere under the java.lang package and have
> names like java.lang.Stack or java.lang.Deque. Furthermore, they can
> only handle the most generic data-type: Object. This means that Oracle
> Programmers will have to implement their version of these containing
> either more basic data-types (such as the various integers) or derived
> classes of Object that will not require them to do the sub-classing
> all the time. After all, how much can one do with a reference to
> Object?
Anything. You seem to misunderstand concept of Java object. Everything in
Java is an object (except for plain old types like int, IIRC). You may
store anything as Object reference, and IIRC you may even enquire it via
instanceOf mechanism to see what class is it in fact. Java vectors is not
a bad concept, though it violates some theoretical requirements (you must
do an explicit type-cast, for example, i.e. know exactly what type it is).
> I wonder what will be easier to understand. Java's object-oriented
> programming is based on the Smalltalk school of OOP and is very
> restrictive: objects can only be single-inherited, operators cannot be
Not true. There's single data inheritance, but mupltiple interface
inheritance. And in fact, multiple data inheritance is a royal PITA. With
multiple virtual (diamond-shaped) data inheritance you very soon wish you
never born or never know what a computer is. If you need multiple data
inheritance, 98 times of 100 it's time to redesign your classes.
> Java's I/O mechanism is quite awkward with names such as
> FileInputStream, BufferedOutputStream, or ServerSocket for some of the
> most basic I/O operations. Perl uses simple global functions like
> "open", "print", "pipe", "socket", or "print", and can do some complex
> I/O operations with a few statements. And an RDB server requires a lot
> of I/O.
Well, Java IO mechanisms are strong, but almost totally uncomprehensible
to human minds. With rise of visual Java tools, this is a minor concern
anyway - almost noone is going to write plain Java IO code, as almost
noone is writing plain Win32 code - everything is done via high-level
functions and builders.
>
> If Oracle for Java comes out, I will not even want to try it. For
I doubt you could, if you wanted. You might just not have money to afford
a computer strong enough to bear it. ;)
> The Java technology is not in a stable state now. There are already 3
> major versions of the JDK and many APIs are constantly changed, or
> even lack a proper specification. Almost all Java run-time
> environments are problematic and unstable, and most web-browsers ship
> only with JDK 1.0.2. Java micro-controllers may help solve this
> problem, but it will take some years before they are integrated into
AFAIK most micro-devices with Java are also 1.0-based. You need time to
debug these things, and then they come with 1.1 and you start the whole
story from the very begining.
> On the other hand, if I'll hear that a serious OO RDBMS based on Perl
> is due to arrive I will be eagerly waiting to try it out, and I
Perl lacks one thing for it: big fat company that you can sue if something
fails. And this *is* a serious concern for ones who takes decisions in
Oracle-sized companies - being able to blame someone else.
--
frodo@sharat.co.il \/ There shall be counsels taken
Stanislav Malyshev /\ Stronger than Morgul-spells
phone +972-2-6245112 /\ JRRT LotR.
http://sharat.co.il/frodo/ whois:!SM8333