Ruby Dev Summit - Stephen Margheim - podcast episode cover

Ruby Dev Summit - Stephen Margheim

Feb 15, 202442 min
--:--
--:--
Download Metacast podcast app
Listen to this episode in Metacast mobile app
Don't just listen to podcasts. Learn from them with transcripts, summaries, and chapters for every episode. Skim, search, and bookmark insights. Learn more

Episode description

Charles Wood explores the resurgence of Ruby and Ruby on Rails in the web development community. Our featured speaker, Stephen Margheim, delves into the technical aspects that have contributed to the renewed interest in Ruby, including its simplicity, intuitive nature, and pragmatic approach. They discuss the practical applications of Ruby in web development, the emergence of new companies adopting Ruby on Rails, and the ongoing efforts to expand the ecosystem of tools and guides for advanced use cases with SQLite in web applications. Join them as they analyze the impact of Ruby's resurgence and its potential to shape the future of web development.
Socials



Advertising Inquiries: https://redcircle.com/brands

Privacy & Opt-Out: https://redcircle.com/privacy

Become a supporter of this podcast: https://www.spreaker.com/podcast/ruby-rogues--6102073/support.

Transcript

Hey, welcome back to the Ruby Dev Summit. Uh. We are asking experts in Ruby and Ruby on rails about what the future of Ruby looks like. I am talking to Stephen Markheim. Stephen is something something boss of engineering at test dot io, and you know, he's been doing a lot of work on the sequel Light Ruby integration and and some of that with rails as well. And yeah, so I thought you might have kind of a fascinating

take, Stephen on what the future of Ruby is. We don't have to stay in the lane of sequel Light, obviously, we can talk about, you know, where the community is going, where you see the technology going as a whole, you know, and and then yeah, eventually we'll probably talk about database stuff. But yeah, what what when people talk about what

the future of Ruby is, what what are you thinking? Yeah? I think that Ruby is experiencing a bit of a resurgence the last maybe year and a half, as the larger web development community is starting to realize the value and the benefits of simplicity, whether that's simplicity in the form of deployment architectures, monolists versus micro services, whether that is simplicity in the form of how your web application is architected, do you use all of the new React features

and find your way into the next JASA you can have React server components, or do you start to explore the possibilities of like, okay, can hypermedia

actually provide rich experiences? And you know, I think for for Ruby, we have such a long history in the world of web development that we've experienced a lot of the temptations, a lot of the cycles of hype and technologies, and there's always been a strong core of pragmatism in the Ruby community, which I think has helped protect us somewhat from the hype driven volatility that I think is more common in the JavaScript and front end focused portion of web development.

But I think that as I look into the future, like for Ruby, I see an opportunity for us to become more active and engaged and connected with the larger web development conversations and trends, as there is this growing sort of union in the natural pragmatism of the Ruby community and the desire to find that one perfect best tool that seems to be driving so much of the larger

web development community. Right, I kind of want to back up a little bit and just kind of talk about some of these ideas here, so and I should have been writing them down because there were like three of them that I wanted to hit. But one of the things that you mentioned was just kind of the I guess some of the simplicity and kind of the natural flow of the language and things like that is something that I'm kind of pulling from

what you're saying. And I'm curious as to how much you see I mean, are we pulling people back from some of these other communities, or are we attracting newer people because of the way that Ruby works, or you know, because you mentioned we're kind of seeing this resurgence, and so I'm curious where you're seeing it. Is it newer people, is it experienced people,

is it across the spectrum? Yeah, I think it's a mix. I had the opportunity to go to I think four conferences last year, and is regularly the case, there's you know, the question at the start of the conference, I raise your hand. If this is your first Ruby conference, raise your hand, If this is your first tech conference, raise your hand

if you're a new web developer. And there were a lot more hands than I expected, even in some of the smaller conferences like the percentage of you know, maybe some of the range of ten to twenty percent, like new developers, new rubyists. So I do think that there is still an influx of people that are new to development, new to web development, who are

finding Ruby and finding it interesting and attractive. I've also seen a lot of people who and again I think this is one of the benefits of Ruby, like being around for thirty years, who have worked with Ruby at some point in their past, and then the course of maybe the last five to ten years, their jobs had them focusing more in some aspect of working in JavaScript, and then in the last maybe three years to one year have started doing more work in Ruby. So I think that there are two sort of like

mainstreams. One are these new Rubias who are coming into the industry finding the language, finding the community, finding the tools, finding the ecosystem attractive and interesting. And then there's also long term web developers who might have spent the last decade primarily working in JavaScript but are now finding themselves coming back to Ruby and right a combination of those two things I think is bringing a lot of

energy back into the community and into the ecosystem. Yeah, I think there's a lot to that. I mean, some of it is just kind of the I don't even know how to explain it, but kind of the simple intuitive nature of the language, and some of that is, Yeah, a lot of the tools. I think you said it was a pragmatic approach to things that we have in Ruby, where yeah, a lot of these problems get solved, and they get solved in an elegant way. That and it's

not just elegance because elegance. It's elegant because it's easy. It's you know, I can kind of grab it and get my hands on it and figure it out and understand what's going on there. And if I don't want to go too deep on it, I can still kind of into it my way into using it. Yeah, I think that's an important addition to the framing of Like the simplicity of Ruby is that it's not a simplicity that puts a

ceiling on power or flexibility. It's a simplicity around intuition and understandability and readability that makes it I think really attractive for spanning that sort of like gap from like having one person doing work and then starting to bring on your second and third person into the team and having to deal with the communication overhead, like what are we doing? How are we trying to get this computer to do

precisely what we want, consistently and repeatably. And it's there where the sort of natural characteristics of Ruby, I think, really and its simplicity is in its ability to express ideas with great clarity that I think really makes it attractive even today, like twenty thirty years later, there's still a really vibrant community there because when you need to do something right, like you want to write

code not for its mathematical purity, but for achieving some valuable goal. I think that there are really very few languages that have the same clarity of intention in the code itself as compared to Ruby, and it continues to draw people to it all these years later. So I want to ask kind of along these same lines. I'm assuming you're using Ruby and or rails at test dot.

Iowe, and when we got on the call, you mentioned that, Hey, you know, I can get on and I can do these summits and things because I have a well functioning team that you know, everything kind of works smoothly. And I'm wondering, I mean, some of that's going to be down to you know, management process and things like that. But how much do you attribute that to the language? Yeah, well I attribute a lot to the language, especially in our context where we have pushed into

a number of new product categories in the last four years. You know. So for the longest time, we were a fairly standard SaaS startup, where the company's name is test Io, the web domain is test dot io, the product is the test Io platform. There was a very clear one to

one mapping. But with success and time you naturally grow and expand, and especially recently, we have been expanding into a number of different areas, and in each of those cases, that has been expanding with like completely new codebase. So we now have a department that is building large new features as well

as maintaining ten revenue generating products that are their own separate repositories. And if you include every single kind of developer you know, native developers, QA developers, designers, what have you, we're still under fifty people and so much of what is allowing us to have that kind of breadth of responsibility while not like exploding the size of people and lines of communication and that kind of managerial

overhead is directly because Ruby and rails as a combination really do allow small groups of people to do large, meaningful amounts of work when you know how to

wheel those rights as well. Yeah, that makes sense. I guess the other question that I have, and I don't know how good a feel any of us really have for this, but it seems like back in its heyday, ruby and rails in particular, we're kind of the go to option for SaaS companies to start their products in right, And you know, some of the bigger ones out there, like Twitter, you know, started out as rails projects and then as they evolved, maybe they pulled in other technologies to

do different aspects of the work that needed to be done. And so what I'm wondering is do you feel like that's part of the resurgence or renaissance And how many startups are you seeing that are adopting rails as opposed to next js

or something like that. Yeah, I should go and find it. I was just reading a tweet earlier today literally was asking people and sort of building a list of companies that were founded within the last two years that are using rubyond rails at the the heart of their company, and the list was large and was growing. I think that there is, and I think it's related to this, like the trends, the larger trends in web application development that

you know for a long time. My sense, mostly from the outside looking in, is that a meaningful portion of like a quiet wearing the social capital to demonstrate like we are real and serious company with real and serious engineering intentions was to show we're doing advanced cool stuff with JavaScript, right, and now the trend to show that you're real and serious as a startup is to say, look at how thoughtful and pragmatic we are being and how we are deploying

our resources and spending our money right. And in that environment, Ruby and Rails as a combination are seeing a noticeable comeback. One of my personal favorite tools and companies Planet Scale right, which is a newer company that has a lot of open brand exposure, and you know, it's like doing the we are a serious startup in the developer experienced space that's a rubyond rails back end

that is doing very complex, important, difficult work. And I mean I don't recall at the top of my head how old they are, but they're not. You know, one of these twenty year old companies that well, of course they're using Rails, because what else was the option twenty years ago? So I do think that there is a real comeback, if we want to call it that, not that it went away in like a numerical sense, but in a sort of larger vibe sense. I do think that Ruby

and Rails are seeing a resurgence. So I guess, you know, with all the things that we're talking about here, we kind of talked about where things are at now and some of the momentum heading into the future, But where do we end up at then with Ruby and Rails. Yeah, Well, I mean one of the vectors I'm most personally interested in is continuing to

make Rails the world's objectively best web framework for individual developers. And I think that there is a real like Obviously, that has been a part of Rails from its beginnings, But if we're being honest, the other definitional part of Rails from its foundations has been that it is a framework extracted from real businesses.

And now there are two decades into its existence, the major businesses that employ most of the core team for Rails are massive enterprises, and so a lot of what is being extracted, naturally are features that are incredibly valuable and useful for massive enterprises, right, And you're talking like base camp and Shopify and some of those, right and getthub. Yeah, I think that those three probably employ at least eighty percent of the Rails core team, right.

And it is my belief that it is the combination of these two characteristics that makes Rails so powerful and so special that on the one hand, it is being pushed and tempting to be an amazing web framework for companies doing the kinds of work at the kind of scale as Shopify and get hub, but it is also trying to allow an individual who is working a nine to five job and wants to try to get into web development or wants to try to start

their own business two actually do that to like leverage their time in such a way that they can create something of value. And I think that the future for that aspect of Rails and that aspect of Ruby is particularly bright, especially in comparison with the rest of the web development like landscape. It's hard for these things to be objective, but I feel like, you know, if you just add an individual like mid career developer sit down with next JS and

with Rails and said, you know, you have twelve hours. We would see pretty quickly which of those was a more productive technology stack. Yeah, that makes sense, and just speaking to that kind of single developer. I don't know if you were at Rails World, but David talked a bit about that. Oh, we should have met up anyway, but David talked a bit about that right where it was he kind of had that vision as a being the framework that one person could reasonably build a product in without you know,

obscene amounts of effort and have something that that functions well. And then he also tweeted recently and I don't have the tweet right in front of me, but he was talking about Rails eight and how Rails eight's going to start incorporating some of these features from the web, and so I'm assuming there's going to be some aspect of JavaScript browser programming that's going to have to happen for some of that, but just looking at all of those options and going all

right, we're going to add all these things in so that you can build a fully functional application in Rails that has all of those features. And that gets me excited. But then, you know, coming back to some of the other things that you're talking about with just having one person be able to do things and do them well, you know, Ruby continues to expand, and you know, the number of gems that we have and things like that,

as well as the performance characteristics of Ruby continue to get better. And so yeah, I just I see a really really bright future for both. And I've also seen that a lot of people tend to come in for the benefits they get from Rails and then continue on into benefits in Ruby. Right, so it's like, oh, well, I'm writing all of this Rails code, and now I just need something quick and dirty or quick and not

dirty. I guess that'll do a job. And so they just write a little Ruby script that does the thing and realize how simple it is there too, And so anyway, it's really interesting to see how the ecosystem continues to grow. I kind of want to transition a little bit into your work with seql light. So I think for a long time most people have been pretty bullish on postg resql. Right. Occasionally you'll hear people say, oh,

we're using my SQL or Maria dB. But yeah, lately I think I heard an interview from somebody from Planet Scale talking about the power that they have in a sequel light setup, and so I'm just curious, Yeah, what's

your work there look like and where do you see that going? Yeah, well, maybe it makes sense to start with how I found myself even experimenting using sequal light, because indeed it wasn't a again, a theoretically driven thing, it was a very pragmatic driven decision where one of my roles in the company is to be effectively half of the research and development department, and that requires me to make sure that I am building applications that are on the one

hand, incredibly simple and quick for me to create, and also on the other hand, very straightforward for me to debut, because I'll a bug report will come in, I'll have thirty minutes between calls, and what I need to be the case is that I can read the report, figure out what's going on, fix it, deploy it inside of that thirty minute window between calls. And I had built a couple of applications with postgress, deployed them

to Haroku and things that way. I just had experiences where but report comes in and I am trying to debug it, and the amount of indirection and lack of control that I had made it difficult for me to do that quickly. Like I mean again, really quickly. Right, I have these thirty minute windows, and I had a project come up, like, hey, we need to spend this up really quickly. We don't have a lot of time. We want to see if there's an opportunity here in the market.

And I had been researching and playing around with hatchbox. It's like, okay, I'm just going to use hatchbox, and I want to I want to

make this the absolute simplest quote unquote stupidest possible way I can. So I left all of the defaults and squelight was the default database when you run reils new and I just put it up on the server and the first I don't know, half a dozen bug reports that I got the experience of whether it was being able to really quickly like check this date of the database and like, okay, you know, this feels very natural and very similar to postgress,

but then like I'm not quite sure, like what is happening here, and just like literally scping the file down to my laptop and then running my local instance of the application, but with the production database and being able to step through the states and find oh, okay, here's the weird thing.

It just was a really experience. So the next project came in, I built on top of seaqlide, and within a few months I had two or three of these small research and development applications that were running right life, and I just naturally started to bump into some rough edges and there were enough positives in the developer experience that I wanted to sand down those rough edges instead of

just switch over to postcriss. And that led me to just digging in to figure out, like, what are these problems, why are they happening? How can I make them go away? And as I was beginning that work, I came across the light stack project by Mohammed a Ali Oldmo on Twitter at GitHub, and it was like an actual light bulb, lightning flash moment for me. Where I had been working with sequlite and working with sqlight on rails, but I had just simply never considered the possibility that you know,

it could back all of the io components of rails. And as soon as I saw that project and I saw the vision, it like just immediately snapped into place in my mind. It's like, right, like that is that is the ultimate high leverage single developer stack, right like right, it's all on one machine. You completely can understand what's happening. You have. If you can master rails and you can master Sequelite, then you can leverage those

tools. You can leverage your mastery, you can keep the amount of information and moving hearts that you need to have in your head to jump into a debugging session and figure out what was going on, all like incredibly low and it just yeah, it inspired me, and so that pushed me deeper into

the rabbit hole. And now I guess six months later, there is a lot of improvements that haven't made, a lot of improvements that are being made, and there is I think a growing an emerging group of solo developers who are seeing that similar vision of wanting to have a small number of quote unquote boring technologies that they can leverage to get really outsized returns on their time and their effort, and recognizing that Sequelight offers a relative the unique kind of leverage

for web development, and when tuned well and used well, many of the like standard somewhat myths that are stated as like, well, you can't obviously run sqlight of production because you know the handful of things that are regularly said like actually you can work around and resolve or actually just like make disappear. Right, So that has been the journey. Very cool. So so where

does that go from here? Right? It sounds like for the most part, yeah, you can run sql light in production now, so where where where? Yeah? Where do we go in the future on this? Yeah, Well, there are a few strands that are still open right now, like literally open pull requests. One of the major ones is improving concurrency support.

So one of the biggest differences between sequal light and client server database engines like postcress or my sequel is that you have a single database level right block, so only one connection is only ever going to be writingtabase at a time. And this is a common one of the common statements like you can't obviously run sequlite and production because you can only do one right at the time. You have linear rights that can never scale. This makes no sense, you

should never even start now. That statement fails to account for a number of pieces of nuance. One of the most important ones is that like when you completely remove any form of network latency right and you're able to bring queries down from milliseconds to microseconds, you know you can linear They stack hundreds of right queries in the same amount of time it took you to do one right query.

It changes the math there, but there is still pain when it comes to like rails is default connection pool, having multiple connections to the database and dealing with getting all of your different rights to autonomously line up right and not hit deadlocks or busy errors. So there are a couple of pool requests open on rails. There's one pull request open on the c pl I three Ruby

gem. Two. Actually, the one on the CQL I three Ruby gem just got merged, but the gem hasn't been a new version of the gem has been released right to address this problem, like to just get the pieces in place where the systems will naturally line up queue up your rights. And then the other main direction is just continuing to build out and grow the ecosystem of tools, the information, the guides to make it clear like, Okay,

you have this kind of problem. There's you know, at this point a decade plus of content around here's how you do this kind of thing with post crist This is how you do this kind of thing with my sequel as you start to get into more advanced use cases and there's not as much of that, especially for web developers, for web applications when it comes to squel.

So just trying to explore some of these more advanced use cases and write down you know how to how to leverage the unique benefits and also limitations of sqlight to accomplish more complicated needs. So at the end of the day, then is this becomes more you know, I guess where more of these issues are solved. Do you see an uptick in sql light usage with Ruby and

what does that mean for the community and the technology at large? Yeah, well, I mean I'm I'm already seeing an uptick, and it's it's cool to see more and more people having a similar thought process as I did. Right, Like, I really want to max my leverage on my time and on my effort. But as for what this might mean for the future, one of my hopes and beliefs is that this can help meaningfully lower the barrier

to entry for new developers. I think that one of the the areas where the JavaScript world had The advantage for a long time was how easy they at least made it seem to get started to go from I have an idea and I don't know, I don't feel like I'm a web developer. I don't feel like I'm a developer, but I want to create something. And there was a lot of content and a lot of you know, like this push

for sassifying everything, making everything a service, everything an API. Right, so it's just you just write these thirty lines of JavaScript and you just you know, pay for these fifteen different SaaS services, and now you've got a web application. I think it really helped drive the massive amount of new develop

helpers who were starting with offic scripts in their first language. But in the last couple of years, as React has got more and more complicated, bigger and bigger, more of a framework and less of a library, there's an opportunity I think for Ruby to take that advantage back. And one of the worries I have is that we might miss that opportunity because so many of the really experienced developers in Ruby are very comfortable with larger, more quote unquote enterprise

grade deployment architectures. Right. It's like, well, if I'm going to do a web application, I'm going to do it well. Obviously, I need to make sure I have a multi region, high availability postcress cluster that is sharded and using replicas correctly. And I want to have my REDA servers, but I need to make sure I have different REDA servers with different configurations

for the different expiration policies. So I'll have my cluster of three REDA servers, and then I'm going to make sure I put a load balancer in front. And like all of a sudden, you have a network topology that has

like eight machines. And it's not to say that that's like wrong or bad, but it is complicated, right, And if the first time you're trying to get an application, a web application onto the Internet, you have to understand what a load balancer is, how to wire it up and connect it, and how to run three different instances of a rails application, and how just it cascades the complexity and so really driving for a future and where it

is possible to build a rails application and get it onto the internet, like make it real where you don't need the funds that are required to get the fifteen SaaS services in the JavaScript world, and you don't need the you know, minor graduate degree in network topologies to follow the all of the guides for

Rails. But you can get a four dollars a month Hetzner server and you can take your repository and effectively like FTP it up to that server and get it running right, Like that's actually possible at that level of simplicity, I think offers Ruby and offers Rails the opportunity to start winning back some of the new developer pipeline React sort of makes their way into their their second decade and

they're more enterprising stage of their life cycle. So that's that's one of my major sort of goals here is to really aggressively push that barrier to entry for like what it takes to get an application off of your laptop and onto the internet, right to make it really attractive for people to get that first big win, because I think that that's like, that's where you are hooked, you know, when it's like, look, mom, go to this URL.

You can see the thing I created. Like that is magical. And if we can make that as quick, straightforward, clear understandable as possible, I think people will naturally make their way into the Ruby and rails communities as they're starting their careers. Yep, makes sense. Is there anything else it is coming in the future Ruby that you want to point out that you're excited

about. Well, one thing that has come and is continuing to evolve that that I am really excited about is the new prism parser and ecosystem of tools that are coming around that. Yeah. We're talking to Kevin Newton in a few weeks, so yeah, awesome. I think that's that's he's doing really

valuable and amazing work for the future of Ruby. Like when I think about some of the things, like some of the more advanced uses of Ruby that just they just feel amazing to do, Like metaprogramming is one of them. Right, It's an incredibly sharp knife, but like when you wield it correctly, it's like it's very very hard to replicate the power that is available to

you. Yeah, but there's always been that sort of ceiling because there was this natural barrier to the amount of introspection that Ruby had about itself, the amount of information that you could do. And I remember distinctly, however many years ago, this was five, six years ago, maybe more. But there was this moment where code mods in the JavaScript community were really sexy and people were talking a lot about them. And I'm here working in this repository

that has rebocomp and it's great and it's useful. Like the difference between being able to take in an AST, transform it, and output a new version of that AST versus what is effectively a bunch of regular expressions is the difference

between night and day. I mean, it's a massive difference. And I think that as we continue to standardize the parts of Ruby, as we as we build out the ecosystem of tools to take advantage of having that level of introspection into the language and into the code that is written in that language, we are going to open up like completely new vistas of possibilities with what we can do with Ruby. And I honestly can only barely begin to imagine all

of the possibilities. But I think that there's going to be some really innovative and exciting stuff that comes out in the next few years now that this foundation has been laid, So that really excites me. It's very amorphous, because I'm not even sure I have enough of an imagination to see all of the possibilities, but I am really confident that we're going to see really really powerful, cool things come out of that project. So that's that's one that I'm

particularly inspired and excited by. Very cool. Yeah, I'm I'm excited for it too. I'm looking forward to getting into it with Kevin and just seeing what is coming along there. I guess the last question is if people want to connect with you, you know, they have more questions about sequel Light or anything. You know, what are the best places to connect? Yeah, so best place to connect is on Twitter. I am at practled mind.

I if you want more sort of guides and longer ride ups on like how to solve specific problems or get specific features out of sequel Light in a Rails application or in the Ruby ecosystem, I write on fractedmind, dot get Hubbo, and I really am very genuinely interested in helping as many people find

valuable, pragmatic, useful use cases for SQL in their applications. So really genuinely like reach out on Twitter. I've had a lot of people reach out and we've been able to build interesting features to do interesting things or just help them get over that one hump to get to the next stage and what they're trying to do, and I'm always down to help out, so feel free to DM me or just tweet at me, and I look forward to chatting with anyone and everyone. All right, sounds good, We'll go ahead and

wrap up. Thanks for coming and jumping on and until next time, folks, max out.

Transcript source: Provided by creator in RSS feed: download file
For the best experience, listen in Metacast app for iOS or Android