00:00:15.040
One of the defining characteristics, I think, is the spice that's part of this community. So, you know, the thing that I would love to start with is if each of you would run the other's project for a day, what would you change?
00:01:09.759
You go first. That's a wonderful question. I think the first thing I would do is I would make a Ruby Constitution where declaration number one would be: no static typing for us. Okay? Woo! But don't worry about that! I don’t know. I try to make everyone happy, at least in programming. And yeah, we have been making it true for the last two or three decades.
00:02:00.280
I find so remarkable the time scales that you both play in. I mean, I know the panelists shouldn't include themselves, but you started Ruby 31 years ago, right? That's about right. You started Rails 20 years ago. Shopify started 20 years ago as well! This is an industry where ADHD is a lot bearing in technology. You know, I think the average tenure is 18 months. How does this work? How do you think about that? Why has this had such staying power?
00:02:34.720
I think for me, a big part of it is simply not finding anything better. And it hasn't been for lack of looking; I love technology. I love investigating new patterns, programming languages, and frameworks. I try to do like all great artists and steal the best ideas. After having stolen all those ideas, what I have found is that there's nothing I would rather work with. So, it's not necessarily even that there's a commitment to do Rails or use Ruby for the rest of time; it's simply the reality that nothing has emerged that's better, more satisfying, or more fun. I'm here because this is still legitimately for me the best environment, the best ecosystem, the best programming language.
00:03:39.040
Whoa! Yeah, I’m pretty much a selfish person, so I design Ruby for myself to fulfill my preferences for a programming language. I know there are so many programming languages out there, from older ones like Alice and Smalltalk to newer ones like Elixir and Rust. Yet, still, Ruby fits my preferences best. Probably accidentally, many of you feel similarly. That's probably the reason you’ve stuck with Ruby for a long time.
00:04:45.160
There's a lot of self-confidence required to make something authentically yours. Like Ruby feels like a book that was written by a single author; it just has that feel when using it. I think that's remarkable and rare. However, a lot of people send you feedback saying, 'Why don’t you have static typing and so on?' How do you react to that when that happens?
00:06:00.720
I understand the benefits of static typing; we find the type errors are here. But still, writing types explicitly is not for humans, I believe. Nowadays, we have very smart computers and AI, so we can probably push those burdens to the computers. In these AI days, we can have smarter assistants and treat them like slaves. We tend to pass the very fun part of programming to our assistants, like writing code, but I don’t want to give that part away.
00:08:11.319
Yeah, I feel exactly the same way. I’ve had many questions about AI taking over everything, and I always respond with the sense that I’m already writing code because I enjoy it. If I did not enjoy it, I would find something else to do. There are tomatoes to be grown, airplanes to fly, or something else like that. But I keep coming back to programming because it’s simply one of the most fun human activities that I know, and I don’t want to give that away. I don’t want to trade it for productivity or outcomes.
00:09:43.120
I think one of the reasons Ruby is the perfect programming language for me is that, as you say, the language feels like it was written by a single author. Yet, I get to ghostwrite the version of Ruby that works best for web applications, in a way where it doesn't feel like there’s a step function difference. You adopt methods into the Ruby programming language, and they look the same as the ones I put into ActiveSupport. There’s not actually a hierarchy in language design; I get to ghostwrite at the same level that you do.
00:10:55.840
Ruby is pretty much an open programming language. We can monkey-patch pretty much everything—like in other programming languages, you cannot add methods to fundamental classes like the string class. But in Ruby, you can add your method and say 'string is blank' or something. That kind of openness is a very important characteristic of the language.
00:11:59.559
What I find so appealing about that notion is the level of trust that you, as the language designer, are willing to give to the user. Yes, you could override string and existing methods that would mess everything up, but you're trusting me as a user not to be foolish. You're trusting me to use those very sharp knives to make some delicious mix-ups. You believe it's actually better to allow me to occasionally make a mistake to learn from it.
00:12:15.880
One of the reasons I initially fell in love with Ruby was that I saw an interview with, I believe, James Gosling, the creator of Java, essentially stating that Java was designed from the outset for little people, for stupid people, for the average programmer. Therefore, the language had to be child-safe, it had to have child gates over everything, and it had to have round corners around everything so we don't hit our heads. I thought, you know what? That's such a patronizing way to design a language. I want no part of that.
00:12:52.040
It's amazing how Ruby has, over the years, been called a toy so many times. Wait, aren’t you the one who needs the language that's baby-proofed? So yeah, if the world’s mad, it’s like everything’s upside down! I think this is actually real in this community too—most people operate that way. They want to know what everyone around them thinks so that they can do this too.
00:13:20.800
Somehow, you two are immune to that. You literally said on stage that you distrust what everyone does; you try to rederive it from better principles. When did that mindset kick in? Was that there on day one of starting these projects, or did it develop along the way?
00:14:20.960
For me, part of the reason is that I grew up in a small country, Denmark, that is isolated, a little bit like a bubble, because we speak Danish, and only about six million people in the world do. It creates an island for developing ideas where you're connected to the outside world but not in it. That's where I prefer to be.
00:14:32.720
The more I feel like I’m soaking in the whole world, the more I feel my ideas of what’s right or wrong stop being authentic. They stop being mine and easily just become regurgitated versions of other people’s ideas. I don't want that; I want to protect my original ideas.
00:15:10.960
I think the same is true in business. The business I got involved with was founded in Chicago, not Silicon Valley. That geographical separation is really helpful, and I try to maintain that now. It’s much harder today, though. One of the things I've said recently is that I pity entrepreneurs today who are forced to have access to everyone's brain 24/7 on Twitter. That is a curse of epic proportions.
00:15:38.760
I feel similar to you. I’m fundamentally a minority because Japanese is a bit bigger than Danish, but it's an isolated language and culture; we are isolated from the Western countries. Especially 30 years ago when I created Ruby, the tech people and programmers were a minority in Japan. For that reason, I've always been used to being a minority, being Asian, being Japanese, and being Christian in Japan.
00:16:19.600
Ruby is still a minority compared to JavaScript or Python, but I'm very happy with it as long as we, the community, are happy with Ruby.
00:16:53.760
There’s an emerging theme here about separation. It’s interesting because often things are defined by what they are not rather than by what they say yes to. If you say yes to everything, you're part of a mainstream that is largely what the mainstream is. Like genetics, if you talk with geneticists, they understand propagation, but ideas are mimetic and resemble the spread of DNA.
00:17:14.760
You know, this idea came to Charles Darwin on the Voyage of the Beagle only when he got to the Galapagos Islands. It just seems so curious that we're talking about this outsider perspective, and about how Ruby literally comes from an island. How important is Japan, and that physical separation, to being able to make something that is so internally consistent and separate over such a long period of time?
00:18:02.760
I’m not sure about the connection between isolation and characteristics, but back in the 90s, Japan was more isolated than today. We had smart people, but they were surrounded by language barriers and cultural barriers. Not many Japanese people spoke English, yet there were so many smart programmers working on technologies. Ruby was born from that circumstance.
00:18:31.680
After Ruby, Japanese engineers started attending foreign technical conferences outside Japan. Now we have much more communication outside of Japan. I believe Ruby's existence has helped Japanese engineers look outside. Many of the Ruby contributors are Japanese.
00:19:08.800
And, despite the language barrier, the intelligence of Japanese engineers is now exposed to the outside world. The original garbage collection systems were written by Japanese engineers, which is my honor. But at the same time, many other engineers from outside of Japan, including those at Shopify, help us improve that communication. Ruby was originally a language from Japan, but it's now a language for all over the world.
00:19:45.760
I think the aesthetics of Ruby feel recognizably Japanese. If you put Python, JavaScript, and Ruby on a screen and asked people to pick which one is from Japan, there's a good chance they would get it right. There’s a deep appreciation of craftsmanship that is part of Japanese culture, which is not causal but contributes to Ruby.
00:20:26.720
David, you’re from a small island in Denmark, right? So, does geography matter? In terms of isolation, it provides a shielded environment to come up with authentic ideas that aren’t heavily influenced. However, the connections allow those ideas to be distributed. I think that's what happened with Ruby.
00:21:14.720
You had a long incubation period—maybe 10 years—where Ruby was mainly a language used in Japan. That allowed its conceptual integrity to be strong. By the time it reached the Western world, you weren't going to let me or Toby or anyone pull Ruby into a direction that wasn't coherent with the language.
00:21:54.760
In the early stages of Rails development, I did not want to release something until it had at least a soft shell around its conceptual integrity. I know what happens once you introduce ideas into the broader world: everyone wants a piece. That undermines the principles and creates something bland—not aesthetically pleasing and lacking internal integrity.
00:22:32.720
Isolation really works early on while you’re honing your vision. However, once that’s been achieved, it’s important to share ideas and improve the technology.
00:23:07.920
It’s a little bit of a membrane; you get to look at ideas. And to continue the island metaphor, we have boats going back and forth, trading good bits. Shopify adds a unique perspective, as it’s a large-scale user of Ruby, with different fitness requirements and pressures.
00:23:45.840
That's beautiful because we have strong opinions on static typing on our island. It's valuable to have tools to get what you need. We have the diversity of different pressures and cultures, allowing us to retain our Aesthetics over a long time. This is a source of unacknowledged good in our community.
00:24:30.720
Ruby, from the beginning, has always been beautiful, and that’s why we use it. Many places have competing ideas that create discomfort, where we're forced to use something. Ruby is not one of those. When you choose Ruby, you're aligning with a community with shared values.
00:25:09.440
I don't know much about JavaScript, but it seems to be everywhere and its growth has resulted in many frameworks and tools. However, I respect the minds of all of you in the fast-changing web world. It’s challenging; you guys have to keep running twice as fast just to keep up.
00:26:00.400
The interesting thing is that the web world has gone through incredible changes. For example, Craig's List still works, yet older technologies are facing inertia. You have to commit to foundational technologies to make investments that pay off.
00:27:20.960
Many newer technologies are inconsistent and don't yield returns or create value over time, which limits investment. Yet, technologies like SQL and Ruby have remained consistent and relevant.
00:28:08.000
The Ruby core team and the Rails community continue to evolve, though keeping Ruby true to itself is a balance that is difficult but fun to navigate.
00:29:23.920
I believe in investing in what makes sense in the long term. The effort to compress complexity within Ruby and Rails is to get down to core fundamentals that do not change. It’s all about finding stability in the foundations of our technologies.
00:30:23.720
This effort to enhance Ruby while keeping its integrity is like crafting a fine wine; it takes time and patience. At the same time, we make improvements; it's essential to respect the language's foundations and community.
00:31:08.080
I agree that community is key. We're not forcing people to use Ruby or Rails; we want them to choose to be part of this enthusiastic community. It’s about creating a space where people feel welcome and valued.
00:32:10.640
What’s important is that our community continues to thrive based on positive decisions and integrations. We should be proud of the exciting progress we can achieve.
00:32:47.240
Creating something meaningful together, nurturing our values, and understanding others’ perspectives is what makes Ruby special. We're building something necessary and high quality.
00:33:01.400
As we move forward, we do this by ensuring strength and consistency within our projects, while allowing our diverse community to contribute in ways that resonate with them.
00:33:09.880
Mattz and David, you both changed a lot of people's lives. I want to thank both of you for your immense contributions to the community.
00:33:22.480
Thank you both for inspiring us to reach much higher than we would have otherwise. Your incredible, gracious sharing of knowledge continues to enrich our community.
00:34:26.640
In the spirit of gratitude, I want to present Matt with a lifetime award. Without Ruby, there would be no Rails. Without Mats, there would be no Ruby.
00:35:13.560
This is my first trophy in my whole life! Thank you so much!