Allow everyone. I'm Sotero. I'm one of the the big core committeers and in Tokyo it's I'm nine am in Japan, so it's pretty somewhat our owning, but I'm fine. Thank you for inviting me to the this podcast, and I'm very excited to talk here. So yeah, absolutely, Yeah, a lot of exciting stuff coming from the Ruby cour team. We got Ruby three point three in December, which is exciting and yeah, lots of cool stuff. Do you want to tell everybody what you do on the Ruby courteam?
Yeah? Uh yes, so uh, I'm my project is RBS in the d BI core. It's a Lubi jam that is ban joge uh. I think that it was started from the dubichavenlessly there forget exactly, but yeah, it's included in the B distribution and you can use that without the another step two in store that jem uh. It's how let's say that for the type checkers or type chickens. So okay. The Yeah, r B S is a language. It's also a language, uh. It is to describe
the structure of the U r B programs. So your programs has some classes, some modules, some methods, and mainly lates the each other. So the RBS is a lranguage to how they said to describe the structure of the classes modules, and it is also a jem to find the files and road to the euro B program and doing something to yeah, interpreting the language. Well, well, I'm gonna ask the big question for this summit, and that is what is the future of Ruby? And it doesn't necessarily have to
be type checking your type signatures. Uh, any part of Ruby that you're excited to talk about, or anything you're excited to see, come out happy to hear about any and all of it. Eventually we will talk about type signatures, but we can start wherever you want. Yeah, yeah, yeah, uh so, yeah, I think that I guess that's choking about the future of the RBS or some types in the community. Uh yeah. So I started bucking Poesy ATBSM about five years ago. So and then walk developed
some gemons and yeah. I also developed a static type checker for dub. It's called and yeah this uh my my projects I'm working for ready to to be Yeah. I hope the inter future, the more LUBI programs or more lobbists uses that gems or right types. Uh, right, types, I don't know, but yeah, this is the difference between me and much about the what the types can do for the programs. But yeah, so he
has writing types. But yeah, I mean, I mean yeah, two, I mean that, uh, I don't think that forcing writing types to your programs, of course, but that Yeah, the the point is that to get the uh the maximum auto the types or the auto the analysis, so you have to it's it's better to describe your being. And yes, solids at types in some programs. So yeah, but that, yeah, I mean that getting more popular making my type systems, gems, i'd BS
and Steve more popular in dubs well of step peaches. I'm thinking about bube. Okay, Yeah, I I haven't done a lot with the types options in Ruby. I know that there's RBS, like you said, I think we've talked to somebody about sorbet in Ruby. I also do a JavaScript podcast and this reminds me a little bit of typescript that sits on top of JavaScript. And yeah, I mean, I'm just trying to think through some of
the things that I've heard. I've heard a few people basically talk about how it catches bugs or issues that they wouldn't otherwise run into before they release the production. So that's that's one thing. And then a lot of times the conversation also goes to tooling. Are are there any other benefits to having a type system in Ruby? Do you think people would drive people to adopt it? Yeah? Yeah, yeah. The finding some kind of the bugs is
the absolutely the one of the most important outcomes from the tickets. But that uh yeah, the recent type tickets also provides some of the integration into the edituts. So it will help you reading. You a bit called writing, we are really call it. So it will show you some of the possible massot names as a completion and you can pick someone, or it will show you the uh how would you say that a documentation? What this messod is doing? So what the parameter should be? Or yeah, right side.
So this is to help the writing you are to be caught in idea.
Another one is that, uh you it will help you leading your programs, leading your programs, so you will hope some of the nodes in the programs and then it will show help the the editor will help will show you some of the documentations of that method, or you can jump to the method implementation to confound what it is doing exactly where you may find something to some of the differences some of the UH to be caused signifets in your pro project that
is calling that method. So these features uh will be Yeah, it will really help you reading, writing your top programs. So yeah, I think that it's probably more important than simply finding the ballots. So we can find bulks by writing tests or depraying into the production and seeing that some bugler post work. But yeah, so the type system just works through annotations basically when you use parameters or declaring method or things like that. Right, Yes,
Yeah, it's a bit complicated. I mean that I do you see in typescript JEBA, c CHEP or in any modern type CHECKT brangages that you usually expect the writing the type signatures in USS code just above the method definition. What's that? But that RBS is a bit different from that, so it's hard that separate fires. It's a different rung edge from Ruby. And then
we need to how they say that writes something. There some of the obstruction of the big program and there, so there's some crass crafts something or they have something to find the mess out and then yeah, then the typetic away combined to to be called an RBS file and type jack set. Okay,
yeah it sounds good. So yeah. Well, one thing that's interesting is and I haven't seen it as much in Ruby, but definitely a JavaScript there's been a wide amount of adoption for the types and it basically boils down to the tooling and some of the things that you're talking about. So do you think this is going to get a wide adoption in Ruby or are we do we just do things differently then say the JavaScript community. Yeah, yeah, yeah, it's a good question. Uh yeah, I still don't have any
concrete conclusion, any conclusion for that. I don't know that how much the adoption will be or how it will be. So there are some cases that are I'm pretty sure that if you develop some application, the type checkers will help you so, but that it also needs some of the type definitions of the libraries. So the so if some some gem auss wright types of the gem and includes the definition in the gym, it works. So it's it's very great. Yeah, everyone will be happy, but that yeah, I
don't think that every gym alsots want to do that. So yeah, yeah, yeah, some gems will without type definition. Yeah, so for that case, we have how they say, the community managed type definition the poetry, so it's under the GitHub to be organization and called gem rbs correction. So we have uh yeah uh some gems inside the poetry and the type of definition of that gems so it's something like that the plinantary type for that type
system typescript divascript. So they also have a big community managed the poetry is for the packages that without the type definition. So we're doing the same. I hope it will help you, but that yeah, the coverage of the Jim Obvious correction is very small and yeah, we are waiting for you contributor again. Yeah right, that makes sense. So yeah, I have to say I'm not convinced that this is something that I want. I'm also not
convinced though, that it's not something that wouldn't be good for me. So I'm a little curious. What is the disagreement between you and Matt on un Ruby type signatures and stuff like that. Yeah, yeah, yeah, uh, it's about it what Yeah yeah, yeah, he says that he wants something like the type influence so we don't have to write types in the to be prone or you know, the type of signatures, but that it would
be automatically generated from the B programs. M hmm. Okay, yeah, this is that what MATS is MAT's harps and yeah, I don't think it's it's very helpful mm hmm. Yeah, because that the BI program is literally flexible, so that generated generated types will be too. I would say that too strict or it's too parmisip. So it means okay, yeah, we can pass at something and then we can get something. So it's it may
be a type, but it's not helpful. So we can say that it's an integer to indiger, So I mean that it may be correct, but that we may want to pass something like the throat and then it may work. So yeah, so it's it's a It's very important to find a good balance between the two specific one or two general one the best wait and the Yeah, the program is that uh, it's not the it's not the something we can find a technically or automatic carry. But with the the programmer has
the answer to it. It's a program as opinion, it's a program as intentions. What is the best type is the program as intentions? And we cannot generate the yeah, the very good one. What much career, Yeah, I can. I can see why that would be a hard problem. Yeah, yeah, so it's yeah, uh then we need some types. So it's it's it's it's not the some clinical constraints, but that it's an
opinion of the oasis. Mm hmmm. So yeah makes sense. So so, yes, you said that this was shipped with Ruby two seven or Ruby three zero. So if I want to use a feature like this, how do I turn it on? Do I just do I even need to like require it or gem install it or uh? Yeah, RBS is a gem. It is a bundoy to to be so yeah, it's I mean that when you install some Ruby distribution using rb M, r b M, I
don't know. But so then that gem is already installed on your computer, right, so you don't need to GEM install RBS well something, yeah, but yeah, of course require RBS. Yeah, just require RBS. But yeah, I also recommend using the ratest badge nobody. So yeah, yeah, I mean I mean that I recommend the Yeah, putting the RBS in your jump fire rocks that that yeah, right, that makes sense. So if you put it into your gym file or so gem INSTALLID then you'll have
the latest version. Yeah, it would be the one. Yeah. It they recomended way very cool. Yeah, I kind of want to go play with it and just see if I like it. Yeah, yeah, yeah, I hope there will be a very some interesting experience that so that uh, you can write that types of to be programs in GYM in RBS. So there's some class something something something. So but that also I yeah, my recommendation is that using some static type checkers, I mean it's deep,
it's my static type checkers. Then it will variegate the how this is the consistency between the your reprogram and your RBS type definition, and then it will find some type errors or yeah, it will provide some editor integration and yeah, but that if you, yeah, if you are not interested in using the static type checkers works deep, you can use the RBS gem yourself. So you will write the RBS fires and then you will write some tests for
the type definitions using the RBS. So it's somewhat the very uh it's strange, but that we we have the how they say the type definition of the program, and we also have a test against tests for that type definition and then yeah, it works. So this is something that's out there that people can already use. So what what is your type checker? You said it was steep steep, Yeah, and is that also bundled in with rob or do I have to go install it? It's not man joyd ind be.
It should be in store. So yeah, because of the how they say said disagreement with muth but yeah, yeah that you may not. Also about the type prop, it isn't another project by the It is built on the top of the id s and it doing more closer to what the mat HAPs. So it's scans. You got to be caught and generates the rbs pires and so yeah, you don't have to write down every us pires, but
that type propriate with you by scanning the yout to be called. So this is uh yeah, type prop is bandoid to to be so you don't have to insult type prop them. Yeah, type properly is bando it, but steep it's not band it. Okay, yep, very cool. So yeah, it'll be interesting to see if people adopt this. I've heard various people talk about different aspects of type checking and Ruby and whether or not they like
it. I know some people really really like it and some people really don't even want to think about it. So yeah, it'd be interesting for sure. Yeah, yeah, yeah, I think that, Uh. One feature I want to see is that a lot of more projects built on the top of RBS. I mean that currently the yeah type off is aesthetic type checker that is is on RBS, and Steve is also a static type checker.
And we have our program of I r B that helps the uh doing doing the completion for the your how this interactive to be programming in our I r
B. So based on the types and yes, that's it. So, but I think that we want more projects some for example, the one thing I have in my opinion is that in my mind is that the cup or something like that, the Lobo cops sometimes uh yeah, some of the cops in the cup is doing detecting some probably it's a dangerous messod course, like the open kind of open Yeah, I forget it, but that yeah, so, but that it's not very clear that if it is exactly called that
open method, but that using the type chickens, using the desert type chicken, the the method detection will be improved. Cool. Yeah, so it will give you the more precise of they're saying that detection which method is called? And I mean that, Uh, we can develop more cops, the more cops to find some programmatic to be called the right. Yeah, I mean that if we yeah, if it is a really common method name or out of the misdeediction of the method, we cannot see that cops because there
will be so many false positives. But that if we can make it more precise, then we can do more analysis. Right, yeah, makes sense. So when you're not working on type systems for Ruby, what what do you do? Oh about the programming? You mean? Yeah? No, inpacted, almost everything I do for to be programming is that type tick ass that makes sense? Something realy the PATHI chickens, Yeah, yeah, I
use some Yeah, I do some of the past passing, right. Yeah, I'm working for the pasaive generator but that yeah, it's GEM But yeah, makes sense. So do you get paid to work on RBS then? Uh? Yes, I think the Yeah, Patry not that for time, but that yeah. Part of my WCKJAM is I can usuppose the RBS and yeah, it's really it's really very great cool. Are there other things you see coming down the pipe, either with Ruby or in the Ruby community or
ecosystem, that you're excited to see. I'm very excited to see the why did it's the performance in Broman of course, and some of the presom pass also very great one. Uh yeah, I also planned to use the prism to steep and maybe in RBS, but yeah, not not yet studied, but yeah, it would be very great experience, great improvement. Would also love the how I say that, oh, to be a respe is very very great, awesome, It's awesome. So I'm using that in my everyday
developments. And the last one I want to mention is that I would say that webys and Brie support. Yeah, web some support and the b Yeah, they had heard rumors about that. I don't know where it's at. Oh webat and by right yeah, okay, okay. So it's a kind of the running to be interpret or in your browser. Right. So it's something like that we land the JavaScript in your browser, but that we can
run to be programmed in the browser. Right. So by yeah. So one of the I said, one of the three use cases of the web assembly is that I want you to provide some playgrounds of this deep in on on the browser. So then you can try type chicking your to be caught on the browser by accessing some websites and it will download some steep to be caught and some of them to be in the preacher that is web assembly, and then the brands on your browser. So it would be great, right,
Yeah. I just looked up an article and it says that it came in the three point two release. Yes, that's three point two. That is very cool. I didn't know that they had gotten that in there. So yeah, yeah, oh what. Yeah, I'm still waiting for some of the concurrences support improvements in the Yeah, this is how they say that somewhat be our program to me. So, because that's deep uses a lot of worker processes response up to the Yeah, it depends on the number of
the processes on your computer. But that exponds twenty to be processes to do the type chicking. But that we can, Yeah, but if we do some parallelism and inside they do bi processed will be very great. So because that we can stop respawning the twenty to be processed, but we can use twenty threats in the Yeah, twenty gives I guess that in the in one to be processed, right, makes sense? So what what do I have to do to compile Ruby the web assembly? Oh yeah, I did not
exactly. Okay, do you know who's working on it? Because I I'd love to pull him in and ask him a bunch of questions about this. Yeah, yeah, yeah, I didn't know. I didn't know. I would see Yeah, webus MB right now I should track yeah, all right, I'll I'll have to track down who's uh, who's running that? Yeah? Cool? Is there anything else you're looking forward to coming out or mm
hmm no no, yeah, all right. Well then I just have one more question than that is, if people have questions about RBS or anything else that is coming down the pipe that you're working on, how do they connect with you? I'm sorry that what? Yeah? How do people find you online? Oh? Yeah, yeah, yeah, I'm on the discol channel the Yeah, I'm on the master don or Discorde's English social. Yeah, it'll be that social. And what is the Discord channel there to be discord?
I don't know what is? So yeah, I'll be there so you can talk to me. What Yeah, you can joke to be on the open the prodcast or Fire an issue, and the Guitar Project on the RBS project. All right, sounds good. Well I'll go ahead and wrap it up. Thanks for jumping on and talking to me. Yeah, thank you, Thank you to say it was Leui. Yeah, great, chalk with you
