Stephen Birch wrote:

>Matz's keynote topic at Rubyconf in which Ruby 2.0 was introduced was
>in 2003.
>
>Does anyone know if any progress has been made on Ruby Rite or is it
>vaporware (http://en.wikipedia.org/wiki/Vaporware)?
>  
>
Apart from the entry on Ruby-Garden 
(http://www.rubygarden.org/ruby?Rite) there doesn't seem to be much 
about on Google. I found the following project really interesting:

  http://www.atdot.net/yarv/#i-5-1

I dowloaded it and built it a couple of weeks ago, I got a small number 
of build errors that were fairly easy to fix. When I tried it with 
QtRuby though I think it fell over.

Yarv generates byte code and hints at being Rite complient because you 
have to run "ruby -rite" to activate it, but I couldn't find anything 
explicit on the web page about support for Rite.

Anyone else had success with Yarv yet?

My major gripe with Ruby is that there's no static typing. I'd really 
like to be able to do something like:

interface ISubject
  def notifyAll -- unit
  def addObserver(a -- IObserver) -- unit
end

interface IObserver
  def subjectUpdate(subject -- ISubject)
  end
end

class Subject
  def initialize
    @observerList -- ISubject IEnum = Array.new()
  end
  ...
end

Why? because interfaces gives you a place define and explain protocols 
of interaction. It also helps out the IDE, when you type @observerList 
the IDE knows the type and can do name completion on it, hyperlink your 
code etc.

Also interfaces inheritance is very different to reuse inheritance. It 
is so much clearer intentwise for a framework if the interfaces are 
explicit, rather than being implicit.

The major problem with interfaces is that you can't say later, oh, this 
class implements that interface, but in Ruby, if there were interfaces, 
the you could.

regards,

Richard.