WEBVTT

1
00:00:00.160 --> 00:00:04.960
Hey, Welcome back to another Ruby
Dev Summit interview. I'm here with Andy

2
00:00:05.360 --> 00:00:08.960
Mala. I'm always worried that I'm
saying your name wrong. I'll just admit

3
00:00:09.240 --> 00:00:17.480
Mali Male Andrew or Andy is the
He won the Fukuoka Ruby Award in twenty

4
00:00:17.519 --> 00:00:23.960
twenty two for the Glimmer desktop UI. There was an official name, but

5
00:00:24.000 --> 00:00:28.480
I can't keep it straight in my
head, so I apologize for O libui.

6
00:00:29.359 --> 00:00:33.439
Awesome. Yep. And then you
have a master's degree from in software

7
00:00:33.439 --> 00:00:38.240
engineering from De Paul University. And
yeah, anything else that I missed that's

8
00:00:38.280 --> 00:00:45.240
important. I've spoken at Ruby KMF
three times so far, twenty eight,

9
00:00:45.399 --> 00:00:49.280
twenty twenty two, and twenty twenty
three. I've spoken at rails conv twice,

10
00:00:49.679 --> 00:00:55.960
twenty twelve and twenty fourteen. Awesome. Well, I'm gonna dive us

11
00:00:56.039 --> 00:01:00.520
right in, and anything that you've
spoken about at those conferences it's into this

12
00:01:00.600 --> 00:01:03.920
question. I'm happy to hear it
or any other ideas you have. But

13
00:01:03.239 --> 00:01:10.159
I've been asking everybody what is the
future of Ruby? Yeah? Most certainly

14
00:01:10.280 --> 00:01:17.200
my presentations at Ruby KOMF were about
my open source project, Glimmer, and

15
00:01:17.680 --> 00:01:21.560
in twenty twenty three I gave a
workshop on how to build desktop applications with

16
00:01:21.640 --> 00:01:27.760
Glimmer DSL FORLIBUI. So I certainly
see Ruby moving more into the Dusktop in

17
00:01:27.799 --> 00:01:33.799
the future and not just being a
web only language. So we can,

18
00:01:33.840 --> 00:01:36.719
you know, build a lot of
tooling and Ruby. Like I've built my

19
00:01:36.760 --> 00:01:40.680
own ID. I have an ID
called Gladiator that I've built completely with Glimmer.

20
00:01:41.120 --> 00:01:46.120
Oh wow. I've also I know
a Japanese developer that built his own

21
00:01:46.159 --> 00:01:49.640
internet radio app and I use it
every day to listen to jazz music.

22
00:01:49.680 --> 00:01:53.200
I really like it, and it
was also built in Glimmer. It's kind

23
00:01:53.239 --> 00:01:57.040
of like a Ruby version of iTunes
in a way. And yeah, so

24
00:01:57.120 --> 00:02:01.319
a lot of so we can build
tooling and Ruby. We could build like

25
00:02:02.680 --> 00:02:07.280
any you know, like media tools
kind of like for playing music, play

26
00:02:07.319 --> 00:02:12.719
simple play sorry, build simple games
kind of like Tetris or simple board games.

27
00:02:13.719 --> 00:02:15.039
So yeah, there's a lot of
future for Ruby in the on the

28
00:02:15.120 --> 00:02:20.840
Dusktop. I would say, I
think it took a while for Ruby to

29
00:02:20.879 --> 00:02:24.800
get back to the dusktop because Shoes
stopped getting maintained about seven years ago,

30
00:02:24.919 --> 00:02:30.840
maybe eight years ago. So fortunately
I had time to maintain glimmer right after

31
00:02:30.879 --> 00:02:37.039
that. And I've been maintaining it
very actively for the last maybe six years

32
00:02:37.120 --> 00:02:40.479
or five years, a little like
about a year after Shoes dropped out.

33
00:02:40.919 --> 00:02:46.400
So yes, so I do see
a future for Ruby on the dustop.

34
00:02:46.479 --> 00:02:51.120
Yeah, I remember Shoes did.
Did the support for it drop out?

35
00:02:51.159 --> 00:02:55.039
When? Why the lucky stuff kind
of disappeared? That was the first dropout,

36
00:02:55.080 --> 00:02:59.199
which happened in the mid two thousands, and that's what prompted me to

37
00:02:59.240 --> 00:03:02.800
create Glimmer back in two thousand and
seven, the very original version. So

38
00:03:02.879 --> 00:03:07.840
originally it used to run in Ja
Ruby and it was using the SWT toolkit.

39
00:03:07.639 --> 00:03:12.280
Eventually I decided that the idea is
good enough, like if using a

40
00:03:12.360 --> 00:03:15.080
Ruby DSL that I can expand it
to all other toolkits. So now it

41
00:03:15.159 --> 00:03:23.599
supports tk GTK, Java FX,
swing FX, Ruby wx widgets. So

42
00:03:23.680 --> 00:03:28.919
yeah, it supports every single toolkit
that is available in Ruby today, about

43
00:03:28.960 --> 00:03:32.520
seven of them. So I guess
in practical terms, does that mean that

44
00:03:32.560 --> 00:03:38.879
I can write say, macapps and
Windows apps and maybe Linux apps. Yes.

45
00:03:39.039 --> 00:03:46.520
All the Glimmer dsls for desktop development
are platform cross platform library okay,

46
00:03:46.960 --> 00:03:52.840
supporting yes, Mac, Windows and
Linux. The SWT Glimmer library which runs

47
00:03:52.840 --> 00:03:57.000
in Ja. Ruby can also let
you package your app as a native executable

48
00:03:57.039 --> 00:04:00.199
on those platforms. So I can
create a DMG aisle on Mac, or

49
00:04:00.240 --> 00:04:04.199
an e x E or m s
I on Windows, or a Debian file

50
00:04:04.439 --> 00:04:09.120
or RPM on Linux. So that
way, when I package the app and

51
00:04:09.159 --> 00:04:12.120
I give it to somebody to install, they don't have to install Ruby,

52
00:04:12.120 --> 00:04:14.759
they don't have to install j Ruby, they don't have to install Java.

53
00:04:15.159 --> 00:04:24.639
Everything is included. That's awesome.
That is so awesome. So so yeah,

54
00:04:24.680 --> 00:04:30.279
So, I mean, I definitely
see Ruby going more into the desktop.

55
00:04:30.759 --> 00:04:34.160
And in my opinion, I think
it's a shame that nowadays a lot

56
00:04:34.160 --> 00:04:38.720
of Rubis or people that claim to
be Rubis, are using id s and

57
00:04:38.800 --> 00:04:42.120
code editors not built in Ruby.
I mean, some of them work at

58
00:04:42.240 --> 00:04:46.079
very big, prestigious companies, uh, and they claim to be you know,

59
00:04:46.160 --> 00:04:49.120
Ruby experts, and yet they don't
build their own ID or or editor

60
00:04:49.120 --> 00:04:53.560
and Ruby. They use an inferior
like they use vs code, which is

61
00:04:53.560 --> 00:04:58.160
built in JavaScript, which is an
inferior language, a very inferior language in

62
00:04:58.199 --> 00:05:01.920
fact, And uh, it's a
shame because they could have spent time contributing

63
00:05:01.920 --> 00:05:08.279
to the Ruby ecosystem instead. And
like the productivity of using a Ruby DSL

64
00:05:08.519 --> 00:05:14.319
is way higher in my experience than
using something like HTML CSS with JavaScript.

65
00:05:14.879 --> 00:05:19.040
So I do, I mean,
I do call like bullshit a bit on

66
00:05:19.120 --> 00:05:25.560
some of the people that without using
Ruby tools or tools built in Ruby,

67
00:05:25.600 --> 00:05:29.879
like desktop tools built. But I
think that that is at the same time,

68
00:05:29.920 --> 00:05:33.800
that's a great opportunity to go into
that in the future. I mean,

69
00:05:33.839 --> 00:05:38.360
I did my best to put my
money where my mouth is and build

70
00:05:38.399 --> 00:05:44.000
my own board editor with Glimmer and
Ruby. So I think that's why I

71
00:05:44.040 --> 00:05:46.600
see a great future in it.
I'm just a very I mean, I

72
00:05:46.600 --> 00:05:51.959
would say I'm not an ide building
experts. I just built my own as

73
00:05:51.959 --> 00:05:56.279
a first experience and it kind of
worked for me. But I would I

74
00:05:56.279 --> 00:05:59.600
would hope that, like sorry,
like I would look forward to what experts

75
00:05:59.639 --> 00:06:03.199
could do then with Ruby start development
to help build, to help build better

76
00:06:03.319 --> 00:06:08.519
Ruby tooling. Yeah, I think. I think. As I've talked to

77
00:06:08.519 --> 00:06:14.680
a whole bunch of different people within
the Ruby community for this summit, we've

78
00:06:14.720 --> 00:06:18.600
seen some expansion into other areas.
One that comes to mind is Dragon Ruby

79
00:06:18.680 --> 00:06:23.959
right where it's mostly focused on game
development, but you can deploy your games

80
00:06:24.000 --> 00:06:28.720
to pretty much any platform, Yes, are there right. That's another part

81
00:06:28.759 --> 00:06:32.600
of my prediction for Ruby. Uh. In the future, it's going more

82
00:06:32.600 --> 00:06:39.199
into gaming and definitely and Ruby seems
like a great option right now because from

83
00:06:39.279 --> 00:06:42.560
what I've seen in demos like at
Ruby coff twenty twenty two, it has

84
00:06:42.600 --> 00:06:46.639
great performance. Yeah, but there
are other options as well like Ruby two

85
00:06:46.720 --> 00:06:51.480
D and go through UH. It
also can build very simple games in Glimmer,

86
00:06:53.120 --> 00:06:56.879
So I definitely see Ruby getting more
into gaming in the future as well.

87
00:06:57.920 --> 00:07:00.160
Right on the flip side of that, you know, where we've talked

88
00:07:00.199 --> 00:07:03.839
a little bit about Dragon, Ruby
was mostly mobile focused initially and then kind

89
00:07:03.879 --> 00:07:09.160
of spread to these other platforms for
gaming. Do you see something like Glimmer

90
00:07:09.600 --> 00:07:15.160
moving more toward mobile where you know, maybe I'm building my business app for

91
00:07:15.240 --> 00:07:17.800
the desktop and then later I have
the option to build it for the iPhone

92
00:07:17.920 --> 00:07:21.480
or Android or something like that.
It's not a game. Yeah, That's

93
00:07:21.480 --> 00:07:27.040
certainly a third area that I think
Ruby will have a future in as well

94
00:07:27.279 --> 00:07:31.920
as mobile development. I definitely think
Ruby Motion Story, which was built by

95
00:07:31.959 --> 00:07:36.120
the creator of Dragon, Ruby,
is a good option to get people started

96
00:07:36.160 --> 00:07:42.040
and building cross platform apps on mobile, so meaning apps that run on iOS

97
00:07:42.040 --> 00:07:47.199
and Android. I've experimented with it
a little bit, and I do want

98
00:07:47.240 --> 00:07:51.959
to eventually have a glimmer DSL to
simplify development with it. So I did

99
00:07:51.959 --> 00:07:57.639
look into the idea a little bit, but I got pulled into other projects,

100
00:07:59.720 --> 00:08:03.360
but I want to get back into
it eventually. I think even without

101
00:08:03.360 --> 00:08:07.519
Glimmer like, ruby Motion does provide
an interesting option for cross platform mobile development

102
00:08:07.639 --> 00:08:11.079
in Ruby. Yeah, I need
to talk to a mirror about that,

103
00:08:11.199 --> 00:08:16.079
because he acquired ruby Motion and then
put all the focus into Dragon Ruby and

104
00:08:16.120 --> 00:08:20.319
I'm wondering. Yeah, now that
you mention it, if yeah, ruby

105
00:08:20.360 --> 00:08:22.920
motion is still an option for the
Hey, I'm not building a video game

106
00:08:22.959 --> 00:08:28.319
app. I'm building a whatever mobile
app. Yeah, last that I checked,

107
00:08:28.759 --> 00:08:33.120
Ruby Motion is still functional and it
works, and there are people that

108
00:08:33.159 --> 00:08:37.320
are quite pleased with it. However, one thing that it's lagging behind in

109
00:08:37.639 --> 00:08:43.720
right now is support for the latest
Ruby versions. So Dragon Ruby, for

110
00:08:43.759 --> 00:08:48.000
example, by contracts like you said, like they're very active into supporting it.

111
00:08:48.039 --> 00:08:50.080
So it actually already supports Ruby three
point two, if I'm not mistaken,

112
00:08:50.759 --> 00:08:56.679
whereas I believe Ruby Motion might be
still stuck at Ruby two point zero

113
00:08:56.759 --> 00:09:00.960
or something like that. So that
is definitely something that I I'd like to

114
00:09:01.000 --> 00:09:05.559
see them improve upon. But at
the same time that like that, that

115
00:09:05.679 --> 00:09:09.120
also makes it an opportunity for Ruby
expanding into mobile development in the future.

116
00:09:11.360 --> 00:09:16.159
Yep. Absolutely. Otherwise, the
fourth area that I was thinking about is

117
00:09:16.200 --> 00:09:20.000
basically web development in the front end. So Ruby in the front end was

118
00:09:20.000 --> 00:09:24.360
something that Matt's mentioned in his keynote
speech at Ruby Comp twenty twenty two,

119
00:09:24.919 --> 00:09:31.000
and he said that given that we
have options like Ruby wasn't we should be

120
00:09:31.039 --> 00:09:35.120
able to now run a real Ruby
in the browser and do real full like

121
00:09:35.279 --> 00:09:39.399
full front end developments in Ruby.
So that means we can have isomorphic,

122
00:09:41.360 --> 00:09:46.080
isomorphic applications built with Ruby on the
back end with rails and Ruby on the

123
00:09:46.120 --> 00:09:52.600
front end with rubym or another option
like opal ruby. So opal ruby usually

124
00:09:52.679 --> 00:09:58.200
produces like Ruby wasim will compile the
entirety of Ruby, whereas opah Ruby is

125
00:09:58.240 --> 00:10:03.320
more like a transpiler to job us
will produce much smaller downloadables. So in

126
00:10:03.360 --> 00:10:07.960
my opinion, Opal ruby is the
more convenient option for using Ruby in the

127
00:10:09.000 --> 00:10:15.000
front end if a company does not
want to have long like big downloadables like

128
00:10:15.080 --> 00:10:18.759
it's only in kilobytes in open Ruby, whereas in was'm it's in megabytes,

129
00:10:18.279 --> 00:10:22.360
so I think. But both of
the good news is both of them are

130
00:10:22.639 --> 00:10:26.720
options on the table nowadays, so
I definitely see what'll be expanding more into

131
00:10:26.519 --> 00:10:33.039
front end development and also becoming like
enabling isomorphic application fragments, which means I

132
00:10:33.080 --> 00:10:37.360
can reuse the same Ruby logic that's
in the back end for some business rules

133
00:10:37.399 --> 00:10:41.360
on the front end as well,
so that way I don't have to re

134
00:10:41.440 --> 00:10:46.759
implement the order tax calculation algorithm on
the front end again in JavaScript, if

135
00:10:46.759 --> 00:10:52.600
I want to calculate it in the
clients, I can just reuse the exact

136
00:10:52.799 --> 00:10:56.440
same code from the back end in
the front end. I've actually experimented without

137
00:10:56.440 --> 00:11:03.799
myself and got that working. In
fact, recently I spent the holidays like

138
00:11:03.879 --> 00:11:09.440
creating a new Glimmer library to support
development on the web with open Ruby using

139
00:11:09.519 --> 00:11:15.679
Glimmer DSL, and I was able
to have it. Basically. The nice

140
00:11:15.679 --> 00:11:20.200
thing about it is you can build
HTML using a Ruby DSL, which means

141
00:11:20.279 --> 00:11:22.360
I don't need ERB, I don't
need GSX, I don't need to mix

142
00:11:22.440 --> 00:11:28.159
multiple languages anymore. We can step
a level higher and abstraction and just have

143
00:11:28.279 --> 00:11:33.600
one language that handles both structure and
logic, so that way I can add

144
00:11:33.600 --> 00:11:39.360
if statements or each iterator into the
exact same code that is building the HTML

145
00:11:39.480 --> 00:11:45.799
GUI, so then the code becomes
a lot lighter, and also it enables

146
00:11:45.840 --> 00:11:50.840
me to then use like very advanced
object oriented techniques for Ruby to do real

147
00:11:50.960 --> 00:11:56.799
MBC and MVP development. And the
new Glimmer DSL for Web project is basically

148
00:11:56.799 --> 00:12:01.320
the newest one. It started in
twenty twenty three and it got finished for

149
00:12:01.440 --> 00:12:07.679
a first beta version just a few
weeks ago, and it basically enables also

150
00:12:07.759 --> 00:12:13.720
the usage of all the desktop data
binding features of Glimmer on the web,

151
00:12:15.320 --> 00:12:18.519
and I've played around with using it
a bit for building samples, and I

152
00:12:18.639 --> 00:12:24.000
was shocked by how productive it is
compared to something that React. I felt

153
00:12:24.000 --> 00:12:28.399
like I was at least double as
productive as I am with React, which

154
00:12:30.200 --> 00:12:35.679
I use in my current company.
So we've been exploring switching React with Glimmer

155
00:12:35.759 --> 00:12:39.120
DSL for Web recently and we're probably
going to do a proof of concept of

156
00:12:39.159 --> 00:12:45.120
that and implement it soon. So
I definitely see a future for Ruby on

157
00:12:45.240 --> 00:12:52.559
the web development front end as well. Right and just if people are more

158
00:12:52.559 --> 00:12:58.159
interested in either Ruby WISM or OPAL, there are interviews done with Ellie Esquito

159
00:12:58.360 --> 00:13:07.840
who does OPAL and with Yah with
with Elias a lot about I hit him

160
00:13:07.879 --> 00:13:13.600
up if you will ask him questions
about YEP. I also talked to you

161
00:13:13.679 --> 00:13:16.919
to Psycho, who's the Ruby cor
committer for Ruby WASM. So yeah,

162
00:13:16.919 --> 00:13:20.960
if you want to if you want
to know more, there's more. Yeah,

163
00:13:22.000 --> 00:13:26.799
And and I love the ideas of
getting Ruby on all of these different

164
00:13:26.799 --> 00:13:33.519
platforms. It I mean that I
don't know it. I remember back in

165
00:13:33.559 --> 00:13:39.919
the day when basically your good options
for a lot of this development was you

166
00:13:39.960 --> 00:13:46.799
would do Cotland development or Java development
for Android, and then in anything that

167
00:13:46.879 --> 00:13:52.559
ran the Android system in the back
end, so things like firestick TVs and

168
00:13:52.600 --> 00:13:56.279
stuff like that. Or you'd use
Swift or Objective C to do your Apple

169
00:13:56.320 --> 00:14:01.440
stuff and that's so that your mobile
phones and your Apple TV and then you

170
00:14:01.480 --> 00:14:03.559
know, on and on and on, and then JavaScript kind of broke into

171
00:14:03.600 --> 00:14:07.639
those and it was nice because then
it was like, Okay, well this

172
00:14:07.679 --> 00:14:11.440
is a language, it's a little
bit more familiar, and I can mostly

173
00:14:11.480 --> 00:14:15.799
do the same thing and have it
work in multiple places. But the thing

174
00:14:15.879 --> 00:14:18.559
is is like, I don't know. I've written a couple of react native

175
00:14:18.559 --> 00:14:22.360
apps. I've written a couple of
other apps with different JavaScript options and they're

176
00:14:22.480 --> 00:14:26.480
just not my favorite tools to use. And so yeah, as I imagine,

177
00:14:26.519 --> 00:14:30.879
Okay, well, hey I can
do this in Ruby, and I

178
00:14:30.919 --> 00:14:35.039
can be hyper productive and I can
get what I want and it's going to

179
00:14:35.039 --> 00:14:37.759
be performed enough for people to use. That gets me really excited that that's

180
00:14:37.759 --> 00:14:41.759
what fires me up. And so
you know the things that you're talking about,

181
00:14:41.840 --> 00:14:43.639
it's like, yeah, well,
if those are all the case,

182
00:14:43.679 --> 00:14:48.799
then the sky's kind of the limit. Yeah, definitely. The only area

183
00:14:48.840 --> 00:14:56.600
that I left out other than desktop, mobile, web and gaming is AI.

184
00:14:56.919 --> 00:15:01.360
So I actually I'm a co organizer
of the trall or it's called the

185
00:15:01.360 --> 00:15:09.600
Montreal RB Ruby meet up in Montreal, which is a meetup for like basically

186
00:15:11.000 --> 00:15:16.879
giving software engineering talks using Ruby or
Ruby on rails, but people will usually

187
00:15:16.879 --> 00:15:20.679
cover different areas of development like desktop
development, web development. And the last

188
00:15:20.720 --> 00:15:26.080
two months we had two AI talks
that were very interesting. Both of them

189
00:15:26.320 --> 00:15:31.919
involved building large language models, and
so one of them was given by let

190
00:15:31.919 --> 00:15:37.240
me see the name of the guy. His name was let me see,

191
00:15:39.159 --> 00:15:45.240
So I mean the library is called
lang chain, and that was the library

192
00:15:45.279 --> 00:15:50.759
he presented. His name is Andre
Bondarev. He's based out of New or

193
00:15:52.799 --> 00:15:56.039
So, Yeah, he gave it
an interesting talk about how do you leverage

194
00:15:56.159 --> 00:16:00.240
Ruby more for AI and machine learning
development. And then the other guy was

195
00:16:00.279 --> 00:16:06.440
called John Sebastian Boulanea, and he
gave a talk called building an AI Medical

196
00:16:06.480 --> 00:16:11.159
Scribe and Ruby, and that one
was very interesting because basically it was like

197
00:16:11.200 --> 00:16:18.320
an AI scribe that would accompany physicians
by listening on the microphone while they're talking

198
00:16:18.320 --> 00:16:23.480
to their patients, and it would
basically listen to everything they discuss and then

199
00:16:23.519 --> 00:16:30.960
it would summarize the conversations into the
most useful pieces of summary information, which

200
00:16:30.000 --> 00:16:36.639
then the physicians can later use to
save time and avoid having to read the

201
00:16:36.799 --> 00:16:41.159
entire transcript, so it saves them, it would save them hours of work

202
00:16:41.240 --> 00:16:48.559
basically. That so basically both of
those talks were about using Ruby for AI.

203
00:16:48.759 --> 00:16:52.919
So that's definitely another area that Ruby
could break more into in the future.

204
00:16:53.879 --> 00:17:00.159
Yeah, we've had Andre on the
podcasts. I don't know the the

205
00:17:00.159 --> 00:17:04.599
other guy that you mentioned, but
we did talk to Alex Rudahl who's been

206
00:17:04.640 --> 00:17:10.200
working with the open ai and written
the open Ai gem and yeah, it's

207
00:17:10.279 --> 00:17:12.359
it's fascinating to see where some of
this stuff goes. Now, lang Chain

208
00:17:12.400 --> 00:17:17.799
itself is written in Python, but
the Ruby libraries and the Ruby bindings,

209
00:17:17.799 --> 00:17:21.599
from what I understand, are excellent. And I know that Valentino Stole,

210
00:17:21.640 --> 00:17:23.240
who's my co host on Ruby Roakes, has also done a bunch of stuff

211
00:17:23.240 --> 00:17:26.599
with that. And yeah, as
the tools get better, I mean,

212
00:17:26.680 --> 00:17:30.839
there's there's no reason why. Hey, you know what, there's this awesome

213
00:17:30.880 --> 00:17:33.680
tool out there. It's kind of
like using postgress, which is also not

214
00:17:33.680 --> 00:17:36.559
written in Ruby, right, but
we connect to it because it does the

215
00:17:36.599 --> 00:17:38.559
work on the back end we need. Yeah, you know, there's no

216
00:17:38.599 --> 00:17:44.599
reason why we can't write these apps
in Ruby and you know, surface some

217
00:17:44.720 --> 00:17:48.599
kind of useful AI to them in
rails or something else and take that to

218
00:17:48.640 --> 00:17:52.920
the next level. Super exciting.
I'm also talking to Alex incidentally about doing

219
00:17:52.960 --> 00:17:59.519
an AI challenge and it'll probably be
the middle of March. Is what we're

220
00:17:59.519 --> 00:18:03.079
looking at, and leverage some of
the open AI stuff. But yeah,

221
00:18:03.119 --> 00:18:06.640
it might be interesting to talk to
somebody and see about doing something with a

222
00:18:06.720 --> 00:18:10.759
lang chain or something like that where
it then is not using open Aiyes,

223
00:18:11.519 --> 00:18:15.119
models, you know, large language
models, et cetera. And their imaging

224
00:18:15.160 --> 00:18:18.279
models, but actually building your own
would be really interesting, and maybe Andre's

225
00:18:18.319 --> 00:18:22.839
the right person to go to for
that mm hm. But so it's it's

226
00:18:22.880 --> 00:18:29.039
cool stuff and it's it's so powerful
as far as like the different options you

227
00:18:29.079 --> 00:18:30.920
have then to give a better experience
to your users, which I think is

228
00:18:30.960 --> 00:18:36.000
what we all want. It's we
want to solve a problem that people have

229
00:18:36.200 --> 00:18:41.519
in a way that really fits with
what they need. Yeah, exactly.

230
00:18:42.160 --> 00:18:47.279
I mean there there is a place
for other programming languages like C plus plus,

231
00:18:47.400 --> 00:18:52.319
Swift, c Sharp, see and
Java. Like sometimes there are needs

232
00:18:52.359 --> 00:18:56.960
to optimize algorithms with types, and
for those cases I might use a different

233
00:18:57.039 --> 00:19:03.279
linuage from Ruby. But at the
same time, if I'm building like highly

234
00:19:03.599 --> 00:19:07.759
uh, I would say abstract things
that can benefit from object oriented and DSL

235
00:19:08.160 --> 00:19:12.920
sorry object oriented programming and dsl's then
Ruby is definitely an excellent filelnce for it.

236
00:19:14.279 --> 00:19:18.119
And I personally still think Ruby in
my opinion, Ruby could do anything

237
00:19:18.160 --> 00:19:22.640
that Python or JavaScript could do,
but better or even Pearl. So in

238
00:19:22.680 --> 00:19:27.519
my mind, anything that has been
available in JavaScript, Python and Pearl should

239
00:19:27.559 --> 00:19:34.279
be we could we could use Ruby
for it instead. Going forward, Yep,

240
00:19:34.359 --> 00:19:41.680
absolutely are there other things coming down
the pipe with Ruby that you're excited

241
00:19:41.720 --> 00:19:47.759
about or want to talk about.
Well, I mean, yesterday somebody hit

242
00:19:47.799 --> 00:19:51.720
me up about my new project,
Glimmer DSL for a web and he said

243
00:19:51.759 --> 00:19:55.319
that he likes the front end a
development aspect of it a lot, that

244
00:19:55.400 --> 00:19:59.000
he was curious about how to integrate
it with back end developers from rails,

245
00:19:59.359 --> 00:20:03.079
and he asked need to expand it
so that it would offer an alternative to

246
00:20:03.319 --> 00:20:07.599
RB on the back end as well, using Glimmers Gloomer DSL. So the

247
00:20:07.920 --> 00:20:14.079
interesting thing that him and I discussed
yesterday that I'm still exploring is basically you

248
00:20:14.079 --> 00:20:18.519
could have the same exact components on
the front end and back end, so

249
00:20:18.519 --> 00:20:22.680
you would develop a component once and
it could either be server side rendering for

250
00:20:22.720 --> 00:20:27.680
it when the page first renders or
it can later be rendered after the Patient's

251
00:20:29.119 --> 00:20:34.799
interesting and the interesting part is if
it included any JavaScript logic, and like

252
00:20:34.880 --> 00:20:38.359
if we're using Opal, Ruby or
WASM, it wouldn't be JavaScript. But

253
00:20:38.440 --> 00:20:42.960
either way, if it has a
listeners or data bindings, they would not

254
00:20:44.440 --> 00:20:48.720
get hydrated and activated till after the
page is rendered, So there would need

255
00:20:48.759 --> 00:20:52.920
to be some logic that would you
know, if I'm running on the front

256
00:20:52.000 --> 00:20:56.240
end, it would attach the listeners
right away. If I'm running on the

257
00:20:56.279 --> 00:21:00.000
back end, the event listeners are
attached after rendering the page. So that's

258
00:21:00.000 --> 00:21:04.680
something I'm researching right now, is
how to use like how to build isomorphic

259
00:21:04.680 --> 00:21:11.000
applications or DSL for both the back
end and the front end. Yeah,

260
00:21:11.039 --> 00:21:15.200
and if you're looking for a model
that does a lot less of the how

261
00:21:15.240 --> 00:21:21.319
do I put it the big upfront
heavy duty hydration like react or Angular does.

262
00:21:22.079 --> 00:21:26.519
Quick has a really interesting model of
doing that where they use web sockets

263
00:21:26.559 --> 00:21:32.039
to effectively lazy load in and then
eager load in stuff as it goes.

264
00:21:33.640 --> 00:21:37.400
Yeah, that web sockets is definitely
are definitely on the agenda of things to

265
00:21:37.480 --> 00:21:42.359
explore as well to figure out how
I can make the life of rail software

266
00:21:42.400 --> 00:21:48.960
engineers easier or like sorry, more
like more productive whenever they use web sockets

267
00:21:49.039 --> 00:21:53.839
as well. Yeah, and there's
so much exciting stuff coming in rails,

268
00:21:56.920 --> 00:22:00.000
you know, not to kind of
steal the conversation and what you're talking about

269
00:22:00.039 --> 00:22:03.559
here with the future of Ruby,
but yeah, I think there are going

270
00:22:03.599 --> 00:22:06.599
to be a lot of good options
for that. I think they also use

271
00:22:06.640 --> 00:22:10.400
web workers which is something that EHH
says he wants to make first class in

272
00:22:11.160 --> 00:22:17.079
RAILS. Yes, that is another
thing that I'd like to explore eventually in

273
00:22:17.119 --> 00:22:21.359
the future. So rails offers the
new you know, hot Wire and Turbo

274
00:22:21.400 --> 00:22:26.039
technologies, which are very interesting because
they decrease the need for writing JavaScript manually

275
00:22:26.559 --> 00:22:30.920
for a lot of buses, especially
cases that are just doing straight AJAX and

276
00:22:32.000 --> 00:22:37.039
then you know, putting whatever HTML
where received from the server into an element.

277
00:22:38.039 --> 00:22:42.200
So there are other alternatives that are
doing something similar, like htm X,

278
00:22:42.640 --> 00:22:48.640
which lets you to any sort of
like element replacement with AJAX calls by

279
00:22:48.200 --> 00:22:56.279
using HTML attributes. So both options
are interesting in my opinion. They're orthogonal

280
00:22:56.319 --> 00:22:59.960
to a library like Glimmer. Glimmer
is just providing a way of writing client

281
00:23:00.160 --> 00:23:06.319
side code uh in instead of JavaScript, and it would be interesting to combine

282
00:23:06.319 --> 00:23:10.359
solutions. So eventually I do want
to spend a bit of time to looking

283
00:23:11.119 --> 00:23:15.440
into how to better integrate with Turbo, So I definitely find that interesting as

284
00:23:15.440 --> 00:23:21.480
well. For sure about the future. Yeah, we had Carson Gross on

285
00:23:21.720 --> 00:23:25.240
JavaScript Jabber last year, so if
you're looking for more info on HTMX,

286
00:23:26.000 --> 00:23:30.839
yeah, we talked to them at
length about how it works so awesome.

287
00:23:30.599 --> 00:23:36.559
Yeah. Yeah, I've been looking
at it a bit recently because it is

288
00:23:36.599 --> 00:23:41.240
definitely orthogonal and it could be combined
with Glimmer, except instead of adding the

289
00:23:41.359 --> 00:23:45.759
HTML attributes in real HTML, we
can just add them in Ruby instead using

290
00:23:45.759 --> 00:23:51.279
the Glimmer DSL. So, because
the Glimmer DSL is simply HTML CSS,

291
00:23:51.079 --> 00:23:55.880
there's nothing, there's nothing more to
it. It's just the standard HTML CSS,

292
00:23:55.920 --> 00:23:59.720
but you're using it from a better
language that allows you to be able

293
00:23:59.720 --> 00:24:03.119
to write logic and structure in one
language instead of having to, you know,

294
00:24:03.240 --> 00:24:07.680
use ERB and Ruby or JSX and
JavaScript. We don't have that separation

295
00:24:07.759 --> 00:24:11.720
anymore. It's not needed, so
we can be a lot more productive.

296
00:24:11.119 --> 00:24:15.799
That's cool. I'll have to check
that out. Yeah, so I mean

297
00:24:15.839 --> 00:24:19.480
that that is one interesting thing on
the web that I I'm looking into,

298
00:24:19.599 --> 00:24:23.240
is, you know, more improvements
to Glimmer DSL for Web, like being

299
00:24:23.240 --> 00:24:27.599
able to write components that run on
both back and the front end. As

300
00:24:27.599 --> 00:24:34.200
far as desktop development, recently,
I added a library for rendering charts and

301
00:24:34.240 --> 00:24:41.400
graphs and currently supports a line graph
and a bar chart. And it's been

302
00:24:41.839 --> 00:24:47.559
asked of me by somebody who's building
a real application that has bars, sorry,

303
00:24:47.559 --> 00:24:52.000
that has graphs and charts using Glimmer
DSL for Libyui. So I've actually

304
00:24:52.039 --> 00:24:56.559
helped that person build that application.
Once it's completely finished, it'll probably get

305
00:24:56.559 --> 00:25:02.440
announced on my blog. But as
part of that project, we extracted another

306
00:25:02.519 --> 00:25:10.480
library called Glimmer Libui graphs and charts
and nice supports two graphs right now,

307
00:25:10.559 --> 00:25:14.960
and I'm working on adding a bubble
chart soon. The good news about this

308
00:25:15.039 --> 00:25:18.759
is it will open the floodgase for
people doing more data science and Ruby,

309
00:25:19.279 --> 00:25:23.640
including graphic and charting as opposed to
having by fun. So that's stuff for

310
00:25:23.720 --> 00:25:30.160
something exciting as well. And another
thing I'm working on is improving the support

311
00:25:30.359 --> 00:25:37.400
for a few components and Glimmer desktop
libraries so that they support slots just like

312
00:25:37.440 --> 00:25:40.759
they do on the web. So
I'm for working on that as well.

313
00:25:41.039 --> 00:25:44.480
That's awesome, and I, like
I said before, I mean, I

314
00:25:44.519 --> 00:25:48.039
love the fact that we're getting into
a place where oh I need this other

315
00:25:48.160 --> 00:25:51.880
kind of app, where I need
to target this other kind of platform,

316
00:25:52.279 --> 00:25:56.759
and hey, look we've got great
options for you know, for doing this.

317
00:25:56.880 --> 00:26:07.279
So yeah, yeah, that's super
cool. You you mentioned Montreal RB.

318
00:26:08.039 --> 00:26:15.799
Are you seeing what are you seeing
in the meetup space. So we

319
00:26:15.880 --> 00:26:18.759
got the last two talks where AI
talks. Like I mentioned already before that,

320
00:26:18.839 --> 00:26:22.319
we had to talk about how to
do payments and Ruby on Ruby on

321
00:26:22.440 --> 00:26:29.519
rails, any payment solutions like Stripe
or other payment gageways like repay or Zoom

322
00:26:29.599 --> 00:26:33.039
rails or there are many many payment
gateways out there. So it's just a

323
00:26:33.119 --> 00:26:37.720
general talk that gave also information about
like the business of payment and not just

324
00:26:37.759 --> 00:26:41.880
the development software development of payment.
Before that, I had a talk on

325
00:26:42.599 --> 00:26:49.000
Rail's few components, and before that
I had a talk on Microsoft Coyota,

326
00:26:49.039 --> 00:26:53.359
which allows you to be able to
build, sorry not build, generate any

327
00:26:53.440 --> 00:27:00.720
Ruby SDKs for rest APIs automatically.
So that way, if somebody using the

328
00:27:00.920 --> 00:27:06.079
open API spec, so you know, for example, I get the open

329
00:27:06.119 --> 00:27:11.200
API spec for uh, let's just
say integrating with Azure storage services, I

330
00:27:11.240 --> 00:27:15.640
can Let's just suppose their their library
is going out of dates or they haven't

331
00:27:15.680 --> 00:27:18.720
updated in a while. What I
could do is actually I could just use

332
00:27:18.799 --> 00:27:23.880
Karyota and it would generate and SDK
automatically from their open API spec. I

333
00:27:23.960 --> 00:27:26.680
don't even have to use the library
anymore. And the good thing about it

334
00:27:26.720 --> 00:27:32.000
is. It can allow us to
then add things like repeating like sorry,

335
00:27:32.039 --> 00:27:37.079
like things related related to software reliability
like repeating calls, recovering from exceptions,

336
00:27:37.559 --> 00:27:42.119
reach wise, et cetera. So
it's a it's a it's a very interesting

337
00:27:42.200 --> 00:27:48.279
library that actually GitHub officially adopted recently
in an announcement as the new way of

338
00:27:48.359 --> 00:27:53.200
them building SDKs for their APIs.
So they're not going to be maintaining their

339
00:27:53.200 --> 00:27:57.920
own custom ap SDKs anymore. From
what I read in the announcement, They're

340
00:27:57.960 --> 00:28:03.960
going to be using Microsoft Coyota.
So that's another interesting technology that got covered

341
00:28:03.960 --> 00:28:10.319
at Montreal ARB recently. Very cool. That sounds really handy. So they

342
00:28:10.359 --> 00:28:14.559
just generate the swagger dots and they're
off to the races. Yep. Yeah.

343
00:28:14.640 --> 00:28:18.160
Pretty much before that, we had
a Montreal RB talk about how to

344
00:28:18.200 --> 00:28:25.279
build command line tools in Ruby that
was interesting, and somebody also gave a

345
00:28:25.319 --> 00:28:33.680
talk on optimizing mathematical algorithms in Ruby
that was interesting as well. Very cool.

346
00:28:33.319 --> 00:28:37.359
Are there places where people can find
these talks or are they? Yeah?

347
00:28:37.400 --> 00:28:41.319
There? So, I mean,
we we announce our talks on meetup

348
00:28:41.359 --> 00:28:45.480
dot com. We just have a
meetup group, So if you search for

349
00:28:45.720 --> 00:28:52.759
Montreal dot RB on meetup dot com
you'll find us. And actually there's also

350
00:28:52.799 --> 00:28:56.839
a YouTube channel. It's called at
Montreal dash RB. If you go to

351
00:28:56.920 --> 00:29:03.519
that channel at Montreal dash ar,
it'll give you the all the talks recorded.

352
00:29:03.720 --> 00:29:07.480
So we try to record every single
talk unless the speaker doesn't want want

353
00:29:07.519 --> 00:29:12.480
to. So we have more than
ten talks on that channel. Awesome.

354
00:29:12.759 --> 00:29:19.119
We re rebooted the group after the
COVID lockdowns about two years ago and that

355
00:29:19.319 --> 00:29:23.440
that and then that was when we
started posting talks in one channel on YouTube.

356
00:29:23.519 --> 00:29:27.319
So yeah, we have about we
have over ten videos on it.

357
00:29:27.440 --> 00:29:33.480
Nice. Yeah, that's we've been
trying to revive the one here in Salt

358
00:29:33.599 --> 00:29:37.839
Lake and it just it's been kind
of a thing. So yeah, So

359
00:29:37.920 --> 00:29:44.359
we definitely had to start small and
keep doing it for a while, even

360
00:29:44.400 --> 00:29:47.680
if people were coming as much,
Like at first, not many people are

361
00:29:47.680 --> 00:29:51.680
coming obviously, some people were afraid
of COVID still and didn't want to go

362
00:29:51.720 --> 00:29:55.000
out as much. We didn't care. We just kept hosting it over and

363
00:29:55.039 --> 00:30:00.119
over and over and then it kept
growing and growing, and like it's so

364
00:30:00.559 --> 00:30:03.960
right now it's a lot like we're
filling the room every time. Almost in

365
00:30:04.000 --> 00:30:10.319
the last three times, so it
definitely helped you just be persistent. Yeah,

366
00:30:10.359 --> 00:30:14.400
I think that's what it's going to
take. There was some idea around

367
00:30:15.640 --> 00:30:21.400
not holding it at a company's space, but that eliminates like ninety percent of

368
00:30:21.440 --> 00:30:26.640
the spaces that are really available to
us, And so I think some of

369
00:30:26.640 --> 00:30:32.200
the co working spaces might be willing
to let us use like their you know,

370
00:30:32.319 --> 00:30:36.400
their presentation area or their conference room
every once in a while. But

371
00:30:37.519 --> 00:30:41.160
if we don't have any people who
are trying to help organize it that are

372
00:30:41.160 --> 00:30:42.920
members that the co working space,
it gets a little complicated too. So

373
00:30:44.640 --> 00:30:48.240
I'm really thinking I might just reach
out to some of the companies here in

374
00:30:48.319 --> 00:30:49.440
Utah and just say, hey,
do you have a space where we can

375
00:30:49.480 --> 00:30:52.119
hold the meet up and do you
have an employee that will let us in,

376
00:30:52.559 --> 00:30:56.200
and are you willing to buy pizza
or whatever. I wonder if some

377
00:30:56.759 --> 00:31:02.720
bars can also allow you to the
talk, like the bars that have a

378
00:31:02.799 --> 00:31:06.400
stage for a band. I wonder
if, like if you could project a

379
00:31:06.400 --> 00:31:10.200
screen there instead. But yeah,
we definitely so for us, we have

380
00:31:10.279 --> 00:31:15.119
we've been hosting the talks between two
companies, one of them is my company,

381
00:31:15.200 --> 00:31:18.440
Lexop and other companies called Potlock.
Both of them are based in Montreal

382
00:31:18.480 --> 00:31:25.559
and their technology companies that use to
Ruby on mails development. So we've been

383
00:31:25.559 --> 00:31:33.279
splitting the hosting locations between two companies
and that definitely works for us. Yeah,

384
00:31:33.480 --> 00:31:41.279
so the way that our geography is
set up, they're kind of three

385
00:31:41.400 --> 00:31:45.400
ish more or less business hubs.
There's a lot of stuff that happens in

386
00:31:45.519 --> 00:31:48.200
Utah County, which is where I
live. I live just on the north

387
00:31:48.240 --> 00:31:53.319
end almost in Salt Lake County,
and most of the business hub around here

388
00:31:53.480 --> 00:31:57.039
is right near me, right,
So it's almost in salt Lake County,

389
00:31:57.400 --> 00:32:00.880
and there are a couple of rather
like arch companies that have offices there,

390
00:32:01.240 --> 00:32:05.279
and so we could definitely get away
with it. There are some that are

391
00:32:05.359 --> 00:32:07.960
kind of in the South Valley in
salt Lake County, and then they are

392
00:32:07.960 --> 00:32:14.160
a bunch downtown Salt Lake, and
then they're a handful in Davis County,

393
00:32:14.160 --> 00:32:16.440
which is north of Salt Lake,
you know, all along the I fifteen

394
00:32:16.480 --> 00:32:21.559
corridor. And so that could be
interesting, right, just finding those spaces

395
00:32:21.599 --> 00:32:24.920
where hey, can we post a
meet up at your office? And some

396
00:32:24.960 --> 00:32:29.160
of them like plural sites office is
up in Davis County and they might be

397
00:32:29.200 --> 00:32:31.559
willing to host us even though they
don't use Ruby on rails, they do

398
00:32:31.640 --> 00:32:37.839
have some Ruby content in their subscription
and might be willing to host us just

399
00:32:37.880 --> 00:32:39.480
out of the kindness of Hey,
if people like us, they might sign

400
00:32:39.519 --> 00:32:45.160
up for a subscription. So I
don't know, but yeah, I think

401
00:32:45.200 --> 00:32:49.240
it'd be worth reaching out and trying
to pull something like that together. And

402
00:32:49.400 --> 00:32:52.599
like I said, also, there
are a few of these companies that I

403
00:32:52.680 --> 00:32:54.640
know people at that I could just
say, hey, can you, you

404
00:32:54.680 --> 00:32:58.359
know, ask around the office and
see if they'll let you do it.

405
00:32:58.400 --> 00:33:04.400
So anyway, we kind of got
a little off topic there, but it's

406
00:33:04.440 --> 00:33:07.839
all good. I think the meetup
scene is kind of coming back. We're

407
00:33:07.880 --> 00:33:13.880
definitely seeing more conferences. Are there
other things that you're seeing up and coming

408
00:33:13.920 --> 00:33:23.440
in the Ruby community that you wanted
to go over? I'm not sure,

409
00:33:24.039 --> 00:33:31.160
I mean, but I definitely feel
like Ruby is still a highly effective language.

410
00:33:31.279 --> 00:33:37.640
And yeah, I do notice something
actually more recently, I noticed that

411
00:33:37.680 --> 00:33:42.920
a lot of people that have left
Ruby for other overhype technologies are returning to

412
00:33:43.000 --> 00:33:45.559
it now. That's what's interesting.
Like twenty twenty four or even the end

413
00:33:45.559 --> 00:33:50.279
of twenty twenty three, a lot
of people that have left Ruby for Ilixur

414
00:33:50.680 --> 00:33:54.559
or Rost for whatever other languages are
all of the sudden returning and being like

415
00:33:55.559 --> 00:34:01.359
Ruby on rails is way simpler than
anything else noticed that recently, and I

416
00:34:02.279 --> 00:34:07.840
agree with it. So are there
reasons that you're seeing for that or like

417
00:34:07.960 --> 00:34:14.280
anything in particular? I mean,
the only reason I can think of is

418
00:34:15.800 --> 00:34:20.280
waking up of the hype the hype
spell. I personally, I'm a very

419
00:34:20.400 --> 00:34:24.239
very like I try to be very
realistic and practical about how I think about

420
00:34:24.239 --> 00:34:29.639
software. I think about software from
a software engineering like pros and cons point

421
00:34:29.639 --> 00:34:31.480
of view. I never think of
it from the point of view of,

422
00:34:31.519 --> 00:34:35.639
oh, this is cool, this
is fun, this is something used at

423
00:34:35.679 --> 00:34:38.320
a large company x y Z like
Facebook. I never think that way.

424
00:34:38.400 --> 00:34:40.840
I always think, you know,
you know the pros, what are the

425
00:34:40.840 --> 00:34:46.199
cons? Is it making out life
better or worse? Development more cheaper or

426
00:34:46.199 --> 00:34:52.679
more expensive, more productive, et
cetera. So I tend to guard myself

427
00:34:52.880 --> 00:34:55.960
against falling for hype spells to begin
with, like I try to, you

428
00:34:55.960 --> 00:35:01.519
know when Like so, I think
some people might have made the mistake of

429
00:35:01.519 --> 00:35:05.519
falling for hype a bit and then
they woke up from it, and then

430
00:35:05.559 --> 00:35:08.880
they realized, like, because I've
heard of people that used Elixir for a

431
00:35:08.880 --> 00:35:14.239
while or some other technology it might
have been JavaScript, and then they came

432
00:35:14.239 --> 00:35:15.920
back to Rails and then they're like, wow, Rails is amazing, like

433
00:35:15.960 --> 00:35:22.559
it it feels so productive by comparison, it's so lightweight. So I think

434
00:35:22.599 --> 00:35:27.599
it's just people rediscovering that. Yeah, I think there's something to that.

435
00:35:27.760 --> 00:35:31.159
I think also down to some of
the points you're making about some of the

436
00:35:31.199 --> 00:35:37.280
stronger points of Ruby or Rails and
then people, yeah, recognizing that the

437
00:35:37.400 --> 00:35:43.079
other technology is not giving them what
they want. So I know a lot

438
00:35:43.159 --> 00:35:46.920
of people that yeah, they went
over to Alixer or to React for different

439
00:35:46.920 --> 00:35:51.800
reasons, right, and some of
the promise was there, right, which

440
00:35:51.880 --> 00:35:53.599
is why they moved over because they
fiddled with it, and yeah, it

441
00:35:53.679 --> 00:35:59.920
kind of delivered what it said it
did. But as those technologies of mature,

442
00:36:00.280 --> 00:36:05.880
Yeah, they come to realize that
a Ruby's becoming more performant. It's

443
00:36:06.039 --> 00:36:09.000
you know, Rails is delivering on
more and more of the promise and you

444
00:36:09.039 --> 00:36:13.519
know, coming back to I feel
like Rails is coming back to its roots,

445
00:36:13.519 --> 00:36:15.519
which is funny because DH has always
been the guy driving it. But

446
00:36:15.599 --> 00:36:19.159
coming back to its roots of hey, look, we're going to give you

447
00:36:19.199 --> 00:36:23.119
something that just you can build something
just awesome, which is kind of the

448
00:36:23.519 --> 00:36:30.679
focus of Rails Composer, which is
a project I'm working on. But yeah,

449
00:36:30.719 --> 00:36:32.800
you boil it down to those things, and then yeah, people start

450
00:36:32.800 --> 00:36:37.280
realizing, hey, this is what
I want to make what technology, you

451
00:36:37.320 --> 00:36:42.679
know, and yeah, Elixer adds
this level of complexity or you know,

452
00:36:42.719 --> 00:36:45.119
it's not as nice as Rails has
been to do some of this stuff or

453
00:36:45.159 --> 00:36:50.559
things like that. Yeah, I
have been following that same exact vision with

454
00:36:50.599 --> 00:36:52.880
Glimmer libraries, like I try to
give people a way to build the Dusktop

455
00:36:52.920 --> 00:36:57.360
up in ten minutes if they need
to, right, like a very simple

456
00:36:57.480 --> 00:37:01.400
MVP in ten minutes at least most
sorry, and then maybe they can even

457
00:37:01.440 --> 00:37:06.440
finish the full app in like an
hour or a few hours. And I've

458
00:37:06.480 --> 00:37:09.519
definitely been trying to emulate what the
HH has done in Rails, Right.

459
00:37:09.920 --> 00:37:14.480
I think that's a big selling point
for sure for Ruby. I do agree

460
00:37:14.480 --> 00:37:19.159
about that, yep. Yeah,
I mean it's the same idea behind Rails

461
00:37:19.159 --> 00:37:22.280
Composer, where it's there are a
whole bunch of things you're going to need

462
00:37:22.320 --> 00:37:27.960
for your app, user management,
permissions management, payment management, you know,

463
00:37:27.960 --> 00:37:30.920
stuff like that, and so hey, pull our pieces in and then

464
00:37:30.960 --> 00:37:35.400
work on the thing that you actually
care about, which is my customers need

465
00:37:35.480 --> 00:37:39.480
something that helps them do whatever it
is that your app does, right,

466
00:37:39.559 --> 00:37:44.599
so you know, yeah, you
get all the boilerplate, all the main

467
00:37:44.679 --> 00:37:46.519
stuff out of the way. And
for me, the SaaS has a certain

468
00:37:46.599 --> 00:37:50.280
level of boilerplate to it, so
you get that all out of the way,

469
00:37:50.320 --> 00:37:52.920
so you can live in your zone
of genius. And what I find

470
00:37:52.000 --> 00:37:55.039
is that, yeah, a lot
of these technologies, especially React, in

471
00:37:55.119 --> 00:38:00.559
my opinion, they they've added so
many things to it and pushed it in

472
00:38:00.599 --> 00:38:05.599
a direction to where you have to
be a master of many things in order

473
00:38:05.639 --> 00:38:07.519
to get what you want out of
it, Whereas in Rails, if you

474
00:38:07.559 --> 00:38:10.679
want to boil it down to just
the basic NBC framework, you can get

475
00:38:10.719 --> 00:38:15.239
away with that and build a simple
app really fast. Yeah, I mean

476
00:38:15.280 --> 00:38:19.599
you can still as caffold the full
app in one command, which is awesome.

477
00:38:20.239 --> 00:38:25.280
Yep, more or less. So
yeah, all right, Well we're

478
00:38:25.320 --> 00:38:30.880
almost to our forty five minutes.
If people want to connect with you or

479
00:38:30.000 --> 00:38:32.920
find out more about Glimmer or any
of the other things, we've talked about

480
00:38:32.920 --> 00:38:40.719
where do they find you online?
They probably find me on GitHub Andy Octiva

481
00:38:42.320 --> 00:38:46.159
is my handle, or they could
find me on my blog, which is

482
00:38:46.199 --> 00:38:52.119
Andy Maale dot blogspot dot com.
And I'll make sure to send you the

483
00:38:52.119 --> 00:38:54.800
links so that you can include them
somewhere that people can clear if they want.

484
00:38:55.960 --> 00:39:00.119
Yeah, well, we'll have show
notes for the interviews, so yeah,

485
00:39:00.119 --> 00:39:02.920
definitely. And yeah, I mentioned
a few of the other people that

486
00:39:02.920 --> 00:39:07.519
we've interviewed. I think I'm gonna
reach out to Andrea, even though I

487
00:39:07.559 --> 00:39:09.159
already talked to Alex and see if
we can get him on for an interview

488
00:39:09.159 --> 00:39:15.800
as well. And then, yeah, thanks, thanks for joining us,

489
00:39:15.840 --> 00:39:17.679
folks, and until next time,
Max out

