Prev: Putting passwords in a properties file?
Next: Interview
From: Eric Sosman on 12 Oct 2009 17:55 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 12 Oct 2009 18:04 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 12 Oct 2009 20:38
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 |