Hacker Newsnew | past | comments | ask | show | jobs | submit | st0012's commentslogin

These are the Ruby libraries that already adopted Prism: https://rubygems.org/gems/prism/reverse_dependencies


syntax_tree was actually created before Prism. Ruby LSP also adopted syntax_tree first, and then switched to Prism (then called YARP) when it was mature enough.

But indeed, the type completor would've been much harder to build and maintain if without Prism.


Good correction! My apologies.


In 2017, I wrote a toy language called Goby[1] to learn how Ruby works. A few folks contributed quite a bit to it and one of them later referred me to my previous job (as a backend developer).

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 :-)

[1] https://github.com/goby-lang/goby

[2] https://github.com/ruby/debug


Sadly we can't. But you can use go library in Goby


If you ask me why I started this project at first place, I'd say it's just for fun and practicing.

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...


Goby doesn't have JIT. It just created 6 months ago so we have many things prior to performance improvements. And I'm not a programming language expert so it's too hard for me introducing JIT in my first language.


Goby does reverse, using Go package as plugin. See: https://goby-lang.gitbooks.io/goby/content/plugin-system.htm...


Hi, I'm Stan, this project's creator. I will explain your questions later. But before that please check out our sample site (written in Goby): http://sample.goby-lang.org/

And our plugin system, which is Goby's coolest feature: https://goby-lang.gitbooks.io/goby/content/plugin-system.htm...


Congratulation, and best wishes :)

When things settle down, I would love to read an article from you about what it's like to launch a new programming language by the end of the 2010s.

I'm under the impression that adoption is going way faster than in previous decade, when php, java and C/C++ were kings hard to revoke. But there's still a gap of few years between initial announcement of a language and it being used in the wild - which is quite understandable, because people want to be sure the language will stick around before writing production code with it.

I would love to know what you do during those years, how you grow your language, how you simply manage to use it at work, or for your own projects. If you could write such article, that would be awesome :)


Thanks! I'll try to share my experience to others by writing posts or giving a talk on conf. But actually Goby is just 6 months old, so you might need a while :)


Congrats on the release!

I have one question: why Go? I would have expected Rust I guess, or OCaml or something.


Thanks!

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.


Hello, I'm Stan, the project's creator. A few months ago Goby(Rooby) was posted on Hacker News. I got many feedbacks and said that this language is aim at help developing microservices. To achieve the goal I also said that it'll have built in multi-threaded server and better thread system.

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.


If it meets the guidelines, this might make a good 'Show HN'. Show HN guidelines: https://news.ycombinator.com/showhn.html


Haha, I did read that book before start this project, it's a very useful material. But for now the project are far more complicated than the sample project in that book, only lexer and parser remain similar.

BTW I also took "nand2tetris II" on coursera and read "Ruby under a microscope" for this project.


I think that you should be a bit more transparent about how much of Thorston's ideas and code you are using in this project. You should probably give him some attribution.

I also read that book, and have a toy language I've been building, basically extending his ideas. I've looked through your code and much of is it nearly verbatim from the book (including code in your 'vm', or the monkey 'eval' package - it's not just the lexer/parser), though you (as I have), chose different names, or organized things differently, and added new features.

Yes, you've extended his ideas much farther, but the core of 'rooby' is pretty much the same as Thorston's language, 'monkey'.

Monkey is available with the MIT license, so it's fine what you've done. But, having been through the book and pretty familiar with the Monkey code (available for download here: https://interpreterbook.com/waiig_code_1.3.zip), I think it's disingenuous to say 'I read that book before this project..', which seems to imply that it was inspiration, rather than original source material.

On a positive note, it's a pretty cool version of Monkey.


The 'code' you read is similar, but the way they work are totally different.

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 here's the monkey source code I wrote when I practiced with the book https://github.com/st0012/monkey


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: