Two's Complement - The Future of Compiler Explorer

Episode Date: April 17, 2024

Matt ponders the future of his accidentally eponymous hobby project. Ben offers thoughtful consideration while waiting for the right opportunity to crack a joke. No lawyers were harmed in the making o...f this podcast.

Transcript
Discussion (0)
Starting point is 00:00:00 I'm Matt Godbolt. And I'm Ben Rady. And this is Two's Compliment, a programming podcast. Hey, Ben. Hey, Matt. So we're trying a new recording setup here. So apologies if this sounds dreadful, but hopefully this will be less work for us in the future, which means maybe more frequent podcasts. Who knows? But maybe not. Yeah, I'm not promising. You can secondary job for either of us to do.
Starting point is 00:00:48 Tertiary job. We're both parents. Yes. Oh, my gosh. Yes, that's true. That is so very true. Yeah. So, you know, anything to make our life easier, I'm down with.
Starting point is 00:00:58 So we're giving a different setup a go here. And so there's every chance that this recording won't work at all, and you and I are just talking to each other just like like a normal conversation and no one else will ever hear it. But I had a topic idea. So I've been doing Compiler Explorer now for a long old while. It has outgrown me. I have a lot of help, a lot of open source contributors and some team members who are also the keys of the... Sorry, hold the keys to the admin account on AWS so they can log in and administrate and all that kind of good stuff, which is great because there's only one me. And I've gone out of my way over the years for trying to make it i said i wouldn't
Starting point is 00:01:45 go out of my way i have tried to make it as self-service possible for things like adding new libraries adding new compilers adding different languages there's readme's about how to do it so a lot of my job these days is approving other people's PRs, merging them in, and then doing sort of the DevOps-y style stuff where I push to the cloud, check the staging instance works, all the tests pass. And by all the tests, I mean, I click around in the UI a little bit and nothing seems to obviously go wrong. And then I push to production and I shut down the staging instances and I send a little email out and then I go to bed as it's usually very late by that point. And it occurs to me that this is not, we've kind of reached a new scalability issue, which is like, I only have a finite amount of time and I'm having difficulty
Starting point is 00:02:35 keeping up even with that. And the buck stops with me because it's me. It's my personal AWS account. It's my personal project. I mean, it's in its own GitHub repo, but it is me. There is no Compiler Explorer Limited. There is no foundation. There is no anything but my goodwill and the continued support of the community. And I'm wondering one day, not soon, but one day I might have had enough of it all, or maybe even for the health of the community before it gets so bad that people get upset with it. I should think about how to engage the community in a bit more of an active way to help run and administrate and make decisions about the site so you're saying you have four jobs then oh my gosh so i've just been pouring my heart out about like my worries about
Starting point is 00:03:34 this and you've been sat there going i can make a joke at the end of this you're a bad person i'm also listening i know you are. I'm also waiting because comedy is timing. You're not wrong there, but that is, it is another job. Right. And I've, I've kind of almost thought of it that way.
Starting point is 00:03:52 And, you know, I'm very, very fortunate that I have a lot of sponsors, both commercial and Patreon patrons and whatever. But with that comes a kind of responsibility to do something with the funds that I get access to, you know, that I get. And I've always kept in mind the fact that this isn't really about sponsoring me. The Patreons are not sponsoring me.
Starting point is 00:04:18 They're sponsoring Compiler Explorer, which is me. But I want to keep a clear separation between those things. I have a separate bank account for everything. I scrupulously account everything every month to make sure that like the stuff that I have on AWS for me is accounted separately for all of the stuff that happens for compiler Explorer and, you know, all this kind of good stuff, because I think at the back of my mind, I think I've been preparing for this kind of point where I will say, hey, maybe we need something else.
Starting point is 00:04:50 And I don't know how to take this next step, really. And this is why we can make this recording in this fashion. Because if you go, I don't know how to help you, then this is the end of the recording and we're done. Or else we just talk about it. And it's a bit of a vulnerable thing for me to say but it is you know it's it's it's difficult it's difficult for me both from a letting go standpoint if i choose to and also the fact that most people don't call it compiler explorer they call it something else which is kind of me so having heard all of that, what are you thinking?
Starting point is 00:05:30 I mean, I wish there was easy answers to these questions. There are never easy answers to these questions. I think it's very normal for people to outgrow things, right? Even great things, even awesome things, fun things, right? Even great things, even awesome things, fun things, right? There's that sort of perspective that I try to share with a lot of people when they look back at their mistakes. They say, how was I so stupid to think that that was a good idea? It's like, well, imagine if you were standing here today and you didn't think it was a bad idea, right? Like you've grown, you've, you've,
Starting point is 00:06:06 you've changed. Yeah. Yep. And that is also true for things that, you know, were like passion projects or things that you were very excited in, right? Like you sort of like you,
Starting point is 00:06:17 you ate the fruit, you, you sucked all the nourishment and joy out of it. And now you've just got a little peach pit and you don't need it anymore. Right. Throw it in the trash, let it grow into a new tree somewhere. So the,
Starting point is 00:06:32 the, like, you know, I would do everything that I can, first of all, to assuage anything that even smells like guilt to other people. How, how, how well you read this children right that is not what's happening here right so first so that thing first right in terms of the mechanics of how you actually do this how you do it in a way that is going to ensure the
Starting point is 00:07:06 longevity of this thing that is valuable to so many people and something that you're very rightly very proud of, I'm sure, that's a think that the sort of direction that you're heading is a good one and one that I would be surprised if you never took. Right. You know what I mean? Yeah, yeah, yeah. Like at some point you're going to outgrow this thing. Or moreover, I owe it to the community to have more of a say in the way that their tool, because it is more theirs than it is mine.
Starting point is 00:07:52 Yeah. Right. Right. That is steered. You know, there's 50 odd languages on there and there's only like two of them that I could even remotely put a hand up and say, well,
Starting point is 00:08:02 yeah, I would use that. And I understand why it's useful. And I understand the needs of that community. And yeah, it would be hubristic in the extreme to think that I'm the best person to champion this. I'm just the one who happened to have come up with the idea at the beginning and kind of followed through. And now here I am going, oh, how come I'm in charge? who let me in charge of this right and so it might be more you know and i suppose the way that i'm trying to think about this is what is
Starting point is 00:08:30 what are the principles that are important to me that whatever happens next i would like to maintain and you know just thinking out loud one of is like, it's never been my uh my outlandish expenditure expenditure of myself as a result is is is uh yeah there is no no such thing anyway but uh so i don't never want it to be commercial i never want folks to feel that they have to pay or have to subscribe or have to register or have to sit through ads or all that kind of stuff i've done quite a good job i think of having the sort of the chrome of the the sponsors be very out of the way so so so much so actually that it was really kind of annoying when ad blockers started blocking even our tiny little thing at the top right that said you know thanks to our sponsors google and you
Starting point is 00:09:40 know intel or whatever and they're like yeah we blocked your ad i'm like it going to like, this site is completely free. And if it wasn't for their goodwill, we wouldn't be. Yeah. Anyway. So that's one thing is the financial part of it. And, you know, the, the common thing in open source is to go sort of the freemium route route. I said route then good grief. I'm so confused. I don't know where I live anymore. I mean, it's been 13 years. Give me some fairness. But route, the route of making it so that, you know, everyone gets some baseline set of features, and then if you want the cool stuff, you have to pay. That has never really been.
Starting point is 00:10:17 It is kind of obvious to see how you could do it. I could justify it even. You could say, you know, I have five machines that do the world's compilations. And then if you subscribe, you get a dedicated instance or some subset of it. The thing about that is it smells like we're trying to make money and I don't see it as a business. I don't want to see it as a business. See aforementioned fourth job. Correct. Correct. And you know, there is a world, you you know there is a world you know there is a world in which i could fully accept it as an actual job and say no goodbye my day job it's been thank you for
Starting point is 00:10:55 all of the the help thus far but i'm going to go off and do something on my own and i could try and turn this into a into a real job but a i don't think there's enough money in it to support me and my family let alone the other folks who are involved in it and be like anything it's only fun when you don't have to do it and that i think is the real key here and even now when you know i spent a couple of years not doing so much uh c++ programming it became more of a burden to like work on the site because I'm writing TypeScript and JavaScript and I'm doing Bash and I'm doing this stuff. And at no point is it actually useful to use the site myself. At no point was I dogfooding it. It could have gone down that I probably wouldn't have noticed. At least these days I'm doing a bunch of C++. And so
Starting point is 00:11:39 I get to use it and I kind of go like, this is cool but i use like precisely two percent of the functionality of the site and the rest of the 98 is other people's stuff so you know anyway uh that would only get worse if all i was doing was working on it all day tempting though it is from a certain points of view so i don't think it's a business and that means that really i think it has to be a community project run by the community community for the community and then your question obviously is who who even are the community right right well yeah i mean this is definitely not a uh an unprecedented problem so you look at folks like uh linus torvald and you know guido van rossen perhaps you know the python, you know, Guido van Rossum, perhaps, you know, the Python, you know, benevolent dictator for life. Yeah.
Starting point is 00:12:29 You know, anytime you sort of have these things that are built by, you know, one sort of motivated individual and then sort of get picked up by a broader community. You almost certainly have a moment where there needs to be a separation between those two things for the good of everyone. And, you know, that can go well and it can go poorly. Right. But, but, you know, I think, I think at a certain level of, of growth, it becomes inevitable. So, you know, maybe now's, maybe now's that time yeah maybe so maybe so i mean i don't know you know anyone who's listening to this if indeed we ever put this out um you know i'm not planning on going anywhere anytime soon but you know i'm i'm getting to the later stages of my career and at some point maybe i won't want to be doing this all the time and it would be nice to have had
Starting point is 00:13:21 a planned and slow and and a handover process where I was actively involved for a long time before I actually wave off goodbye. Having just said this, now I'm having a sort of flush of embarrassment, even thinking that we've just essentially tacitly compared what I've done with Linus and Guido van Rossum, which they're thematically similar, but on the scale, it's very, very different. But there are things to learn from those things. And yeah, I would like to leave it in a decent state. And then there's just that thing of like, who is the community? Because the obvious thing would be to reach out to the compiler folks of the world. And most of
Starting point is 00:14:02 the ones who can actually support it are the commercial ones. So, you know, Intel and Microsoft and, you know, I don't know, Red Hat perhaps would be behind GCC. I don't know who would be the right people behind that. And there are some, you know, there are some not-for-profits as well. But like, I'm a little skeptical and this is perhaps, you know, not the kind of thing I should say and put in quote public, but, you know, I worry about the kind of thing I should say in quote public, but I worry about the motives of folks when it's their commercial interest. For good reason, they've got a different spin on this. And compiler experience has always been about the users and not about pushing any particular agenda at all so i would be a little concerned about handing over any sort of control or some even a bit of control to these folks
Starting point is 00:14:50 but then i also don't know whom else might be a good steward or like a board of folks you know maybe a half dozen people that would be like yeah we make the decisions about this here's the bank account here's the aws. Here's the AWS stuff. All right. What are we going to do? How are we going to use our resources? How are we going to engage with the community? How are we going to decide prioritization of things that do get fixed versus the thousands
Starting point is 00:15:16 and thousands of things that get filed and nothing ever happens about, you know, that kind of stuff. And so maybe, maybe if our listener is, is even present in given the fact this may not go out then ideas will would be welcomed and i think in order to get my own head together this is part of that process but i think also i need to write down some kind of like guiding principles myself about what it is that makes the compiler explorer the success that it's been and then that can be sort of at least a starting point for the next steps but it's it's a this is a weird conversation to have and the second and possibly the weirdest part is obviously it's compiler explorer but everyone refers to it
Starting point is 00:15:56 as godbolt and it's on my personal domain and i have other things on that domain and like if i were to actually do a full separation then i have to start worrying about well do i lose my domain you know do i lose my email address do i lose my other funny little projects that end at godbolt.org i'm sure that again as you you said there are you know legal people there are accountant people who can probably come up with the the correct and creative solutions to this kind of stuff or or do i say no actually this is the point where compiler explorer becomes really compiler explorer and i reclaim my name and i i redirect obviously so that we don't lose it but like ultimately the canonical name becomes compiler explorer but it's a a lot longer and b it's not as memorable and i hate that yeah i mean i said i i i wouldn't change i wouldn't
Starting point is 00:16:46 change the domain name for you it just struck me and this is a little bit of a tangent but i wonder i wonder if actually there's a huge tax windfall that you have that you may not necessarily be aware of, which is if you created a actual charitable organization and you gave the domain to that charitable organization, you could probably get someone to value that domain for you and you'd be able to take a tax deduction because of it. That's an interesting point. It's just like giving them a car. Here's a car that's worth $20,000. You get to take a tax deduction for that. Here's a domain name that's worth $20,000. I don't know what it's just like giving them a car like here's a car that's worth twenty thousand dollars you get to take a tax tax deduction for that here's a domain name that's worth twenty thousand dollars i don't know what it's worth but no i don't know what it's worth i don't know but yeah
Starting point is 00:17:30 no it's interesting like if you actually gave it to them to that organization that's a charitable contribution yeah see this is where you need the accountant that's where i need an accountant i need to know i am not an accountant someone that nerds out about taxes. No, indeed you do. Much to my chagrin when you start talking about all this stuff on the train on the way home, and then I'm like, I've never even considered this. Oh, gosh, I'm so naive when it comes to this stuff. Which actually is another thing, right? Like at the moment, the whole thing is me.
Starting point is 00:18:00 So, you know, I get all these funds in and I pay tax on the funds and then I pay them out. And I mean, I think my accountant does some clever things, but I don't know for sure. Right, right, right. Well, yeah. I mean, anytime you have money involved in these kinds of things, it starts to get a little messy and you get it. You know, I think it sounds like you've done a very admirable job of keeping them separate,
Starting point is 00:18:18 which is critical, but it's like at a certain point you need need some professional help uh in keeping in keeping track of all this stuff oh right right i thought you meant something and maybe also the mental kind yeah that's right later there's not yeah that is that comes three years from now when you're like i made a huge mistake i should never have done this never have done this thing right right i mean it is true i mean yeah so that's the other thing i was speaking with uh another friend of ours about this kind of thing down the pub the other day. And he said, you know, like, there's a lot of things to think about. And some of these things came up in that conversation. And one of them was like, well, in five years time, if the name has gone, the colloquial name has gone with it, and then it goes bad, then you can't distance yourself from it. You can't undo that so that's worth considering and worth thinking about i don't imagine that it would and probably by the time i've stepped away far enough from it that i i'm not able to correct anything that i feel is bad then maybe it won't matter as much and also turns out other people have this name too you know i know it's not that
Starting point is 00:19:18 common right i'm not the only one i mean one of them is making a loud noise in the background. With the same name. Right, right, right, right. Yeah. Well, I mean, on that topic, I have to say, I think your instincts about not having a board, let's say that's made up of compiler manufacturers, is that the right word? Writers? Vendors, I suppose. Vendors.
Starting point is 00:19:49 Is the right move here because however well-intentioned their inventions might be. They would be and they are and I'm working with them now. They're just fundamentally not going to be aligned with all of the things that i heard you say in the lead up to this that's just not
Starting point is 00:20:10 where their attention is going to be that's not where their focus is going to be so you know again having thought about this one one hundred thousandth as much as you have well you're doing pretty well for somebody's been put on the spot with no prep. I would say that having some leadership for whatever type of organization ends up controlling this that is purely focused on the community is good.
Starting point is 00:20:42 The trick there, of course, is going to be to find people that don't lose interest, right? Because one thing you would not have to worry about with Microsoft or someone else is that they would lose interest. They have a whole company of people who can be paid to be interested. That's right. Yes. That's a very valid point. I mean, so the flip side of that, that occurred to me when I was thought experimenting this whole thing is that like by getting folks who are from have, uh, sorry, who are from a commercially interested party, as you said, they're paid to be interested. That also means that there's, excuse me,
Starting point is 00:21:14 there's potential for those folks to be able to do it, weave it into their day job more than say I can, right. You know, with the best will in the world, this is not something I can do during my working hours because it doesn't really affect my day job. And quite reasonably, they're like, yeah, we'll turn a blind eye if something's on fire, but you can't be hacking on it during the day. That's not what you're here for. And that's fine. But if Microsoft or this world was like, well, we've got, I mean, just to be clear, my friends at Microsoft are already dedicating quite a lot of time and effort to keeping the Microsoft compilers up and running on their own sort of sister site to ours, which we shell out to. So we already are taking, getting the benefit of, of that kind of commercial help. And there are some other vendors
Starting point is 00:22:00 who help out too. So there are, we're already kind of in that situation, but yeah, they're not steering the show. I still ultimately get to say, say yeah we're not doing that for certain things which is kind of important to me right now yeah and then discovering the right set of people obviously the existing folks who are most involved with running and uh running the site right now are very obvious candidates to to to be on a board but they're trying to get like a rounded breadth of folks that that represent not just the people who are very c++ focused like we are but also other languages and other use cases yeah it's it's an interesting and difficult question. And certainly I'm not trying to come up with answers here,
Starting point is 00:22:47 but I am really interested in hearing what you had to say about this. And so that's got me thinking now. And live on air for some definition of live. Some definition of live. Yeah. I mean, I don't envy you. These are hard things to sort out and finding the people that you trust to take this kind of stuff over is not going to be i mean as you say you already have a group of people that are probably your pool of candidates
Starting point is 00:23:20 but you also have to make sure not to put those people in a situation where they don't have the help and resources that they need to maintain things. And I think this is why you generally form a board for these types of organizations is to have people who don't necessarily spend a lot of time on it, but are able to provide resources, provide guidance to just sometimes like raise a flag and be like whoa you're going to do what right yeah that you know someone who has a little bit more low-level focus just isn't going to be able to do or see or take yeah yeah as you say this is yeah this is why you have like presidents of boards that are like very, almost separate from them and from the day-to-day running of it. It's more about steering and that kind of stuff. Yeah, so.
Starting point is 00:24:11 Right. Yeah, I'm going to have to go and get myself some fairly expensive consultancy with, as you say, legal people and see what my options are as well. Because obviously being in the US gives me certain access to things. It's an international project. I don't know if that changes anything.
Starting point is 00:24:27 If we wanted to have board members that were outside the U S and, you know, it is there any difference between all the various random 501 C whatever three and six and 12 and Levi 501s, whatever the things are. I don't know. I don't know anything about it. Compiler Explorer came Cayman Islands Corporation.
Starting point is 00:24:47 That's right. Yeah. Yeah. Yeah. Well, I mean, if nothing else, this has been very, very helpful and cathartic for me to get this out of my mouth and into the airwaves.
Starting point is 00:25:00 And the only other person really, as I say, there was a person down the pub that i went to i spoke a little bit about this the other week and i've been chatting a lot with google bard or whatever it's called these days i just changed it to something else to try and understand this is my first genuine use case that wasn't just toy is asking various questions and trying to get some feedback from from ai so ai you know it's helpful no well thank you for letting me talk this through absolutely anytime this is probably if this goes out this will be one of the most weird episodes we've ever made it's more of a kind of monologue we're weirder than the one where we just did DNS configuration for two episodes.
Starting point is 00:25:46 Maybe not. I think that's probably the tops. That is probably the weirdest one. Yeah. Yeah. You're not wrong. All right. Well, I guess we all call it here.
Starting point is 00:25:59 Sounds good. You've been listening to Two's Compliment, a programming podcast by ben rady and matt godbold find the show transcripts and notes at www.twoscomplement.org contact us on mastodon we are at twos compliment at hackyderm.io Find out more at inversephase.com.

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.