Eleanor said:
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.