Hi, "Thaddeus L. Olczyk" wrote: > On Wed, 14 Jun 2000 14:20:13 -0400, Andrew Hunt <andy / Toolshed.Com> > wrote: > > > >Static typing..., hmm,... > > > > > > matz. > > > >Argh! Don't do it! > > > >"Static typing is for people with weak minds" :-) Well, that sounds like some pretty strong stereoTYPING of the people that gave us Unix and Linux. :-) > >/\ndy > First in defense of static typing. I think what is missing here is _optional_, and maybe consideration of whether there are other means to what is indisputably _sometimes_ a very desirable end. > It's strange that you pick on static typing given that Ruby boasts of > strong Eiffel roots Well, I think this is more a matter of giving credit where credit is due, not boasting as such, and a matter of taking what features seemed most useful for Ruby, versus the core language (granted there is overlap involved). > Considering the heaps of praise Eiffel has recieved > from the OO community I would suspect that most feel it has benefit. I think a major benefit was support for "programming by contract". There has previously been a little discussion of how to do this in Ruby. > It seems a shame that that you throw out the safety of a statically > typed language, when you don't use what a dynamically typed > object brings you most of the time ( I figure you really take > advantage 1%-10% of the time ). While static typing is _somewhat_ more safe in _some_ ways, but with respect to frequency of bugs (which tend to increase with length of code and time to implement), most studies I have seen references to (sorry, don't have any handy) don't show clear-cut advantages except for special cases (which granted may be important for some types of critical applications). > So why not do this? Make Ruby a > language with both static and dynamic type. I think this might be possible, but I think there would be all sorts of complex issues concerning the often subtle and indirect interactions of these 2 very different styles of doing stuff. Maybe a better way of thinking about this in the Ruby context is to think in terms of how to support "constant types". When Ruby's CRAN library becomes as large as Perl's CPAN library, it seems obviously desirable that there be some sort of reasonable constraint on dynamic changes that can unexpectedly break things (the recent discussions on $-variables are an example of this concern), or perhaps some improved way of expressing its existent capabilities. -- Conrad Schneiker (This note is unofficial and subject to improvement without notice.)