Hey, folks, welcome back to the Ruby Dev Summit. I am here
with Federico Yakati. It's we've worked together on different projects and chatted off and
on over the last several years. And uh yeah, I thought he'd have
some interesting ideas around what the future of Ruby looks like. He lives down
in Argentina and so he interacts with kind of a different circle sometimes than I
do. So yeah, Federico, what looking at where things are with Ruby?
What is the future of Ruby? Well, to answer your question,
there are there are like two big things I could think of, the things
I see where it's going and the things I wish you're gonna go. Uh
huh uh. In terms of what I see Maine on the form the rook
Coors, I think they are focusing a lot on performance, and I really
like that. I like the idea of thinking of Ruby as a language I
can just drop in and do whatever I want without thinking of Okay, it's
not gonna work it's too slow, and I really like that they are focusing
on that right now. Mm hmm. I also see changes on the comparser
and parsers, which I also like the idea of being able to for example,
ah have I don't remember the exact name, but like a partial partser
where if you find an error in the in the cold, the partser can
continue. So you have a you can see Okay, you have an error
here, please change it. But you also see that the rest of the
file is uh still working. Uh. There has been a lot of changes
in terms of syntax, which okay, Ruby always had those kind of changes.
There are a lot of syntax changes that I don't really like, but
I like that Ruby allows me to choose uh huh, which always has been
the Ruby, the Ruby mind right. Uh. They are moving towards removing
the use of native libraries, which is also great because you sometimes you get
stuck in Okay, I'm studying I don't know nogiy in rails and you're running
it on a doctor on a doctor container, and then you have to stop
on your feet and start packaging or debout what happened, this didn't work.
I like the idea of basically simplifying installation of gems, right or yeah,
or even the main the rubic core library. Yep. So let's let's stop
for a minute, because I mean, you gave me a list of like
four or five things, but let's talk about them, right. So so
performance, right, what are you seeing in the way of performance? Because
I don't know if I like directly measure anything that I'm doing. I can
tell you it's getting faster because I'll run a rails app or run a script
or something, and the numbers I'm getting back as far as hey, this
took you so many milliseconds or whatever, that number is definitely getting lower.
I couldn't tell you what they did, but it's getting faster. Yeah,
well, I couldn't tell you either. I know why it's a big thing.
I don't really understand it yet because I haven't gotten deeper into it.
But I know since uh before three was out, they they have been moving
towards making movie three times faster. And I think that they achieved a lot
of that with some with some regressions and some advances. But yeah, what
I see in terms of performance is what I what I said before, and
what you said. I don't like measuring things as well. I like it.
I like to think of going into a language and not having to think
about performance. Of course, performance in an application comes from a bunch of
different things. I like to exclude the language from those things, right,
Yeah, absolutely mostly, And I agree with you mostly because the the language
stuff is not something that's in my control. Whereas database optimizations or writing the
code in a performant way, or you know, taking advantage of some concurrency
feature in Ruby or something like that, those are all things I can do,
right, Yes, And so yeah, the language itself maybe not so
much as far as wijit goes. Yeah, I need to reach out to
to Kashi Kokaboom and see if he can come on and talk to us about
that, because it's really really cool stuff. Now. I think in Ruby
three to two you had to set a flag to use wyjit. But I
think if I remember right in three dot three, they were planning to turn
it on. I never actually looked to see if they did it. Yeah,
they were planning to turn on. By the fault. I think you
would be able to disable it, but I'm not sure about that. Yeah.
But the thing is is that we've seen in other languages too, like
there, you know, we've seen some JIT compilers come into JavaScript and a
lot of that stuff. Yeah, it's interesting because you'll you'll watch it and
it'll turn through some stuff and then it'll decide, Okay, I've run this
enough times. That's usually how JITs work, and so I'm going to compile
it to something that you know, I can run on the mischine faster.
Yeah, much faster. I can run it on the VM in native code
and boom, you just see it immediately take off. And so I think
that's really cool, And yeah, it's not. I have some friends that
are big like go fanatics or you know, what have you, and they,
you know, they compile, compile it and they're like, well,
ours is fast from the get go. Well sure, but you know,
there are a lot of features that come out of Ruby that are very very
nice that yeah, I'm willing straight off for the the fast eventually. Yeah,
and then you have to actually compile it every time you run to run
or change something. So yeah, there's that then, well yep, absolutely
so. Yeah, the jit's definitely a thing. I think they've cleaned up
some of the memory managements have to made that a little bit faster. Are
there any other features that you've looked at that that make it faster that you're
excited about or is it primarily no? To be honest, I've watched a
couple of tender log talks. But I don't recall any other features. Okay,
yeah, so let's let's move on to the partiers. Then you mentioned
the parser. Are you talking about the prison parser? Are you talking about
something else? Uh? Yeah, prison in general? Okay, again something
I haven't looked to live into. Uh. I watched a couple of talks
and I got really excited about ah about basically into how you said, Yeah,
integrating a parsa with with my editor and things of that sort. Yeah,
we had Kevin Newton's scheduled to do the summit and then he realized the
added check with his employers, so we are trying to get through some red
tape, so to speak, or line up somebody else who's worked with him
on that. But I mean, it's it's so interesting just what a different
some of the stuff can make and what the capabilities are when you have a
parser that does more than just kind of the fundamental stuff. Yeah, yeah,
totally. Yeah. So what else did you mention? I can't remember
all of it? Syntax changes? Oh yeah, I normally don't automatically take
new changes to the syntax. The latest one I've taken and really liked is
I don't remember the exact name, but one line method definitions okay, thost
into clean up a bit the h the code uh huh, and yeah,
I really like in this uh for this point, I really like that really
allows you to write the code you want. Mm hm. So yeah,
syntaxis are always welcome. Yeah, I don't usually like new changes. I
think the the one I mentioned and a harsh syntax uh are the the two
changes I actually really enjoyed. Enjoy it, right, I usually I don't
used to. Sorry, I don't usually take up new changes. But again,
I really like the possibility to yeah, to write yeah, the key
word you want. I use those everywhere. Yeah. When I resisted for
a long time, I was like, yuck, I don't like this.
I don't like this. I don't like this. Hey, it's telling me
what it is. I like this. I like this. Yes, yeah,
kind of practically exclusively now yeah, yeah, but yeah. The thing
that I like about in particular, and I'm just going to chime in on
the things you're bringing up about Ruby in particular, and I think the thing
that draws a lot of people in is sort of the intuitive nature of how
you look at things and go oh, I get what that does, or
oh, I understand why what that feature is, or oh I get why
this library is set up that way. There are so many things in Ruby
that just really lend themselves cleanly that way, and Rails has very nicely extended
that. And then you see it in some of the other frameworks too,
if you're using Hanami or things like that. You know, yeah, it's
it's a little bit of a mindset shift from Rails to Hanami. But again,
it has that that intuitive nature to Okay, I understand why there's structure
during things this way, and this is very expressive way of doing it.
And so yeah, I think Ruby drives us to to do things like that,
to do things in a with a DSL or with very terse code or
very expressive code. So, uh yeah, Raise is the primary example of
that because they do it almost to a fault, but they put an active
support, they created active support, and that adds a whole nother layer of
that kind of thing. Yes, yeah, exactly, So yeah, that
that's I think, uh Race is a primary example. But Ruby itself,
it's a it's a language that leads you to to work in that kind of
way. Yeah, absolutely, Yeah, what what what? What was?
Weren't there like for five things or did I? Yeah? No, The
last one I mentioned was removing the use of native libraries. Oh yeah,
and I took that from the change block because I I was just reading the
change changelog for the last Ruby version and they are removing the dependency on on
read line for example. Oh really? Oh yeah, yeah, they are
doing it natively on the in the language now with the library. So yeah,
it's something. As I said before, many times I started working either
on a new machine or doc doctor container or viitual machine or whatever, and
suddenly you have to stop because you have to compile a native library to install
a package, to write whatever. And I think this last point, with
the first one, I think they are actually being able to do that now
because of being able to work on a language, a more performal language right
now. So they are relying less and less on external libraries. That's that's
awesome for me. Yeah, that makes a lot of sense, And it's
interesting because I don't know, I don't know that I would expect them to
not take advantage of those, especially if you're starting a new language. But
yeah, once you get to a certain point, then it's all right.
We have to be able to do a build target that works on Linux and
Mac and Windows and anything else. And yeah, I mean if you have
fewer dependencies on some of the native things, then you don't have to worry
about what version it is, or whether the machine has it, or whether
the machine has a you know, sometimes they have different compile targets and if
you have the one then it works and the other it doesn't. Then so
just just getting rid of that, let's see on some external factor makes a
lot of sense. Yeah, yeah, absolutely so I stopped you. Did
you have other things on your list? Uh? Actually for the first channel
of information I have, it's just that you still be in the right place
in just a second. Yeah. Other things I'm seeing in the in the
really community outside the de actual language regarding the future of Ruby, I'm seeing
less and less applications, applications written in Rovie. I'm not sure if that's
correct, if my if I'm not seeing that correctly, but I'm seeing a
decay on greenfield projects. I'm not worried about it. I think there's plenty
of bowing work for everyone who wants. But that's something I actually noticed in
the last few years. Yeah, if you notice that, I've seen kind
of conflicting reports to that effect. So I've seen people say, hey,
there's there are fewer Ruby projects out there, and so you know, Ruby
is dying, and like you said, I don't know that I'm really that
worried about it, and I don't The other thing is is that a lot
of the reports that I see that they're citing, they're not citing like actual
numbers, right, They're not saying last year we tracked two thousand, and
this year we tracked nineteen hundred. Usually what I'm seeing is is, you
know, the overall landscape of new businesses that are starting, you know,
a larger percentage of them are using things like Python or JavaScript as opposed to
Ruby, and so you know, if the pie is getting bigger, right,
So if we have you know, three million new businesses start, I'm
sure that's an unrealistically high number. Let's say three million new businesses are starting
this year and there were two point five million last year, and so Ruby's
percentage is shrunk a little bit. The overall number of applications may actually be
growing. So I don't know, I haven't seen good numbers that make me
worry, and I haven't seen good numbers that make me hyper optimistic either,
you know, like it was back when the heyday of rails or Ruby,
when every startup in San Francisco was using rails to start, And so I
don't know, it seems like some of the other measures of community, like
you know, how well do video series like Drifting Ruby or Go Rails sell
or how much you know business or traffic do some of the other Ruby or
rails related things get how well do the conferences sell out? And that those
issues don't seem to really be an issue. There are plenty of people that
interested. So I don't know. I don't know what the benchmark is or
what the right thing is. But yeah, I'm not seeing it declined in
such a way that makes me think, Okay, maybe it's time to pull
the plug on this. Yeah, in my opinion, and this is absolutely
my opinion. I don't think there will be a time to pull the plug
on Ruby, I think, or for any language. I think languages will
be so we still have applications written in coobol, so right that should say
though I think, yeah, yeah, it's harder to find professionals that will
write cobal or that even can write coboal. Yeah, but you know that's
a different thing and it has more to do, I guess with the life
cycle of software. But I guess the other thing speaking to where it may
go in the future. And I'm supposed to be interviewing you and I'm going
to be putting out my own videos about what I think. But for example,
David dhh, I was calling David. I don't know why, but
anyway, he he came out and said that Rails eight is going to be
a platform where they take advantage of all the progressive web app web app and
kind of native web features and so and then the other thing is is he's
hyper focused on making Rails one developer friendly platform. Right. Sure, it'll
continue to support enterprises like get hub it Spotify, but you know, at
its core it will also be something that you or I could spin up a
startup in you know, however long and you know, be all over and
so you know that that also speaks to me in a certain way as far
as, hey, you know, the capabilities of the not necessarily Ruby itself
informing this, but of Rails of Hanami, of you know, maybe Dragon
Ruby or ruby wa WASM. I talked to Utah Psyto this morning about ruby
wa wasmuh, you know, and so that that expands into a lot more
platforms and just all of these different places where you may see Ruby become,
you know, a preferred way of doing some of this stuff. Yeah.
Yeah, I could see this going, you know, getting picked up because
Python kind of had a little bit of a dip and then it kind of
hit its sweet spot with AI and data science, and it's got kind of
a renaissance. And I'm wondering if Ruby or rails or something else out there
in the ecosystem could do the same thing. Yeah, I think so.
My Actually, my next point was about rails. I really like the where
races is kidding, h I've had my ups and downs with liking rails.
I liked it very much at the beginning, then it declined at some point.
I think rails may made things more difficult in the era. I can
argue with that. Yeah, yeah, web packer, you had turbo turbo
links and things that weren't always nice. But I learned to trust in the
vision of the change. Because yeah, now I think writing a rail's application
from scratch, it's such easy as when I first came into Rails. Yeah,
I agree. And the things that you brought up with turbo or turbo
links in particular, and then those were both things. Yeah, they definitely
made it harder. What's interesting is is that turbolinks is now turbo yes,
in a Rails app. It's kind of I mean, you don't really have
to think about it, and it doesn't cause the weird issues that you had
to handle in Rails three and four. And then with web Packer. I
mean, I've heard David explain that it was kind of a necessary step forward
in the way that assets are managed because that's where the Internet was going,
and it gave better capabilities than sprockets. But at this point now you have
import maps, and import maps are awesome. Yeah. So then you look
at some of this other stuff like cashing. You know, I had a
devil of a time with cashing and managing my reddits instances and making sure that
everything played nice. And solid cash makes that pretty darn easy, you know.
And you're seeing them pulling solid q and some of the other options and
just making it. I mean, there's so many good things coming out with
Rails these days that I am pretty pullish on it. Yeah. Yeah,
so ah, As I said, there's a curve in rails development where you
have those stepping stones and then everything gets simple again. I really like where
I'm going with hot Wire. I really like where they're going with Estrada,
which I haven't played with yet, but I really like it. No much
else to say there, but yes, great work. Yeah. On the
other hand, there's a growing community around Hanami and dry Erb and that part
of the ecosystem, which also it's also great. I think I don't like
the idea of Bob being rails. I I like Rails, but I like
the idea of being it's something and having many many options. I played just
a little bit with Hanami and it's great. I've done a lot of work
with Roller for example, for for a web framework. Yeah, and it's
great. Yeah, It's completely different to anything else, and it's awesome.
I'm talking to Jeremy haven't in a few weeks, so yeah, yeah,
So I like that these communities are are emerging, right. I think for
a long time rails was the the entry point and the and the all for
Ruby and and I like the idea of this changing. Yeah, yeah,
absolutely, And diversity is great in that sense. I Well, I think
the other piece of this that we look at is, you know, Hanami,
Like I said, they do things a little bit differently, but in
some ways, I mean it makes it. You know, the way they've
kind of split up responsibilities on say data access, for example, it makes
it pretty easy to reason about what's going on, and it's not that active
record most of the time. Is that much harder. Sometimes it really is.
But you look at those pieces and you go, huh, okay,
and maybe some of that will inform rails or maybe something that rails innovates.
It's just kind of makes something brain dead simple. You know, Hanami will
pick up and there's always room for more people to come in here and say,
hey, what if we did it this way and then see some benefit
out of it. Another example of this is like Bridgetown coming out of Jekyl,
Right, and so what's his name, Kevin White? Is that his
name Jared White? I had a coworker named Kevin White way back in the
day. Anyway, So he's done a whole bunch of up there, right.
He modernized the static assets stuff and you know, kept a lot of
the things that were great in jackal and I see a lot of things that
will be kind of built off of each other that way. Yeah, yeah,
totally, particularly myself right now and working on on on creating a small
reframework for just blame grugy applications. And it's tiny, right, it's just
for spinning up a small application for a kata or things like that, right,
And there are a lot of libraries that really really help on that regard.
I'm using a side work for a example, and it simplifies reloading and
that kind of thing that which is something that it wasn't pain a few years
ago. Yeah. So yeah, it's very interesting and I think that the
language and the and the community is what makes it simple because there's a lot
of work on on a lot of a lot of different aspects which allows the
things to be almost yeah, pray that you don't need to think about a
lot of things, right, Yeah, there are a lot of things you
mentioned the language, but then the community, right, and that's that's the
other thing that I'm I'm super excited and kind of see going forward. So
in October I went to rails World a buzz sproute paid for my hotel and
stuff, and uh, you know, that was awesome. But yeah,
you know, just being there and feeling the energy right and seeing people get
excited about what's coming next in Rails, And I think some of that same
energy is there for Ruby. I just don't know where that gets placed because
I don't know that I necessarily I do. I dare say this, sorry
people at Ruby Central, but I don't feel like really conscious necessarily the place
where that energy shows up anymore. And you know, it's it's so it's
it's interesting just to see, you know, as as we kind of build
forward, you know what, you know, what what can be created in
these spaces and yeah, what people are excited about being able to do with
it. Yeah. What I think in that regard is that the energy there
is disseminated into different things. I think the biggest community there is dry RB
Slash and EMI, which is yeah, the same community. But then there
are a lot of projects that bring excitement to Ruby. And there are individual
projects right now that the once I can mention side work, as I said,
Flex Dragon Ruby, those kinds of projects which yeah, bring excitement and
simplicity and motivation to do stuff right wrong the other one mm hmm. I'm
excited about. Yeah, yep, absolutely, yeah, But I just I
love getting together with other rubyists and there's just there's so much energy there.
Yeah, it's been around for a while. You're locky to you In the
US, we are well, we are less here, but there are still
conferences here, like there's Blue Ridge Ruby and you know Ruby Comff and rails
Coff are usually here in the US. Rails World next year is going to
be in Toronto, which isn't in the US, but it's close. The
The thing that's interesting is is that And I think a lot of this could
be shocked up to COVID. But I don't see as many of the users
groups anymore, right, I don't see people getting together in their local communities,
and I wish that there was something that we could do to bring that
back. I have some ideas of some things I want to do, but
it's like fifth on my ten million things long list, and so I never
quite get to it. That makes sense, But yeah, i'd love to
start seeing that come back too, in terms of what I see in the
Rubig community and in the Ruby language in general. Those were my points what
I'd like to see, which was my other big point is a focus on
machine learning and AI. Right, I really like to for to compete hand
to hand with Python and more more sorry EGUI stuff. I really like ruing
to be not to be thought as a web language, but a more general
language. Right. I've been trying to get into breed development just for myself,
and it's more complex at the moment than right, Right, So yeah,
to get into Yeah, I'm talking to Andy Mala next week and we're
gonna be talking about glimmers. I'm sure it is one of the UI things,
but yeah, it'd definitely be cool to see it expand to more areas.
You know, we we have Ruby Motion, but that's mostly focused on
games, and it'd be nice to see it, you know, whether it's
Ruby Motion or some other option you know, come up. Yeah, in
the mobile space, so that you can build mobile business apps. You know,
the same thing with you know, something something kind of like what you
get with like React native, right where you could then go to like TV
apps and you know, all those areas and then yeah, you know the
UIs on desktop and you know, yeah, I think Ruby has a wrong
case for CLIs, but it doesn't always get picked and so yeah, it'd
be great to see it pick up some other areas and become kind of the
way to go for some of those. Yeah, totally. I really like
that because I love Ruby and I I'd like to be able to just pick
it for whatever project I need. So yep, yeah, absolutely cool.
So yeah, it sounds like we got through your list. Yep. If
people want to check out what you're working on, now, how do they
find you? And becausets dot com. I am working on just starting a
spring cast series right now. There are just six episodes and they are all
about Ruby. The idea used to expand bey on movie. But right uh
that's what what's there right now? Very cool? All right, well thanks
for coming. We'll go ahead and wrap it up here until next time,
Folks max out to