Rob Nagler <[EMAIL PROTECTED]> writes:

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

Exactly- the statically typed languages I am familiar with have a casting 
mechanism to utterly subvert compile-time type checks. While static typing
allows better compile-time optimization, it's value as a debugging 
mechanism is near the bottom of the list of advantages for engineering
a large project.  If interface guarantees are important between Perl 
objects, I'd have a look at Class::Contract.

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

To me, it is utterly nondescriptive in a PHB buzzwordy way, whereas 
static vs. dynamic typing is meaningful (and what I think most people
really mean by the former).

[...]

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

Could you say some more about what you mean by this?  Do you mean 
something like

  "use a functional language (like Haskell or Scheme), rather 
   than an imperative language (like C, Java, Perl ...)",

or are you talking more about the application's platform and design
(e.g. http://www.kegel.com/c10k.html )?

-- 
Joe Schaefer

Reply via email to