Gunther wrote:
> If you do not have a strongly typed system, then when you break apart and
> rebuild another part of the system, Perl may very well not complain when a
> subtle bug comes up because of the fact that it is not strongly typed.
> Whereas Java will complain quite often and usually early with compile time
> checking.

I don't think there's an "objective" view about this.  I also think
the "it compiles, so it works" attitude is dangerous.  You don't know
it works until your unit and acceptance tests pass.  I've been in too
many shops where the "nightly build" was the extent of the quality
assurance program.

> Compile time checking can definitely be a friend of yours especially when
> dealing with large systems. But it's also a friend that's judgemental
> (strongly typed) so he's a pain to drag along to a party....

To me, strongly vs weakly typed is less descriptive than statically vs
dynamically typed.  For example, Java is missing "undef".  It has NULL
for pointers, but not "undef" for ints, chars, booleans, etc.  Large
systems often have unexpected initialization order problems which are
not handled well by Java due to this missing feature.

> Java's support for multi-threading makes writing servers feel fairly
> trivial with no jumping through IPC::Shared memory stuff hoops to get
> shared memory caches and the like.. you just synchronize on global data
> structures.

It's important to define the problem space for this discussion.  I
think Perl is really good for information systems, be they enterprise
or not.  I probably wouldn't program a real-time system in Perl.  I
might program it in Java.

Here's a strong statement: Threads have no place in information
systems.  The NYSE is run on Tandem boxes.  Tandem's OS does not have
threads.  The NYSE can process over a billion stock transactions a
day.  The EJB spec says you can't fire off threads in a bean.  I think
there's a reason for the way these systems have been architected.

Threads are a false economy for systems which have to scale.  As some
people have joked, Java is Sun's way of moving E10K servers.  SMP
doesn't scale.  As soon as you outgrow your box, you are hosed.  A
shared memory cache doesn't work well over the wire.  In my
experience, the only way to build large scale systems is with
stateless, single-threaded servers.

Rob

Reply via email to