From: Eric Sosman on
Robert Klemme wrote:
> On 10/10/2009 06:57 PM, Lew wrote:
>
>> It's a well-known truth that catching and preventing bugs at compile
>> time is far superior to dealing with them at run time.
>
> It does have some advantages but I do not subscribe to the general "far
> superior". If that was the case then there would be no place for
> dynamic languages like Ruby, Python, Perl etc. and yet there seems to be
> a number of people using these languages successfully on a daily basis.

"No place" is an overstatement, perhaps even a straw man. Why do
we use Java even though we know we could write better-performing code
in assembly language? Because better performance is not the only thing
of interest to us, that's why. Why do we use languages that allow bugs
to remain undetected longer? Because the languages offer other benefits
that we feel outweigh the risk of delayed bug detection, that's why.

As with most things, it's a matter of making trade-offs along many
dimensions at once, trying to find a balance that's appropriate to the
situation. And as with most things, if it's possible to improve matters
in one interesting dimension while not making them worse in others, that
one-dimensional improvement is an overall improvement in the product
or process. (This is just a bloviated way of saying that early defect
detection is superior, "other things being equal." The other things
aren't always equal, so sometimes early detection gets sacrificed in
favor of some other desirable attribute.)

> And on the other hand it seems Eiffel, which does a great deal of
> compile time checks is not widely used if I'm not mistaken. Of course
> there is a difference between technical superiority and wide adoption
> which is often influenced by a whole number of non technical factors.

Tial ni ne ĉiuj parolas Esperanton.

--
Eric.Sosman(a)sun.com
From: Donkey Hottie on
13.10.2009 0:07, Robert Klemme kirjoitti:
> On 10/10/2009 06:57 PM, Lew wrote:
>
>> It's a well-known truth that catching and preventing bugs at compile
>> time is far superior to dealing with them at run time.
>
> It does have some advantages but I do not subscribe to the general "far
> superior". If that was the case then there would be no place for dynamic
> languages like Ruby, Python, Perl etc. and yet there seems to be a
> number of people using these languages successfully on a daily basis.
> And on the other hand it seems Eiffel, which does a great deal of
> compile time checks is not widely used if I'm not mistaken. Of course
> there is a difference between technical superiority and wide adoption
> which is often influenced by a whole number of non technical factors.
> But I have come to believe that in the end the advantage of static type
> checks is not dramatic.
>

I personally hate "dynamic" languages like Perl, Ruby, Python..

Actually I would be very happy if Sun had implemented Java for the basis
of Ada. Object Pascal and Ada and all those are great, strongly typed
languages. Packages and all.

I have no idea why they had to take the C syntax, for a strongly typed
modular language like Java is.

And I have 20+ years of C++ experience...

From: Arne Vajhøj on
Donkey Hottie wrote:
> Actually I would be very happy if Sun had implemented Java for the basis
> of Ada. Object Pascal and Ada and all those are great, strongly typed
> languages. Packages and all.

You could use JGnat ...

Arne