[#3109] Is divmod dangerous? — Dave Thomas <Dave@...>

14 messages 2000/06/06

[#3149] Retrieving the hostname and port in net/http — Roland Jesse <jesse@...>

Hi,

12 messages 2000/06/07

[#3222] Ruby coding standard? — Robert Feldt <feldt@...>

16 messages 2000/06/09

[#3277] Re: BUG or something? — Aleksi Niemel<aleksi.niemela@...>

> |I am new to Ruby and this brings up a question I have had

17 messages 2000/06/12
[#3281] Re: BUG or something? — Dave Thomas <Dave@...> 2000/06/12

Aleksi Niemel<aleksi.niemela@cinnober.com> writes:

[#3296] RE: about documentation — Aleksi Niemel<aleksi.niemela@...>

> I want to contribute to the ruby project in my spare time.

15 messages 2000/06/12

[#3407] Waffling between Python and Ruby — "Warren Postma" <embed@...>

I was looking at the Ruby editor/IDE for windows and was disappointed with

19 messages 2000/06/14

[#3410] Exercice: Translate into Ruby :-) — Jilani Khaldi <jilanik@...>

Hi All,

17 messages 2000/06/14

[#3415] Re: Waffling between Python and Ruby — Andrew Hunt <andy@...>

>Static typing..., hmm,...

11 messages 2000/06/14

[#3453] Re: Static Typing( Was: Waffling between Python and Ruby) — Andrew Hunt <andy@...>

32 messages 2000/06/16

[#3516] Deep copy? — Hugh Sasse Staff Elec Eng <hgs@...>

Given that I cannot overload =, how should I go about ensuring a deep

20 messages 2000/06/19

[#3694] Why it's quiet — hal9000@...

We are all busy learning the new language

26 messages 2000/06/29
[#3703] Re: Why it's quiet — "NAKAMURA, Hiroshi" <nahi@...> 2000/06/30

Hi,

[#3705] Re: Why it's quiet — matz@... (Yukihiro Matsumoto) 2000/06/30

Hi,

[ruby-talk:03440] Re: Static Typing( Was: Waffling between Python and Ruby)

From: Dave Thomas <Dave@...>
Date: 2000-06-15 15:16:35 UTC
List: ruby-talk #3440
olczyk@interaccess.com (Thaddeus L. Olczyk) writes:

> So why not do this? Make Ruby a language with both static and
> dynamic type.

One of the joys of Ruby is it's uncluttered syntax and simple
semantic.

Behind tha lies a sophisticated object model.

> You can declare an object to be of a type (eg MyClass MyObj ) in
> which case it is statically typed or you can declare an object
> untyped (eg untyped myObj or dynamic myObj ).

In Ruby, objects are already types (according to one definition of the 
word)--they respond to a certain set of messages. You can make objects 
immutable by freezing them. One of the impacts of this is that you
can't add to the set of messages handled by a frozen object. Is this
what you wanted?

I suspect not. My guess is that you wanted to be able to define the
type of a variable.

This would be impossible in Ruby, as type signatures are mutable.

For example

     def fred(String param)

What's the type of 'param'?  String, you say. OK, but then


    class String
       def +
          raise "Sorry, no concatenation today"
       end
    end

I've just changed the meaning of String. Should Fred now not accept
such modified strings? How would it know. And I've just changed every
string in the system (including "Sorry, no concatenation today").


I've used strongly typed languages in the past. I thought it would be
bad to go to a language where types are basically irrelevant. I was
wrong--I come across bugs because of this very, very infrequently, and 
my productivity is so much higher (I'd say by an order of magnitude)
that the occasional problem is easily accounted for.


Of course, your milage may vary.


Dave

In This Thread