33 karma · joined April 23, 2017
But indeed, the type completor would've been much harder to build and maintain if without Prism.
Fast-forward to 2021, I got interested in debugging tools so I started contributing to the then newly created Ruby debugger[2]. In less than a year I opened more than a hundred PRs and became the 2nd biggest contributor of it. And that eventually landed me a job to work on Ruby's development tools, like LSP servers, REPLs, and of course, the debugger :-)
And we know that Goby is not special enough by giving green thread or channel. So currently our main goal is to let users use Go's packages and manipulate Go objects directly in Goby.
And we already made some progress, please check out this: https://goby-lang.gitbooks.io/goby/content/plugin-system.htm...
I think Go does good work at concurrency support, so using it can save me a lot time dealing with concurrency.
And in my opinion Go is simple to learn, which can make others contributing it more easily. For example, this is only my second Go project, and most of Goby contributors haven't written any Go code before (of course I spent some time guiding them).
The last reason is that I think Go has a relatively big community and ecosystem. It'll be more easy for me to finding resources.
And our plugin system, which is Goby's coolest feature: https://goby-lang.gitbooks.io/goby/content/plugin-system.htm...
Now me and my team did all these features, and released version 0.1.0. We built a sample website in 100% Goby and it works. Currently Goby's new goal is to let developers access Go object and packages without writing any Go code.
Monkey is fundamentally a functional language, but rooby is totally an object oriented language. And the compiler, vm's internal implementation and bytecode spec, which are the 'core' of rooby, is not like monkey at all.
I would say I extended monkey's lexer and parser as rooby's. I feel sorry if I didn't give enough credit to Thorston, I would add reference to his book in readme. But the core is more a Ruby than monkey, so I don't think it's just an "extension" of monkey.
Please read the commits and you'll know how much work I did to make rooby, it's far more complicated than just "extend" monkey.
BTW I also took "nand2tetris II" on coursera and read "Ruby under a microscope" for this project.
1. The goal of this project is to let people "Use Ruby-like syntax build Go-like performant api servers".
2. The "Ruby-like" means Ruby-like syntax because I am a Rubyist and I think using Ruby to develop project is fast.
3. Using golang is because I want to build a http server library upon go's http package, which I think is a very good choice for writing api servers. And of course I might use goroutine directly in the future.
4. Making rooby compilable is just a feature I personally like.
5. You can see this project as a experimental language for a relatively small goal (see the first point above) + I like writing Go, then you won't be so surprise why I created it and not using crystal instead.
6. I really didn't expect rooby would gain so many traction, thanks for all your opinions :)