From: "Jörg W Mittag" Date: 2009-12-03T20:30:11+09:00 Subject: Re: [Link] Development of Ruby VMs Eleanor McHugh wrote: > On 2 Dec 2009, at 15:40, Jörg W Mittag wrote: >> Among the ones that *are* still being developed and that are missing >> from the list are: >> >> * tinyrb (Marc-André Cournoyer's tiny Ruby-subset VM) > Hopefully this list will soon be joined by RubyGoLightly, my project > to port TinyRb from C to Go and then see where that leads. Anyone > interested in helping (or chucking stones) can find work in > progress at: > > http://github.com/feyeleanor/RubyGoLightly This looks very cool! Now, if only tinyrb worked on Windows, Go worked on Windows and I could overcome my deep-seated hatred against so-called "systems programming languages"[1] and actually bring myself to learning the damn thing. Anyway, regarding your "see where that leads", I have a couple of questions: * Are you planning to use Go's garbage collector or provide your own? Currently, tinyrb uses the Boehm-Demers-Weiser conservative garbage collector (AFAIK anyway), which incidentally is also the collector used by one of the two Go implementations. Marc-André was considering switching to reference counting, which incidentally is also what the *other* Go implementation is planning on doing. * Are you simply using Go as an implementation language, like, say, tinyrb, MRI, YARV or Rubinius do or are you planning some sort of interoperability between Go and Ruby as JRuby and IronRuby do or even a very deep unification of the two languages like MacRuby and MagLev? * Are you planning on implementing Threads with Goroutines? What about Fibers, Continuations? * Are you planning on surfacing the CSP/Pi-calculus style concurrency of the Go runtime somehow in Ruby? * Are you planning anything at all, or just having fun? (-: jwm [1] This hatred is rooted in two things: 1.) "Systems programming language" is commonly used as a euphemism for "crappy programming language" in the sense that "we know it's crap but it's okay, because it's a systems programming language!". Ex.: C, C++, Java 2.) I strongly believe that systems programming languages should not exist. Writing operating systems, garbage collectors, compilers, interpreters, real-time systems, interrupt handlers, databases, etc. *in* Lisp, Smalltalk, Python, Haskell has been done for decades, as has writing fast implementations *for* them.