FLOSS-871

Jonathan: This week we're talking with Florian Gilcher of Ferrous Systems about Rust, Rust in the business, Rust in the kernel, the history of Rust, and a whole lot more. You don't wanna miss it, so stay tuned. This is Floss Weekly, episode 871, recorded Tuesday, June the 16th. Rust won't save you

It's time for FOSS Weekly. That's the show about free, libre, and open source software. I'm your host, Jonathan Bennett, and today we're gonna get rusty. And that's because we have Florian Gilcher, the the man, the managing director, the co-founder behind Ferrous Systems. Ferrous Systems, Rust, you see what they did there?

Anyway, he has been doing Rust since 2013, which I think is before Rust existed as it exists today. Wanted to make sure and ask about that. He's a co-founder of the Rust Foundation, been a core team representative, and done a lot of other really interesting things. We're mainly gonna talk about Ferrous Systems, but you can believe we'll get a lot of Rust questions in.

I'll probably tease him a bit about rewriting things in Rust and the way the internet seems to be crazy about that. Without any further ado, let's let's bring him on. Florian, welcome to the show.

Florian: Yeah, hello. How are you doing?

Jonathan: I am great. It is good to have you here today. So you are, let's see, you're a German citizen.

You're from Germany. Yeah. But you're not in Germany right now, are you?

Florian: I'm currently in the UK at ACCU on C, which is the merger of the ACCU Conference and the C++ on C conference. So I'm currently over at the other side, essentially. I've been giving a Rust workshop there, but I have very good conversations with C++ folks all day long.

Jonathan: Okay. That's a, this is an interesting topic to to touch on first. How well or poorly do you get received doing a Rust conference at a C++ convention?

Florian: Oh, very well. Okay ... it's actually in subject. The ACCU reached out in 2016. That was right after Rust 1.0. And the Russell Winder, who ran the UC- ACCU conference back then actually had the stance of ACCU, which is the Association of C and C++ Users, I think.

That's what it stands for in the UK. Thought about, "Okay, how do we deal with the fact that there's new systems programming languages coming up?" And their choice was, "Oh, it increases our relevance. They should be here, and they should be talking at this conference." So there's people from Swift here, people from Zig, and I think that's very much true.

And the reception in the C++ space was generally good. Whenever something like that comes up, there's people who, there's naysayers on both sides. I know a lot of people on Rust that say C- C++ is gone now. And I think nothing could be further from the truth. Still very relevant. And I think most people will just be like, "Oh, ah, it's good that you're here.

Let's talk. Let's exchange opinions. Let's see where all of these things are going." At a- Sounds so cliche, but yeah ...

Jonathan: at a conference like that, you already have the subset of, C++ and C users- ... that can be together at the same conference without killing each other. You know- Yeah

You're halfway there already,

Florian: I was sitting at a table yesterday with someone from the C Standardization Committee and someone from the C++ Standardization Committee. I won't say anything they talked about, but we had a lot of fun. That's

Jonathan: fun. Yeah. All right. So Ferris Systems, obviously it's a play on Rust.

What is Ferris Systems and what do you guys do there?

Florian: Okay, so Ferris Systems is one of the first companies that provided services for Rust. It actually comes out of... I was, just to answer that question, I was part of the Rust community before 1.0. 1.0 was May 15th, 2015. And I was part of, I w- I was doing training for Rust back then.

I w- I had an old company, another company that was dealing with Ruby, also doing a lot of open source there, mostly applying it, less building it. And at some point someone just came up and said "Hey, could you do a Rust training maybe?" And so I said I could probably do this. I'm equipped for that as good as anyone else."

Started doing that, and in ... Slowly started also offering Rust as a service, and in 2018 a number of larger clients came around. And so things like, "Hey, we're build- we're using Rust. We're a hyperscaler. We're using Rust internally." And I was like, maybe a second company makes sense at that point.

Jonathan: Yeah.

Florian: And on the other hand, so what I always wanted back then was also for the spread of the language to make sure that, for example, all of our training material is open source, because I wanted people to apply that and to spread the language. And yeah, that has turned into now a major operation.

We're more than 20 people serving customers from, I always say from Japan to California which is-

Jonathan: Everywhere ...

Florian: a blessing and a curse sometimes.

Yeah. Yeah. But, The

Jonathan: time zones. Time zones are interesting ...

Florian: yeah, that's what we do. Yeah, it's mostly the time zones that are the blessing and the curse, yeah.

Jonathan: Yeah. Yeah ... do you guys have people in the various time zones? So like you're not the only one answering emails in the middle of the night?

Florian: Yeah, this the first growth phase of the company was during the pandemic, so we're people call it remote first. We're, ... This, it sometimes takes a year before I see a new colleague personally.

So yeah we're distributed mostly time zone-wise Berlin to Californian time zones-

...

Florian: Mostly.

Jonathan: I've got work colleagues, I've got work partners that I haven't met yet, and we've been doing our business for over a year now. It'll be, ... i'll meet a good portion of them at DEF CON for the first time, and then later this year- i'm going to Europe and I'll meet a- another, at least one hopefully he'll make it, another one at a conference there. It is, it's fascinating to have, people that you know so well, you have business relationships with, and never meet 'em in, never met 'em in person. We just know, we're just- internet friends. It's such a, it's such a wild thing. I- Go ahead ...

Florian: it's the same in open source projects. I find that quite interesting also when I was part of, of- Absolutely ... a team lead there. It's you have such a wide diversity also not just of where people live, but also some people are just there for an hour a week.

For some people it's their day job.

So it's completely different to manage and a lot of different concerns to just get get under one hat.

Jonathan: Yeah, absolutely. So Rust, Rust was a very- ... different language, and I alluded to this in my in my opening intro. Were you around for some of this transition from, and this is my understanding.

You obviously, you can tell me that I'm wrong, and I will not hate you for it. But my understanding is that Rust started out as an academic language and, was, was- ... almost like a toy academic language at the very beginning. And then people said, "Oh, this is really interesting."

And then, you have folks like Mozilla picked it up and said, "We could actually take this and turn it into something really useful as a system language." And so like the Rust 1.0 is quite a bit different from the Rust that the the academics were using before that. Is that accurate, first off?

And second, were you around for some of that transition?

Florian: I was around for the end of it- ... basically. So but some of the pretty big changes. So I was around when it was still three days later, the language could be completely different, where some syntax has changed, was added, was removed.

So it, it's between, it's that. It always came out of Mozilla. It was a plaything of a Mozilla engineer for a while. And at some point, Mozilla Research picked it up as a proper project. And the interesting thing I found about Mozilla Research, and this is from an outsider's perspective, I was never part of Mozilla Research was that they had a very good vibe of we are doing research, but we are mostly doing research application in the sense of that Rust is based on a lot of things that came out of programming language research in the '90s, in the up to 25 or something like this, or a little bit later, plus some things on top.

So things like the borrow checker and things like linear types that are the b- foundation of the type system had already been researched. No one has put that into a language yet. And so there was, before the 1.0 release, a huge group of people that were also using this language to try out things. There's a really good talk by Marjin Haverbeke at my first Rust conference as the closing talk.

The Rust That Could Have Been, where he talks about all the features he has tried out that were all removed. So there's none of the features he tried out on the language were put into the language. And he went on stage and said, "And it's actually a better language for that." Yes that time existed, but at some point It, y- people found, okay, there's something here.

We really want to industrialize that. So there was this phase of, And that was the time where I was mostly around. And that more as a community member than an actual project member from 2013 to 2015, where they figured out, "Okay, let's actually make this a systems programing language. Let's make it play in the C and C++ space, and let's actually release that."

So the 1.0 Rust release is very imperfect in hindsight, but it is a release. And,

Jonathan: Every, every 1.0 release is imperfect in hindsight.

Florian: Exactly. And that was the thing that drew me in. There's this, they, this vibe coming up of, oh, we could actually do something here. Also, just to be clear, I think there was, it was the vibe in the room back then.

It was not that surprising that Apple shortly later came out with Swift. So a number of people... That, that's what I meant, is like the, this observation that I gave earlier systems programming was becoming relevant again was very much in the air. So I always say Rust's success is not only the success of Rust, but also the success of making the topic relevant again.

So it's also the ocean in which you swim.

Yeah.

Jonathan: Yeah. That's an interesting point. You mentioned, so I'm gonna ask you some questions just because Rust- Sure ... and I have Rust questions. Y- or maybe I'm gonna rant about things. Y- you mentioned making Rust play with C and C++, and there's a...

I see it as a problem. Maybe this is bec- because I come at it from a different background. I don't think that Cargo works very well with integrating with C and C++, and I feel like maybe the kernel has had that problem, too. I've mused before that the worst decision the Rust guys ever made was packaging a, putting a package manager as part of the language.

Tell me how I'm wrong. I

Florian: say, so first of all I have a very long rant about package managers for on, on Linux distributions because I'm from the Ruby space. And we suffered so much with package managers that had their own opinions that were like just aggressively against what their community was doing.

So if you think Cargo looks like Bundler, that's because it's actually from the same author. And I think some of that- some of that actually shows up in Rust a little. I think the good decision that Rust has made is that Cargo drives the compiler through its public interface. Okay. So you could, you can replace Cargo, and this is frequently being done.

Google does build their Rust stuff with Bazel. Facebook has written their own build tool called Buck2 actually in Rust. So this is it is not uncommon that people replace Cargo. I think Cargo wants to own the world and wants to own the project is very much true, and if that's not what you want then then th- those stresses show up.

Yeah. I d- I don't think it's an... it's an okay reading. I think though it has made Rust successful in the sense of it brings this mode of development to the systems programming world built by people who have actually had experience. It's very much a, it's very much lean, like some- something we took from the NPM and Ruby ecosystems, just to be clear.

And that may sometimes feel a little bit off. This is an, like just one more sentence. This is another observation that p- I have about the Rust community. R- the Rust community has an interesting mix of systems programmers, but also people who went from scripting languages towards a systems programming language, and that sometimes leads to an interesting mix of concerns.

Jonathan: Sure. Yeah, absolutely. Has Rust experienced any of the security problems with malware packages that NPM is famously having just about every day? And, now we see it in other places like the Arch User Repository is having quite a moment- ... with malicious packages. Has that happened in Cargo and the Cargo package backend yet?

Florian: Let me put... just to be clear FOS systems used to operate or would be the on-call service provider for Cargo, so I need to make sure that I'm know what can share. I can definitely just say the, first of all of the package managers actually have forums in which they talk about these things and are observing- those attacks. Most of that is not happening in public for obvious reasons- Sure ... because it gives the attackers the up. Cargo d- has experienced some of those attempts. We have definitely also seen people just taking other people's code, republishing it ripping the open source license off, putting their own name on it, and all of these things.

All of these things happen on crates.io as well. It- I don't think the situation on Crates.io is in any way that bad. I also don't think the situation on npm is that bad. Most of the time those things are smelled out and removed relatively quickly. You just need to be aware that you are using a live service.

This is actually one of the things that we're offering to customers, is we're saying if you don't want to rely on a live service where these things may happen all the time we can offer you, for example, managed crates hosting, some ways of ingesting the crates that you want that are relevant in a semi-automated fashion.

Jonathan: That's interesting ... but of course, Like a cur- a curated list of safe crates- Yeah ... and not- Yeah ... immediate updates and-

Florian: Yeah ...

Jonathan: some probably a combination of automated tooling and some human eyeballs to look at things. It's, it's- Yeah ... it's pretty interesting.

Florian: And but that is, for example, a place where the more slow-rolling model of distributing these things with, for example, your Linux distribution definitely is not that, that much subject of you...

I cannot hack Debian by just uploading a package somewhere. Someone needs to make an active move of integrating it into Debian, and that's already a first line of defense. Yeah.

Jonathan: Yeah. N- not to say that it is a perfect line of defense. Yeah. Because XZ did happen.

Florian: Yeah.

Jonathan: Now that's, that is- Yeah

essentially the same sort of attack, and it's just, it's a demonstration of how much more complicated it is.

Florian: Yeah. Yeah, but you mis- ... So one of the things that I have as an issue sometimes is w- it's so easy to point to XZ, making it into Debian and saying, "Hey, the Debian model is broken." No, it isn't.

It's a human system. Failures happen. There's a, this... if this doesn't happen all the time, I- I...

Jonathan: Yeah, absolutely. Yeah. I would say that the fact that it, that only one pack- that we know of, only one package made it in and it got- ... caught that quickly is, if nothing else- ... it's a vindication of the Debian system.

That their-

Florian: Yes ...

Jonathan: it works and their paranoia has some basis in reality.

Florian: Yeah, definitely. Definitely. Oh. Yeah.

Jonathan: All right. Yeah. What... So going back to our road map here, and we just, we touched base on it just a moment ago, but when someone is looking at Rust, what are some of the things that they're gonna worry about?

What are some of the potential problems with Rewrite It in Rust?

Florian: I don't think most people take a problematic stance at adopting Rust. They usually adopt Rust because they already have a reason with what they currently have.

Jonathan: Right.

Florian: You rarely make, you rarely migrate away from something that works for you.

So they're more looking at what are the benefits than they're looking at what are the costs. In- interestingly- ... having been both in the growth phase of Ruby and in the growth phase of Rust 15 years ago people would be more like, "Come on, it's a nicer language. It has nicer syntax.

Let's go." Nowadays, the questions you need to answer is will I break bank by, in the migration? With that, we've seen multiple companies actually go down in- ... between 2010, '10 and 2020 by just dying in, in a rewrite. Like this, it, it even became a topic, should you even do rewrites or not? So what are the benefits?

And then it's usually operational concerns. How do we actually integrate the technology? The question, do we rewrite or do we not? W- what's the benefit? What's the disadvantages? If we're not rewriting, how do we integrate our old code base? Is that possible or not? And there's always also the question, I think that's something even even though my business is obviously in, in the Rust side of things we've had a number of clients where in the end our advice was probably- Don't do it

you should first get someone... Yeah, you should first get someone to look at your current code base and maybe fix the issues that are in there. It will probably be more effective, ... in, in the immediate, And that's the other problem. If you're, if you already lost track of your software product, to be honest, the rewrites become more hazardous because you don't even know what they should do.

You're just adding another problem to... It's a problem. And just to be clear, if you're in the services consultancy business you're never called when everything's in order.

Jonathan: That's Indeed.

Florian: And that, it, that's okay. There's like very often you have very successful companies who are like, "Okay we got successful overnight and we need help."

So it's that, it's- Yeah ... it's- Oh, that's... Yeah ... I always take the stance of very few companies ended at the place where they are out of incompetence. Mostly it's competence, but also y- you know, you can only do that much in a day.

Jonathan: Yeah. It's that, it's

Florian: that- You only know about so many things.

Jonathan: It's that combination of like just the inertia of what you've done, the fact that- something has snuck up on you, whether it's your growth or just the passage- ... of time has snuck up on you. And then suddenly you look down in your code base, it's "How did this happen? How did we get to this point? We need some help." I, I find it interesting, and maybe something like this will be the show title, but Rust won't necessarily save you.

It's not gonna- ... fix all of your problems.

Florian: Of course it will, but, but yeah it is it is something definitely where there's also, there was also a hazard when we grown Rust, and that was actually something that we, I was not only part of the core team, I was part of the community team and very much in lead there.

And community team sounds so... You're basically the outside representatives. It, it always sounds like these are not the real core engineers of the project.

Jonathan: Yeah.

Florian: Quite the other thing is true, because you need to be so up to speed with so many technologies- ... because someone comes at you and says "How does Rust work on a GPU?"

And I'm like, "I know nothing about GPUs, but maybe I should read up quickly." But there's always... you develop this feeling for, are people just there for the why, but do they have an actual problem? The other thing is that we always told people is, "Don't speak to people who currently don't perceive any problem.

It will not be a useful discussion." But if someone says, "My current software stack, I really don't like it," then there you can make an offer. It sounds like marketing. I'm actually... I would actually open s- have open source projects to be more okay with doing marketing, but doing marketing in the sense of a friend of mine once said, "If you're not talking about a good thing you're doing, you're depriving people of the ability to use it."

Jonathan: Yeah. Yeah, absolutely.

Florian: And marketing on that level, not marketing in the sense of advertisement tracking and so on and so forth. And I used to work in advertisement. I know where the bad rep of advertisement marketing comes from, and it's very- Yes ... I g- I very much understand why people hate it. It's more like the go to conferences, go to a C++ conference, talk to people and be serious about your project, but also be serious about what they're doing.

Jonathan: Yep, yep. Absolutely. Have you found any places where there's a, I don't wanna overstate this, but let's say friction or problems trying to make the business case and the business side of things work with the community side of things?

Florian: You mean yet now company-wise or,

Jonathan: So i- I mean it as an open-ended question, but you talk about being- both a core engineer and a community engineer and the- ... the difference between those two. And, either in that, those roles or now- ... into the business side of things.

Florian: I would even say these things are always conflicting. I cannot just personally I can't, I cannot spend as much time at community events as I want because I- kinda have to,

Jonathan: Maybe a

Florian: business to run ... to run my business.

Jonathan: Yeah. I see

Florian: that. Yeah, but also needing to represent a business. This is actually one of the reasons why I why I left the Rust Project was- ... quite simply because I was in calls where people would ask me "What's your stance on this?"

And "What's your stance on this as the director of the foundation? What's your stance as this, as the director of Ferrous Systems? And what's your stance on this as a core team member?" Because I was representing the Rust Project at the foundation, not my business. And that's a constant friction.

It's a it's a... it's not that much of a problem. It's a conflict of interest. It's an open conflict of interest.

Jonathan: Yeah.

Florian: I don't think conflicts of interest are in any way a problem. It is you need to be in a meeting, and you would then need to say, "This is a business meeting between you and Ferrous Systems.

I don't represent the Rust Project there, so the only opinion you can get out of me is- ... mine. I can tell you the stance of the Rust Project. The stance of the Rust Project is this one." And they sometimes diverge, and that's fine. The other problem is obviously on any pro- project I was experiencing that hard when I was running the Rust Allhands.

You have... So the Rust Allhands the first ones were a one-week meeting where people finally met. And for everyone who was d- at who was contributing to Rust as a hobby, that was a week of vacation. Qui- quite literally they could go to their boss, and sometimes their boss would be like, "Okay, go there.

It gives you five days for going." So they were like, "Finally, I have one week where I can only do Rust," and it was their first week where they could do that. And on the other side, you have people who are full-time employees and who are like, "Oh my God, that's the 70-hour week," right?

And- Yes ... th- these Those are problems, but they're inherent, and I think you need to be very open very open about them. But that, for example, also meant, and you do need to find your way around this. The community mailing list that I was managing at the Rust project frequently got requests for trainings, which was my business.

So the community team internally had a rule of we have a list of training providers. Training providers who are in the community team will not reply, and we will send out a structured list as, "Hey, by the way, these are all the people to call," so that I, that we don't snatch business out of the project just because we are at the right, because we have access to the right email address.

Jonathan: Yeah.

Florian: And the Rust project is actually quite good about having these things sorted. Yeah.

Jonathan: It sounds like, and maybe you have been a part of this, but it sounds like there's some people involved in that project that understand the business side of things and understand the- potential conflict of interest and the- ... sane ways to handle that.

...

Jonathan: It's k- it's refreshing actually that an open source- ... project that is also a business is not a train wreck.

Florian: Yes. I actually- Thank you for that. That comes from also you may have observed that the Rust project has absolutely no problem with being political.

And I don't want to be divisive there, and that sometimes leads to conflict, just to be clear. But that also means you have people there who say these things, like these are in a way political problems. Like we often put political problems more in the social side of things. But this thing like corporate politics and all of these things, and you have a lot of people who are actually well-versed in that.

You may agree or disagree, but yeah. Yeah.

Jonathan: Yeah. I've taken the stance over the years that an open source project should try to stay out of the politics and culture wars as much as possible. And I know like even that in and of itself is a political/culture war statement, and I acknowledge the irony of that.

But that's just where I've come to with my projects. Like I'm not going to- Yeah ... put a statement out on what I think of any politician or... And I don't think- Yeah ... in, in my opinion, it's not the project's place to do that. I think it's a distraction. But at the same time-

Florian: Yeah, but no and I didn't even want to to go there.

That's a whole other discussion for a whole other - Right ... I just think like that sometimes I think people would wish those things wouldn't exist, and we could run a successful open source project that runs a new programming language without having corporations involved.

And if, I've literally been in discussions where people express that view. Yes. And the problem I see there is if you're not set up for these companies have goals, and they have set these goals internally, and they are on your project because they want to fulfill those goals. And like that level of, hey, they're, this person might make that statement because it's their goal setting internally at their company, even if they personally disagree, that these effects you can't argue those effects away, and you need to deal with them.

That's all I'm saying there. Sure. And the Rust project has been, from the beginning, very much aware of these effects. That's and I personally, that, that's my view. I actually feel that under a political mindset in a, in the sense of how I operate in my brain. That's all I want to say.

Jonathan: No, that's fair. That's fair. Yeah. Let's talk for a minute about safe Rust.

Florian: Yes.

Jonathan: And and there's this feeling among some people that, "Oh Rust is safe. It's a memory safe language." Which, yeah. That's great, unless of course you use the unsafe keyword. ... But then you have in the regulatory structure and the safety, like safety engineering structure, something being safe has a different meaning.

Is there Rust in cars? Does Rust run airplanes? In those serious positions of safety engineering, has Rust made a foothold there, and what does that look like?

Florian: Yes. Mostly in what's called quality managed or a little bit of mid-safety at the moment.

The overloaded term, like, of safety is obviously a problem.

Rust says it's memory safe, and there's a very clear definition in the language what it actually considers memory safe.

Jonathan: Right.

Florian: Rust on the other hand also has a culture of correctness, I would say. People go to great lengths to use other facilities of language to make sure something's correct.

We also have a strong type system. We have a type system that does not have that much baggage, because w- it's a new language. That's that comes with that fact. And we see a lot of interest in regulated industries. Like a lot of the things we're doing is automotive, but also a lot of, industrial safety. Where the definition of what safe software is it's also different. It's usually called functional safety. So in that front, it's more it's less the... So memory safety is a part of functional safety because it could impact the functional safety of my tool, but it's so much more.

It is- ... even things like this plane will not take off at under 230 miles. And your software needs to deal with that. So a lot of outside requirements actually being put into software. The speed is completely random. I don't know what the normal takeoff speed of a 767 is. We're

Jonathan: not aeronautical engineers.

Don't quote us on that.

Florian: Yeah.

Jonathan: I went to the I went to the most recent Ubuntu Summit, and one of the speakers there was talking about trying to use the Linux kernel in that sort of- ... safety engineering sense.

And the I don't remember what company he was representing. I wish I could remember that.

But anyway he was talking about the lengths that they were going to try to re-engineer the kernel in such a way- ... that it could be considered safe for, like- ... automotive use or some of those industrial uses. And it was- ... it was eye-opening, like the lengths- ... that they were talking about having to go to, to- and again, not just memory safety, but, you also have real-time guarantees and other things that- ... that have to be considered. It's a lot- ... for these really regulated industries, but also the ones where there's a, there's engineering definitions of what it means for something to be safe.

Florian: Yeah. So the interesting thing I like I have not spent most of my career in safety critical. And one of the things I liked when moving over to it is first of all, one of the things I find interesting is that there's a lot of things that would've been done for high safety software that are now table stakes.

Big open source projects are practicing methods that are definitely on the level for safety. But the one thing I like in safety engineering is that the currency is the argument. You can basically do anything, like obviously not anything, but they're open to quite a lot of approaches.

What they're also interested in is you also bring me the argument why you think this is safe, and what the safety standards actually say is, here's a number of basic techniques that we consider helping you towards that goal." So standards are not just checklists, but they're also a source of inspiration.

Actually the the avionics standard, the DO-332 has a very good list of this is what can go wrong in dynamic memory allocation and the things that you should look at. Sadly, that standard costs I think $300 or something like that, so most people haven't read it. I can actually recommend reading it.

It should be ... we could teach this at university. It's also not super magical in that sense. Yeah.

Jonathan: It I went and looked it up. It was actually an Nvidia employee talking about ASIL B qualifications for Linux. And yeah. Very interesting. If somebody wants a quick primer on like this safety engineering stuff, that's actually a really good talk.

He did it in just over 20 minutes. It's actually a really good talk- ... to check out to get an idea of what all is involved with that. I found- Yeah ... I found myself sitting there listening to it going like I I'm a software rebel. I tend to not believe the different "This software is secure."

E- I've heard that before. And when he's talking about, "This software is safe and this is how we prove it," I'm like, "Sure it is, bud." And also "To be safe you have to do this and this," and then it's built into the spec. And it's my rebellious side comes out again and I'm like, "No, surely not."

Florian: On the other hand, I've heard w- when I started in s- safety people were like, "Open source and safety is incompatible." "There's the bazaar out there. We do structured requirements management," and so on and so forth. And so my joy over the last five years is seeing that move very drastically.

The Eclipse Foundation is now one of the biggest foundations in in open source in, for example, automotive. And I'm like sud- suddenly everyone's around. Suddenly there's the BMW, the Vectors, and all of these companies are around and they're like, "Okay, let's consider, like, how many of those open source things can we reuse?"

And actually the one thing I want them, I want to convince them of more and more is then engage in those projects. Like- ... our open source projects would do better if they have a... I don't know if they would do better, but if it's a s- if it's a project that you find so high value that you wanna put it into a car, but you have these f- five things that are missing- the usual mode in open source is go engage, talk to the maintainer, see if they accept it get involved in the project. And I know a lot of people in those industries who are extremely sharp thinkers about particularly the where is my software deployed and what can happen in the physical world around it.

So they, they have such a big mindset of it's not just my TCP/IP connections, it's actually what does the camera see? What can ... w- what's all of the possible permutations that my camera could see, and how does it need to react in that case? So yeah. In the other thing that you're saying though is also very much true.

There's this kind of like safety standards are a catechism and this is what you need to follow, and you can't go left and right. And this is where open source definitely doesn't fit in because someone at the Rust project will say, "Hey, I'm a student somewhere in Ottawa, I'll just do whatever."

Jonathan: Yeah. There, there's another... I forget who originally made this observation. But open source is a license. Yeah. Open source is not necessarily how you run your community. So like you can run, and in fact we're seeing projects do this now for various reasons. You can run an open source project and not accept- any outside contributions. For various reasons there are several projects that are taking that stance, which is wild because it's so different from the way open source has been run. But that is perfectly acceptable with the license.

Florian: Some of our projects, like our we have our own Rust compiler distribution, and that one does only accept contributions from a limited list of people because we're going into liability-

For these things. So we're actually encouraging people, if you want to change the Rust compiler, go to the Rust project. We will vet it later. So it's also, you were talking about conflicts earlier. For us it's a way of staying outside of like not to be a drag on the open source project as well.

Or no, we are an open source, we are an open source project. We don't wanna be a drag on our upstream. And projects I think that's a good thing that projects are thinking more and more about their policies.

And yeah, as you say, open source is just a license in the end. Yeah.

Jonathan: What's the intersection been between Rust and the current AI craze that we're in?

I ca- I say that slightly derogatorily. I've actually pretty much become a convert because it's just so powerful these days. I've written multiple new features by just saying, "Hey, Claude, do this for me." And it's "Oh, that code's actually not bad. Here, let me fix it in a couple of places." It's- astoundingly useful.

Florian: Yeah. I think the Rust community is a little bit tired of sometimes being in the middle of those hype cycles. It was already in the middle of the blockchain hype cycle, and we were- ... we know where that went. And some people were incredibly aggressive about this. So- Yeah ... if you see some pushback just be aware that we just went through a five-year phase of people telling us, "If you don't do blockchain, you'll be out of business in the next three years."

Or you'll be out of job. And now people are coming on, "If you don't do AI, you'll be out of this, out of job for the next five years." So there's part of that the other thing though is Rust is actually quite benefiting from that. There's a-- Because it seems like AI models seem to be quite good at working with strongly typed languages.

We're a strongly typed language. We're in the hype field. We know that Rust is being used in multiple companies internally quite heavily, so there's something coming out of that. So it's also a funding source. The Rust project is- that's nice. Yep. The Rust project right now has struggles or struggles in the sense of they have a debate about what their LLM policy is.

I won't say much on that because I'm- Sure ... I have a number of people who are having those debates, and they don't need someone else going on a podcast I get that, yeah ... stating their opinions. But what I can say is I have seen multiple people who were rather aggressively either saying it needs to be a hard ban or it n- no one needs a policy at all, and that just isn't feasible for that project.

Yeah ... a project of that size or a community of that size needs to position itself. Internally for our safety critical products, we're currently not using any LLMs at all just for the reason that they are still faulty in ways. And in my experience with them, I find, I regularly find pretty outrageous bugs in the things they generate.

And I don't want to be the first person who signed off a piece of software that using an L- an LLM hallucination has run a car into a tree. Yep. That's- Because that will be on me. But it is pretty much in the middle of it just like any other community as well. Here over the C++ folks are discussing that thing left and right as well.

And but one of the things it, again, coming, circling back to the beginning it makes systems programming languages more relevant again because one of the reasons why people are switching to Rust or switching back to systems programming languages is not even the whole safety bits and all of these things.

It's power consumption.

These things burn, like every cycle you burn if you scale it up by a million is, Yeah. Yeah.

Jonathan: It really

Florian: makes a difference. And performance engineering gets interesting again, and this is where LLMs are actually pretty bad. Performant code? Not so much. I have no int- Yeah,

Jonathan: that's- Yeah,

Florian: I don't...

Jonathan: Yeah ... it's an interesting observation. Yeah. We talk about LLMs making lasagna sometimes. They wanna be so, ... verbose and easy to understand it ends up with this really weird layered code. I've also observed that languages that are, like, open source, well-documented, and have a big corpus- out that's easy to get ahold of on the internet, those are the ones that tend to do really well in the LLMs. 'Cause obviously- ... it's got a lot of sources to pull from, and that kind of- ... describes Rust pretty well. So I imagine that the the modern LLMs do fairly well in writing Rust code just because they were able to train on so much of it.

Florian: Yeah. And I used to do, I had a phase where I worked as a, in consulting for a full-text search, particular Elasticsearch. And the... I think a lot of people are very focused on the generative side of the whole thing.

Jonathan: Right.

Florian: Which you can consider problematic, and a lot of people are seeing that as an offense of basically you're replacing the human act of writing, which is I think, very cult- this is culturally pretty a pretty big lift.

On the other hand, on the data retrieval side, I used to it I find it quite impressive and a big step up. On the indexing side of things, it's not that much more than a more sophisticated index. Very regressive view of things, but yeah. Yeah. Yeah. So I'm actually way more interested in the in the data res- retrieval-

Aspects than in the generative aspects.

Jonathan: Yeah, that's, that, that is something that's easy to easy to forget, that there's more to the modern inference than just using an LLM for generation. ... The techniques that have been developed, that there's they have more uses than just a really good chatbot.

Yeah. Yeah. Are you mentioned briefly Rust on the GPU. Is that a thing that people- ... are doing? Can we use Rust to write the LLM and run it right on the ker- on the I guess as the kernel on the GPU? That's how these things work these days.

Florian: That's a long way to think.

Rust actually had a pretty active machine learning community very much in the beginning.

Until Google came along with TensorFlow, which just kills off all the startups- Yeah ... because everyone says "We can't compete with Google." We can't

Jonathan: compete with Google.

Florian: Which I actually don't think is true, but, No, that's not at

Jonathan: all, but

Florian: in the investment market it has that effect. And since then there's, there have always been people who have built Vulcan wGPU implementations and all of these things. The, there's a number of approaches to actually run Rust on GPUs most of them by using a custom compiler backend.

The Rust compiler actually is very well suited for plugging in an, in multiple code generation backends because it used to actually carry multiple code generation backends for quite a while. And but most of... And so there's an active community out there, but they run very shallow compiler forks effectively.

So they build these backends but only on, for example, very specific versions of of the Rust compiler's nightly. But those things are usable. So there's a, there's an ongoing small community forming. The Rust project itself, this is actually something which, but that was a decision that I was part of at the beginning, did not invest much into that just for reasons of you need to focus on something that you can actually achieve and not have you- Sure

things in different pots. It's up and coming, I would be say, I would say, but it's up and coming since about six, seven years. Yeah. Yeah.

Jonathan: Have you followed any, any of the sort of Rust experiments like, and I can't remember the name of it, but the let's rewrite a kernel in Rust. Oh, what is that called?

I can't remember what they call that project.

It's got a, it's got a- It's multiple ... it's got a metal themed name I think, the one that I'm thinking of.

Florian: Redux.

Jonathan: Yes, Redux. That's it. Of course.

Florian: Yeah. I've not followed Redux that much. I'm casually aware of a couple of people using it. But writing operating systems in Rust has been quite common.

There's a number of microcontroller OSs, DockOS, which even has a commercial counterpart now called Oxidos. And all these things are coming along quite nicely. I think for most people a C based OS is currently okay. People are s- first starting to, for example, write drivers in Rust and things like that.

It's also, it's one of those levels where Rust still has to answer quite a few questions. So it's more you need to know the compiler behavior. You're not always sure if that, if it's going to stay this way. You m- mostly will be on the nightly compiler because you want some unstable features and things like that.

Those gaps are actually pretty quickly closing, so I would say in two to three years I would not be surprised if the Rust compiler's fully capable of writing a kernel on stable. Yeah. And yeah

Jonathan: I know-

Florian: These projects are coming along late.

Jonathan: Yeah. Yeah. Yeah. I know that in places like the Linux kernel famously-

Florian: Yeah

Jonathan: Down in the depths of that, there's some really ugly things g- go on, like inline assembly and- ... all sorts of sort of dark magic hacks. Because hardware is hard.

And and so I whenever somebody talks about "Let's build a kernel in Rust, it'll be memory safe," that's not how that works.

You have to do so many questionable memory unsafe things to be able to talk to real hardware. That like I I've asked the question is it really even worth it to do the rewrite in Rust? Are you getting enough out of it? But that's just me.

Florian: There's the second question is should we still work with operating systems from the '90s?

W- the answer may be yes and no, but I think that's a m- are there other designs out there? And then we may write one of these new designs in Rust. We're seeing that in the microcontroller space. So- Sure ... people are actually actively writing new operating systems. The the thing is, I think it's also a misunderstanding of Rust.

Hardware is fun- from the perspective of a compiler, fundamentally unsafe. Memory mapped registers behave randomly over time from the perspective of a compiler. They do things. They don't behave randomly. They obviously behave like the hardware is specified, hopefully.

Jonathan: Sometimes. Some, sometimes they do.

Florian: Yeah. I I... and then Rust's game is much more encapsulating all of these things. So the language gives you facilities to say, "Hey, by the way, this is this is a UART. This is how a UART behaves," and build a safe wrapper around it that is hard to misuse. Eh I would say the thing that pe- people forget about Rust is it als- is also a very strong e- encapsulation language.

And that bit obviously So at the very bottom of the stack, the first question is: how does that hardware actually behave? And it's being answered in C and in Rust in the same way. I am actually, on the other hand, surprised of how many people nowadays, even if it's a nascent community, actually go and say, "We'll write it all in Rust because then it's all in the same language."

So it's more of a... So that reduces the tool set we're, that we're using. I would've expected that we are, we've spent way more time in mixed land between C and Rust. Yeah. But those are... This ends up, again, as I said earlier we're now in a place where organizations that do actually spend money on these things and time, or even open source projects spend quite some time thinking about these things, thinking, thinking these things through before they actually do it.

Yeah.

Jonathan: Yeah. Are there any complications with Rust handling different iterations of an ISA and the different instructions that are available? And I'm thinking of things like, AVX-512 and the... For the longest time people thought, "Oh yeah, that's not very interesting. That's only for data science."

And then someone came along and said, "Hey, you can do string compares with AVX-512." And some of those other things We can make things so much faster now. And getting that, getting support for that in, the C standard libs and the kernel, and then- ... being able to have one binary that can on the fly detect, oh, this processor does AVX-512.

I should use this new advanced string comparison routine. I- is that sort of stuff possible in Rust too?

Florian: Yeah, that is possible. This is something where Rust came after these concerns and C came up, so we can learn a lot from that. The, on the other hand with everything that touches ISA, we're based on LLVM, so- everything we inherit a lot of problems and a lot of benefits from LLVM. And if, for example, LLVM is not as well, as good in using some of these instructions as, say, GCC, you're out of luck. Or y- you can always hand code things not only in assembly, but also, for example, by using compiler intrinsics by saying, "Hey, please insert these instructions here and there."

But- ... it becomes very detailed. Yeah.

Jonathan: Yeah.

Florian: Yeah.

Jonathan: I was intrigued to see that same process happening in, in RISC-V, which we're gonna- ... we're gonna talk to some RISC-V people here coming up in the next few weeks. Cool. They, I think RV23 is what they call it, and that's their essentially next version of the ISA that's got- a bunch of hardware accelerated things. And, so with- ... with Ubuntu they've just said, "We're only gonna support RVA23 going forwards because it's so much better and it's the n- ... the next thing." Yeah it's just, it's real interesting to see the way that the different projects, the different languages have dealt with that.

Florian: The benefit you have in an early stage, and I would still consider RISC-V even though it's, I know we're working on this for a decade now, it's still early stage is that usually communities across the board, even corporate communities still have a habit of, yes, we're betting on a new technology.

There will be two to three migrations-

...

Florian: To, to a better thing. So you're still in an environment where things were not... Like where it's totally okay to go to a manager and say, "You will probably have to do a compiler update in two years, and you will probably have to re-engineer some of your software in two years."

But it's manageable. It's these, as long as you can say it's these and these and these things. And can give people a rough feeling. I g- I, I always say that you're always dealing with humans. It's not there's always this picture being painted of industry always wants everything to be stable.

No, they also know that they need to change and that new technologies come with that. The biggest the biggest fear I have for RISC-V is they're going up against some pretty big behemoth that can basically just undercut them at every at every corner. So let's see how that works.

Jonathan: Yeah. I think the advantage RISC-V has is that those behemoths are already using RISC-V in their technology. Like Intel-

Florian: Yeah ...

Jonathan: famously, the Intel management agent is a little RISC-V core. Yeah. And it would not be... And now one could make the argument whether or not Intel is the behemoth anymore, but RIS- RI- I think RISC-V is here to stay just because it's- Yeah

it's in so many things.

Florian: And just to be clear that I don't wanna spread any kind of FUD. It's just like these things that grind my gears. It's how- Sure ... are they approaching this problem? As you said, they've already been around for a decade. They're, as you say, they're here to stay.

Also this is something I think the time where people who are really into these technologies, like the, there was a time in Rust for about two years where I knew where Rust was being adopted, like a number of larger companies that would later come out. And most of the time, even everyone in the Rust project knew.

And you're sitting there and you're like, "This isn't very public news yet that we basically being used at all FAANG companies."

And you're still you're at conferences where people's "Yeah, this is still this nascent language that is used nowhere." And you're like- I've seen- ... just cannot tell.

And I- Yeah ... I probably think the same thing at RIS- is going on at RISC-V, maybe.

Jonathan: Yeah, th- that's probably true. I've gotten to look just a little bit behind the curtain there and I've seen some things where- ... it's, a lot of hard drives for instance are running RISC-V cores.

... Intel is running RISC-V cores inside of... I I joke, it's not really a joke, we don't have any x86-64 processors anymore. None of them are native, and it has not been for a very long time. None of them are- Yeah ... natively x86-64. They're all something else and they're emulating x86-64 instructions, which is a wild place to be, but that's, that's fairly accurate.

All right. Let's z- let me think. You got a conference. Let's talk about the conference. What is Oxidise? What's the story with that?

Florian: Oh. Oh I c- I ran, I usually joke I sometimes accidentally run conferences.

Jonathan: Just fall right

Florian: into it. So

Jonathan: I- Stumble into it.

Florian: Yeah. I I had a Ruby conference called EuroCamp, and then later when I was starting in Rust, people were like, "We need a European Rust conference."

I got going to run one. And that was RustFest. Which actually ran for 10 editions before the whole pandemic basically killed it off. Yeah ... it's been replaced by other events in Europe. The European conferencing scene does well. But at some point I figured out I actually want to have an event.

And that was in parallel to RustFest. I want to have an event where we're talking more about things that people are actually doing with Rust, not necessarily, but also that often happens to be like what do you do in your day job with Rust? So what is the thing you're building? Or if you are, for example, building a major open source project what are you doing there?

And I wanted to have a conference where it's less about, okay, this is what the language can do, this is what the type system does, and he is, he has a plan for making the Boa checker more powerful or something like that, like all of these things that are flying around. But more like having a place where I can, where s- someone who comes to me and says "I'm putting Rust on microsatellites."

I'm like, "Then go to this conference, talk about microsatellites, talk about it." And I'm trying, I always try to encourage speakers as "Actually, don't hold back. Don't do an advertisement talk for your product." So it's not about that, but, "Hey, please talk about the actual full thing but that you're building.

If it's a piece of hardware, bring the hardware, put it on, put it there, and then say, 'This was my actual experience in good or bad,' like proper in a proper engineering fashion. That was my experience of putting Rust on this thing." But not speculative, but more as a you share your experience or your current struggles with w- with Rust deployment.

Summed up as the conference for applied Rust- ... in that sense. And I wanted to have that, and the, decided to basically run my own conference cycle and starting it at that time. Actually that was also hit by the pandemic in a weird way. It had multiple experimental editions over with s- some online formats.

And nowadays- Virtual

Jonathan: conferences

Florian: and hybrid.

Yeah ... it's a yearly thing that happens in Berlin. Yep. Yeah. Yeah.

Jonathan: Cool. It's in,

September?

Florian: It's in September in Berlin.

Jonathan: Yeah. I probably will not be able to swing making it out there. It's too far away from too far away from day job stuff.

Florian: If you're going to Embedded World, we meet at Embedded World then.

Jonathan: Yeah, absolutely. I don't remember if I ... I don't think I talked to you at Embedded World, although I may have. I talked to a bunch of people at Embedded World this past year. But I- ... I'm pretty sure that's how this conversation came to be, I got somebody's business card at Embedded World. I've joked- Yeah

I need to print business cards that have Meshtastic on one side and Floss Weekly on the other. Yeah ... that way I can give it out and people know who I am.

Florian: But it's the you'll end up in the open source and Rust corner. So we've actually managed to merge all of our booth. We have a cluster of companies there who are actually all household names in the open source-

Jonathan: Yeah

Florian: Scene. And Embedded World is actually, from that perspective, always interesting because embedded used to be that space where, yes, open source exists, and there's maybe this little bit of Yocto and things like that. But most of it, it was you buy, you it was very much a culture of proprietary software, proprietary- Right

tools. You buy your BSP and things like that. And over the last five years, that has changed so much. Yeah. Especially there in Hall 4. There's so many open source companies- ... running around.

Jonathan: It was very cool to walk around and just "Oh, I know that name. I know that name. I know that name.

I'm gonna go talk to all of them and get business cards from all of them." Yeah. It was a lot of fun. Yeah ... some interesting people there too. I talked to QNX and it's- Yeah ... like I would love to have them on this sh- in fact, we have the guy from QNX on the show, and he's "You realize QNX is closed source, right?"

I'm like, yeah, absolutely. But you guys do ... " They're a big part of Eclipse and, ... some other things that they're really big into. We'll have them on and talk about that. It, yeah, but it is, it was really fascinating to

Florian: see. Are you going to have them on?

Jonathan: I'm gonna have QNX on the show.

Florian: Oh, very good.

Jonathan: Yeah. I will ask him. I'll be like, "Hey, what's up with this? Why isn't it open source?" And I told him when I talked to him about at the booth. I'm like, "I'd like to have you, and this is what I want to do." I'm like, "Let's just lampshade it. Why in the world is QNX not open source?" I'm like, "I'll tell you up front I'm gonna ask the question and you can have a good response for it."

He's "Okay, that's fine. We can do that." So-

Florian: Oh, yeah ...

Jonathan: look forward to that.

All right. So- Yeah,

Florian: great ...

Jonathan: what's some weird things that people have done with Rust or something that people have asked you? And I, obviously you can't share every story, but some stories you can share. What are some weird things that you've done with Rust or that you see people do with Rust?

Florian: Oh weird things. As we, for example, write a part of a writing Rust analyzer, the IDE, we know a l- a lot of Rust code that's incredibly weird. Yeah. But I think then weird things with Rust, Or

Jonathan: s- or surprising things

Florian: I'm just trying to figure out what's

Jonathan: What you're allowed to talk about, right?

Florian: Yeah. No not allowed to talk about it, but just trying, it ... there's fun place things all of, all the time. There, there was someone who built a compiler back-end that compiles to Redstone, which is that Minecraft, that computer built in Minecraft.

Jonathan: Oh oh, I know what you're talking about now.

Yeah, that's pretty good. That's a pretty good

Florian: example. Things like that.

Jonathan: Rust

Florian: in Minecraft. We have people building all kinds of CLI tools. Someone over the pandemic thought they're going to rewrite g- new core utils, and suddenly they're successful things like that. A lot of these things aren't actually planned.

I have, I've personally, I've started very much at the beginning, I've rewritten SL, the I don't know if SL?

Jonathan: It's, it's-

Florian: Most important ...

Jonathan: I don't know if that's a core util, but yeah, that's,

Florian: It's a, it's a- I'm trying to remember exactly what that- If you mistype LS, it runs a steam locomotive.

Jonathan: That's right. Okay. That is not what I was thinking of, but yes, I know what you're talking about now.

Florian: Yeah. But I have a patch in SL, which is my claim to fame in the open source community. It's not that Rust stuff. I have a patch in SL. The Rust community in general is pretty playful, especially on the embedded side of things.

G- the the Hulks Robots team which we're supporting th- they're doing robot football. Like the interesting football, not the thing that's currently on TV. And one of their robots is built,

Jonathan: Wait ... PyTorch. Which kind of football is the interesting football and which is the one that's currently on TV?

Now wait

Florian: a second. Oh you called it soccer, right?

Jonathan: So we call f- the European football we refer to as soccer, and then there's American football-

Florian: Yeah ... which is gridiron. No, so yeah, so it's a robot soccer team. Sorry.

Jonathan: Okay.

Florian: Yeah. So they have tiny robots and- I'm still trying to work out whether I'm

Jonathan: offended or not.

Florian: Yeah. It's all good. So they have a robot where the firmware is written in Rust. Oh,

Jonathan: that's good.

Florian: Things like that. We... I there's a number of things where people do... So there's a whole subset of where people are using Rust in medical software. But because they've done it very early, they've basically used it for prototyping.

Jonathan: Okay.

Florian: And then the and then have rewritten everything in C at the end of it be- because that's safety qualified, so it's safer suddenly because yeah. You paid for the tool, all of these things.

Jonathan: Checks out.

Florian: Ah, weird.

Jonathan: I know we got Linux- Yeah ... on Mars. Was Rust part of the part of any of the Mars missions?

Do you know?

Florian: Yeah. Yeah.

Jonathan: Did the helicopter run Rust?

Florian: Exactly.

Jonathan: Yeah.

Florian: It's going everywhere, but the thing is I don't, I wouldn't say that there's also a ton of weird things that people are doing with C. Sure. And it's I think both of the communities in that f- on that front have a pretty similar vibe going on.

And I find- ... I find especially the hardware communities to be, i- in the positive sense very hacky, ... and stuff. We're seeing Rust in the demo scene now. Yeah.

Jonathan: Yeah, that's an interesting, that's an interesting one. I'm trying to remember if I've seen anybody port Rust back to the Commodore 64.

Florian: Oh, I can totally see that.

Jonathan: Yeah, that'd be fun.

Florian: Probably. Oh we had someone who we have someone who maintains something they call Visual Rust, and it's, Of course they do ... it's V- Visual Studio 90 ... So it, it's Rust compatible with Windows 95 and Windows 98.

That's great. Okay. And I just needed to check whether that's actually public. The fusion reactor they're building out of Boston, Fusion Commonwealth?

There's some of their simulation software is in Rust and beta and on their GitHub. Very cool. So there was like fusion reactors in Rust, why not?

Why not? ... people because Rust has some influence from Python, people are using Rust as a fast Python in a way.

Jonathan: I can see that. Yeah, I can see that. Yeah. Python s- surprisingly is used by a lot of academics and researchers- ... like that, and it's been impressive the performance that they've gotten out of it.

But I can see someone wanting to go to something that feels similar but gets a little bit to the next step on the performance. Yeah. All right. So is there anything, and this is another one of these hard questions. You gotta do some set math in your head. Is there anything that we didn't talk about that we should have?

Anything I didn't ask that you wanted to cover?

Florian: No, I think, ... I think I'm actually good. All right. With a good conversation running through everything. Yeah. You didn't ask about the rewriting that much, though.

Jonathan: Oh, the rewrite it in Ru- that's just a running joke.

It's obviously it's happening a little bit, especially things like uudutils and the- ... we talked about the replacement kernel where they're trying to rewrite it in Rust.

Florian: I actually have something like we, we were part of the Sudoers rewrite project.

And the one thing I said is like these things aren't often that competitive as they are. So first of all, the, one of the reasons why these things are getting rewritten is that because there's actually people asking for it. But one of the good things particularly about the sudo rewrite was we, first of all, before we started with this, we got in touch with the sudo maintainer, the sudo, the, like singular.

That, that singular. Oh,

Jonathan: that's a little terrifying, but okay.

Florian: Yeah. And we were like, "Hey there's we got a request to rewrite sudo." And the response was basically, "Oh, more eyeballs on sudo is always good." So both of these projects are actually talking. And he also advised us on a lot of things where we can...

this is one of the benefits of a rewrite. Sudoers does not support everything that sudo re- supports, and that's actually a conscious decision.

Jonathan: Get rid of some of the cruft-

Florian: Because- ...

Jonathan: from over the last 30 years.

Florian: It's not only cruft. It's if there is a platform where there's two or three users that really need it, sudo can't kick that feature out.

We can because those people just don't move to Sudo RS.

Jonathan: Right.

Florian: Those people just use old Su- Sudo. And the, I think the most important thing there is w- that these rewrites are done with the maintainers. And the other thing about UUtils, it was really just someone was searching for a thing to do while they, they were at home one time and were like- I know, we

Jonathan: did.

We've interviewed him. We- Yeah ... we've had both UUtils and CoreUtils on the show. It's been- Yeah ... it's been a lot of fun. The- Yeah ... with the, with Sudo RS, have you guys done the same thing where you share a a test suite and, go back and forth between the two to make sure that, you have your test coverage and you do the things that you intend to do the same way- you pass the test- Yeah

suite in

the same way? Yeah.

Florian: Oh, that's a good question. Now you caught me. I currently don't think so. I need to check that, though.

Jonathan: Okay.

Yeah. That's one of the, that's one of the really interesting bits of synergy between the two Core Util- CoreUtils and UUtils- ... is that there's they share...

I don't know if they literally share the same code, but they have this shared database of test suite tests. Yeah. And it's one project will implement a new test, and then go to the other project and go, "Do you have coverage on this?" And if no then let's add that test suite here." And then, you know- they find all these weird edge cases because you're- ... re-implementing it, you find an edge case, and then you go to the other project- Yeah ... and "Were you aware of this edge case?" And sometimes the answer is no. There's been bugs fixed over in CoreUtils because UUtils was implementing an edge case.

And, Yeah, as it should be ... it's been pretty neat to see the two projects coexist and both get better because of it.

Florian: As it should be.

Jonathan: Yeah, absolutely. Yeah. Okay. I gotta ask- Cool ... two final questions. I will get emails if I forget this. What is your favorite text editor and scripting language?

Florian: Oh, let's let's start in the back. I used to be in p- president of the German Ruby Association, so it's obviously Ruby. That, So I always joke all languages that start with R-U are good. I had a fun, fun thing. O- one fun thing. I was actually in a way recruited to the Rust project by Steve Klabnik, who was previously one of the biggest contributors to Rails.

So I I'm very thankful to the Ruby community. So that will be my favorite. Problem is most of the people in my company don't agree, so we're producing very little Ruby at Ferret Systems. And my first business was a Ruby business. Yeah,

Jonathan: yeah.

Florian: Text editor, stock VI. I used to do- AV server ... a lot of systems administration work.

Exactly. Yep. AV server has a stock VI, so I'm,

Jonathan: Even your router ...

Florian: I don't cons- I I don't configure my text editors. And Emacs is, I don't have an I don't, I haven't even spent enough time with Emacs to even know if I should be doing it or not.

Jonathan: That's so true of so many of us. "Oh, I've heard great things about Emacs.

I don't have time to l- dive into it and learn it."

Florian: Yeah. Yeah. I had a well-running Spacemacs configuration at some point, and I actually quite liked it. It just, Spacemacs starts for s- 30 seconds, which is way too much if all you wanna do is change a YAML file. And I will probably get an email about, "Yeah you should've configured it right," and that person is probably also

Jonathan: correct.

You're pro- yes, you're probably correct. All right. Yeah. Awesome. Hey, it has been a blast to get to talk to you, Florian. I appreciate you so much coming on the show and talking about Rust and Ferrous Systems and all the things going on there. Thank you so much. If somebody wants to find, if somebody wants to find you, find Ferrous Systems, or learn more about Rust- where are some places they should go to?

Florian: Obviously our website. Send me an email first name.last name@ferrous-systems.com. Meet me at a conference. We got a list of conference places. In Berlin there's the Rust Meetup, which is super active. Okay. Mostly because I'm not leading the Rust Meetup anymore.

If anyone he- here's running a meetup, the first thing you should do is find 10 people who run the meetup and be the backup because then this thing will go on for 10 years. And I'm always around the Rust Meetup. There you go ... so I'm attending all events.

Jonathan: All right.

Florian: Yeah.

Jonathan: Yeah. Very cool.

Florian: In general, if you're running a meetup, you're the backbone of the community.

Thank you very much.

Jonathan: There you go.

Florian: You too, those that listen. Yeah.

Jonathan: Yeah. All right. Awesome. Okay. Appreciate it so much. Okay. That was indeed Florian Gilcher, as we say in English. I don't think we've made it during the show, but he was telling me that he has trouble saying his name with the German pronunciation when he's talking English.

It's one of those, it's one of those quirks that was telling him about my experience talking with German friends and hearing them say English things, and it's just, it's the languages, it's such a fun experience. We do have some really cool stuff coming up on the show in the future.

We talked a little bit about that. Next week we're gonna talk with a new friend of mine, Trish Shurlooker, about FLOSS and legal issues. He is a lawyer. He is a lawyer that came to the Ubuntu Summit of his own accord, and so that was that was pretty incredible to get to meet, and he's got some great stories.

And then the week after that, we're talking with Andy and Aaron from QNX. We're gonna ask them why it's not open source, see what they have to say. And then the week after that, I am super excited, we're gonna talk with Andrea Gallo, the president of the RISC-V Foundation, I think it's called. But very technical guy, and we're gonna talk about RISC-V and what it means for the ISA to be open source.

We've got a, we've got a blank after that, and then coming up after that, we're talking with Michael Meeks of Collabora. And then we've got w- a returning guest, Francois talking about smoked meat. We talked po- poutine last time. We're back with smoked meat. I love the meat theme that they've got going on.

Anyway a the schedule is filling up, so be sure to catch all of those. We appreciate everybody that's here, whether you watch or listen, get us live or on the download. Thank you very much, and we'll see you next week on FLOSS Weekly

Podden och tillhörande omslagsbild på den här sidan tillhör Hackaday. Innehållet i podden är skapat av Hackaday och inte av, eller tillsammans med, Poddtoppen.