9 ms·
Rooby: a Ruby-like object oriented language written in Go
- dagi3d 10y agoIt would be interesting if it would include native Go features such goroutines and channels
- ryancouto 10y ago+++++ yes it would
- blablabla123 10y agoNice... reminds me of Mirah (formerly known as Duby). It's basically a compiled Ruby, but abandoned since some time. 5 years ago it used to be the fast alternative to JRuby on Google's App Engine. Together with the web framework Dubious :D
- hamidr 10y agoSo basically another elixir? I'm curious why Ruby? and why with Go?
- hacker_9 10y agoRight there on the page: "Goal I want to build a language that focuses on developing microservices. Which should be performant and easy to write. This is why Rooby has Ruby's user friendly syntax and is written in Go."
- badpenny 10y ago"That sounds very stylish".
- kkirsche 10y agoI don't think it's really elixir so much as it's another Crystal (https://crystal-lang.org https://crystal-lang.org)
- hk__2 10y agoAt least Crystal brings new features like static typing, light threads, and compilation. From the README I don’t see what Rooby is bringing to the table.
- pmontra 10y agoMaybe not being static typed is what could make it appealing to Ruby developers. For example I don't like to have to declare types or generics. Type inference is ok. There is a wide range of languages to pick the one that better suits our style from. That's great and I like that people keeps trying.
- hk__2 10y agoStatic typing doesn’t mean you have to declare types. Type inference means you can write code just like a non-typed language but you get the safety + it executes faster. IMHO, except for toy languages, not having (strict) typing in 2017 is a language design flaw.
- pmontra 10y agoIt's a tradeoff between safety and convenience. It's swinging toward safety now and it will swing back towards convenience again. At best we're living in a damped harmonic oscillator. Maybe type inference is the equilibrium point.
- skrebbel 10y agoI'm baffled as to why people keep insisting Elixir is "Ruby-like". Is it just because they both have "def" and "puts"? Cause that's just about where the similarities end :-)
- latch 10y agoAgree. The language is different. The standard library is different. The runtime is different. The last two quite substantially at that. JavaScript is more like Ruby than Elixir is. I'm tempted to say Go and Jave are more Ruby than Elixir is. FWIW, I've been using elixir for about a year now, and I think it's fantastic. I still use node & ruby for scripts (which can get complicated, but almost always for one-offs and asynchronous processing), Go for anything I actively want to share memory (though, started using Crystal, can't wait for threads), and OpenResty for any web proxy/middleware stuff. But Elixir is now the lions share for me and I find it fun and productive.
- brazzledazzle 10y agoMaybe they mean in terms of there being a Rails-style (mindset might be a better way to put it) framework available to get up and going quickly.
- nurettin 10y agoThis would be huge if it passed at least some portion of the RubySpec
- skrebbel 10y agoI like the name and I hope the obligatory web framework will be called "Rales".
- h1d 10y agoName is terrible, you can't tell your friend "I've started using Rooby", response would be "good for you". I suggest renaming before too late.
- devmunchies 10y agoShould rename to Rubby.
- joshmn 10y agoWhen I get bored I'll give into recruiter spam sometimes and take them up on a phone call. I'd purposely pronounce Ruby as Rubby, and similar words. My favorite was Mysqueel.
- Jeremysr 10y agoSounds like you may enjoy My Rails Blob: http://railsblob.blogspot.ca/2006/08/my-new-blob.html http://railsblob.blogspot.ca/2006/08/my-new-blob.html
- timdiggerm 10y agoImplies talking about this IRL
- nik736 10y agoCrystal is years ahead and way better with an active community. What purpose does Rooby serve?
- Lazare 10y ago> Rooby is a Ruby-like object oriented language written in Go. You can think it as a simplified, compilable Ruby for now. I have to ask, if your goal is "compilable Ruby", then...why not Crystal? (https://crystal-lang.org/ https://crystal-lang.org/ ) Seems like it accomplishes your goals, already exists, and is (as far as I know) stable and well regarded. Nothing wrong with reinventing the wheel, and you may have very compelling reasons to write your own project. But it looks weird when there's already a well-known project in this space and you don't compare yourself to it. How are you better?
- cies 10y agoNot written in Go maybe? Many of these language projects are people's hobby projects. They like to pick a language they either know'n'love or want to get more proficient in. (edit: nothing wrong with that!)
- Lazare 10y agoQuite right. And there's nothing wrong with that! But it's good to know if the author's main issue with Crystal is that it <lacks important feature X> or if it's that it's not written in Go, which is a barrier for him to contribute. Both are very valid reasons to start a new project, but it's good info to have. :)
- cies 10y ago> And there's nothing wrong with that! I was not implying a problem with that. I'll try to make that more clear by an edit.
- kodo 10y agoCrystal is written in crystal so everyone has an equal barrier to entry
- brightball 10y agoIn terms of Crystal vs Go, I've heard that Crystal is slightly faster but that Go is more portable and has much better concurrency? Is that not accurate?
- marcoperaza 10y agoIt might not matter much to the Ruby folks if it remains a hobby project, but this probably violates the "Ruby" trademark.
- calebclark 10y agoHow about changing the name to Gooby?
- pmontra 10y agoI went to https://www.ruby-lang.org/en/about/ https://www.ruby-lang.org/en/about/ and I didn't find any references to trademarks. There is a JRuby, an IronRuby, why not a Rooby?
- dragonwriter 10y agoIronRuby and JRuby are both implementations of Ruby; aside from any trademark issues that maybexist (I kind of doubt there are any) the usse of Ruby in the name is communicative of accurate information. Using something that's natural pronunciation is as a homophobe of Ruby for something that is not a Ruby implementation is probably misleading and and undesirable for it's effect on being able to clearly talk about the project.
- Rapzid 10y ago
- rubyfan 10y agoI see a lot of references to Crystal here and I would agree it is more mature but has different goals to be sure. If you want a rubyish DSL for microservices which can expose golang features and libraries then Crystal isn't a suitable match. We have to assume the later is important. It's like saying JRuby is a suitable replacement because it's fast and has microservice libraries - it's not exactly what you want. If the author is not planning to support rubyspec, monkey patching, runtime magic, etc. then it looks like they are closer to delivering on their objective.
- kitssupplies 10y agoCV Kits Supplies is Engaged In The General Services Contractors Providing Services Among Other Services Office Cleaning Service Building, Portable Toilet Rental, Property, Headquartered Di Jalan Raya Natar Lampung Indonesia. Vision & Mission CV. Kits Supplies Customer Satisfaction is our challenge detail us : http://kitssupplies.com http://kitssupplies.com 081368381598 ( +62) INA
- dplgk 10y agoWhy not Guby or Gooby?
- st0012 10y agoHello, I'm the author of this project. Let me explain a few things: 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 :)
- fernly 10y agoI think you shoulda named it "Goby" -- which is a real word for a cute l'il fish. https://en.wikipedia.org/wiki/Goby https://en.wikipedia.org/wiki/Goby
- gareth_at_work 10y agoSeems like interop with Go could be its selling point. I wouldn't call it gruby though, since it isn't Ruby-on-Go.
- chank 10y agoFor all the people asking "Why not Crystal?". It seems to me like the creator obtained a copy of the Go Interpreter book(https://interpreterbook.com/ https://interpreterbook.com/). Seems like a fair bit of the code is reused here. Nothing wrong with that at all (if true). After all its all under MIT License. Seems like a pet project more than something the author expected to gain any attention (kind of like Linux started out). Seems to me more like a ruby-like-coffeescript equivalent for Go.
- st0012 10y agoHaha, 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.
- mayoms 10y agoI 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 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.
- st0012 10y agoThe '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.