In this D Community Conversation, Mike Parker and Robert Schadek discuss Robert’s path from his first steps programming with C, through his computer science education, and on to his career as a D programmer.

    Robert’s DConf 2013 talk (his first public talk):

    Robert’s DConf Online ’24 talk:

    The blog post I mentioned about a D project involving KAIST and Queensland University (KAIST was not mentioned in the post, but one of the authors was in Korea collaborating with KAIST on the project):

    A Gas Dynamics Toolkit in D


    Thanks to Weka for sponsoring this video! WEKA is a fast-growing company that is building a cloud and AI-native data platform that helps to solve complex data challenges for the world’s leading enterprises and preeminent research organizations. WEKA is a great place to work for developers looking to sharpen their D coding skills and work on really interesting use cases.

    Weka home page:

    Home

    Weka Co-Founder & CEO Liran Zvibel’s DConf 2018 talk, “Using D as the programming language of choice for large scale primary storage system”:

    Interview with Liran Zvibel on how Weka made the world’s fastest file system with D:

    Liran Zvibel of WekaIO on using D to Create the World’s Fastest File System


    The D home page:
    https://dlang.org/

    The DConf home page:
    https://dconf.org/

    #dlang #dmd #compilers

    TIMECODES:
    00:00 Introduction
    01:53 How Robert got started programming
    04:47 Did he make hobby projects in the early days?
    06:45 How did he know he wanted to be a programmer?
    12:12 What he did after he got his Bachelor’s degree
    15:40 How he go started with D
    21:43 On DConf 2013
    26:33 On the benefits of DConf
    27:55 His progression as a D contributor
    31:09 On an opportunity to work in Korea
    33:40 On the value of having other programmers to talk to
    35:22 How he found work after getting his PhD
    37:44 On being a programmer vs. another career
    43:42 On how he started working with the D Language Foundation
    45:36 How his involvement with D has evolved
    46:29 On out-of-the-box ideas for D
    52:18 The status of the Bugzilla to GitHub migration
    56:37 On adding containers to D
    01:01:09 Advice on contributing to D

    All right, welcome to another edition of D Community Conversations. I am Mike Parker and I am joined today by Robert Schadek. He’s one of my colleagues in the D Language Foundation team. And… We are here today courtesy of our sponsors, Weka. Weka is a fast growing company that’s building a cloud and AI-native data platform that helps to solve complex data challenges for the world’s leading enterprises and preeminent research organizations. Weka is a great place to work for developers looking to sharpen their D programming language coding skills and work on really interesting use cases. I am not employed at Weka and neither is Robert. Robert works at Symmetry as a lot of our D team actually does and this is not the first time Robert has joined me for a Q&A interview thing. We’ve done this several times now for Deconf online so you’re used to being in the hot seat by now. Yeah, yeah, absolutely and also like this is already hot but standing on stage at DConf is even hotter. Like, I remember back in the day, like, in 2013, like ten minutes before my first talk, I realized that if there is ever an audience that technically is–or sort of from a technical knowledge perspective is able to destroy me on air, because that was also recorded. That is it. And being my sort of first international and also recorded presentation, I got scared quite a bit. So that’s absolutely fine. I mean, if push comes to shove, I can always hang up and leave you hanging here, right? And we can always cut out all the embarrassing bits, right? Since we’re pre-recording and not live streaming. Yeah, so I don’t expect there to be any embarrassing bits though. Yeah, I did go back and look at some of our previous conversations because I wanted to see how much of your early programming history we had covered and we hadn’t really covered very much at all. We got one question from one of the viewers in DConf Online 2021 asking how you had gotten started programming. So why don’t we go ahead and start there because you actually got started late. I was also a late starter for programming, but you got started earlier than I did still. But… Yeah, so I was 20 and finished school and at the time in Germany, you still had to do either compulsory military service or do something social. And I opted to work in a kindergarten for nine months. And in that time, I had, well, more free time actually than being in school l because there was no homework anymore. And like I was already sort of set to study computer science, but had to spend those nine years. So basically a year on like in the kindergarten. And I got a book, ‘C in 21 Days’. And it took me about, I would say seven months to get through it. There was like nobody around me that like was able to do a bit of programming. I did a tiny bit at school, Visual Basic, which I hated and was really bad at. So like, and I sort of knew that in–at university, I would have to program and thought, C seems to be popular, get a book and start. And like, especially at that point, like reading the chapter about pointers, which I think was day seven or eight, like I read that chapter every day for a month, pretty much before it didn’t really make click, but I was comfortable enough to pass a pointer to a function and not get a segfault like every time. Yeah. And after that year in kindergarten, I started studying computer science at the University of Oldenburg, which is in the northwest of Germany. And we were taught Java in the beginning as sort of one of the first courses here, which was, well, interesting because like to a degree I–like Java was somewhat familiar after having sort of studied C by myself, but it was also different and I found it very verbose. So yeah, that’s how I got pretty much. Well, that’s interesting because you did kind of the reverse of what I did. Because when I started, I started with Java, and then I started getting into C and I remember struggling with pointers also. When you did get started, I mean, were you making projects as, as, you know, hobby projects? Games or anything? Or… Not really. I mean, as I said, it really took me, yeah, the better part of that social year to get through the book even. And the projects then started at university pretty much. So I think in my early second year, I took a course in OpenGL. And so like graphical programming, which we also had, we had to do that in Java, but like the projects really started at that point. And I to a degree neglected the other coursework and really focused on the OpenGL stuff because it was fun and you could see stuff at… yeah, the projects are there, but like all through like the bachelor, there were like smaller projects that we had to do. And that took much of my time at the point. Yeah. So long story short, not really. Like I didn’t really do, yeah, any cool projects on my own early on. I got into graphics programming with DirectDraw and I was doing 2D stuff with that on windows. I think I used the Andre Lamothe book that he had. He had a couple of them. He had, he did a "For Dummies’ book and then he had one, a bigger–a bigger one that was focused on 2D game programming on windows specifically. But yeah, I was, I was about 27, 28 when I started programming and I was doing it in the evenings after work. So it was, it was slow progress for me, too. But I got there eventually to make some cool stuff with it. So you picked it up just while you were there at that kindergarten and then you go study computer science. And how did you know that that’s what you wanted to do? What… That is a good question. I don’t really know that I knew, Like… But I was interested in computers relatively early on. So I got, I think my first computer was 12. And like back at that time, that was 1998. You still got–like I was obviously into video games as probably every adolescent boy at that time is. And there was like a computer game magazine called like the ‘PC Games’ in Germany. And they had like a multi-issue tutorial on how to use the Unreal Tournament editor to build levels. And I thought that was cool. And I picked that up because I had the game and I liked to play it and like even in local LAN with buddies on the weekend, like we carried our big CRT screens around and the towers and sort of had LAN parties. And, like, I like to build maps, but at the time the tooling, like the Unreal Editor was like very flaky. And for quite a few things, you had to do at least a tiny bit of scripting, or at least, how do I put this, give 2D icons on the screen in the map names and then link that to other 2D icons with names. So I already sort of got a bit of taste. I wouldn’t call it programming. It was definitely not Turing complete, but like to open up a door in a level, right? You had to stand in front of it, but to figure that out, you had to sort of link a volume to the door thing. And like I found that interesting. And in school then there was like a bit of… like, well, I wouldn’t really call it computer science, but sort of introductory stuff. And also, as I said, a bit of Visual Basic, which I really loved. But yeah, and then probably it didn’t really have any better idea and it seemed to be a sensible thing. And like other than the programming, I was relatively good at it, which also helped obviously to stay motivated. And then I would say like in the first year of my Bachelor studies, like, yeah, there was sort of a fire under my butt and I got really interested and more motivated in doing stuff, because I saw that even at that point in like 2007, computers were everywhere. Like if you’re an accountant, well, what do you do? You basically use a database, right? And who sets up the database? Most likely computer scientists who actually has to understand it all. Like if you want to do something with cars, what are cars run by? Computers. If you want to become a farmer, what do you do? You program your tractor. Like it’s… it’s everywhere. And like I saw that and was interested in that. And here I am a few years later. You know, I wonder if you and I aren’t long lost brothers, because I mean, the Java, the C, the Unreal Editor, I was tinkering around with Unreal Script and making maps and Visual Basic. One of the earliest complete programs I wrote was a stock thing that I used. I was working in a bar as a bartender on the army base here in Seoul, the US Army base here in Seoul, South Korea. And our Food and Beverage manager was always complaining about the tracking system, keeping track of the stock. So I made this little thing in Visual Basic and gave it to him. He said, "Oh, thanks, Mike. This is awesome." I’m sure he never used it. It was crap, but it was fun to make. I think that I think that story probably resonates with quite a few of the, well, let’s call us the older D folks that sort of started in that era. I mean, comparing the Unreal Editor like in version, like one point something to what is, like I just saw a video on the current version of the Unreal Editor. Like I bet I’d probably have to learn that thing for a year to be able to just place a character in an empty room at this point. But yeah, it sort of… it was an interesting start, right? You could do something and see something and show it to your friends. And they were impressed because they didn’t really have the internet at that point, or at least YouTube, to see that actually what you did comparatively to everybody else was quite crap. I mean, if I were actually able to find one of my old levels and still boot it up in Unreal Tournament now, like I would be really embarrassed to see it. Wouldn’t show it to anybody. Yeah, it was fun and you were actually able to do something and use it and play within it. So… Yeah. And I bet like if we ask a DConf at some point, like quite a few other people will say that they are Visual Basic, Unreal Editor, one point something and C or Java in the early or mid 2000s is where they got their start. We should do a survey at DConf this year. We should try it. So, out of university, after you got your computer science degree, did you jump straight into work? No. So, as Germany sometimes is a bit different, after my three years Bachelor, I did a two years Master. And because at the time, like Germany was just phasing out the Diplom, which was sort of the yeha, the German way of like the certificate you get after five years and to become more international, we created the Bachelor and Master program, which still was basically the Diplom program, but named differently. And at least technically, you could stop after the Bachelor and get into work. But, no, I did a Master. And… Then, so in Germany, the professors are–get one position normally paid by the state they are employed as their teaching assistant. And that position at the professors I did write my master’s thesis on–or with, was vacant. And so, being somewhat close to finishing writing my thesis, I said to him, hey, that position is vacant. Could I–like if I apply, would I waste a piece of paper or is there a chance? And he said, yeah, sure, go ahead. And so after my Master’s, I–well, well, during my masters, I applied for the teaching assistant position, which also came with the opportunity to do a doctor’s degree. And then for the next six years, which is sort of the upper limit, I was employed as a teaching assistant, but simultaneously or for pretty much the most of my time did a PhD in computer science. And yeah, that was a really cool time. I mean, it was in hindsight, quite good preparation for COVID because my professor basically left me alone apart from the teaching obligations. So like most of the PhD research, it was me, myself against the keyboard and screen. And then at some point the submission queues of conferences, but you had to do your own scientific research and sort of do that, which was cool. And during COVID, being at home and not being sort of, well, I wouldn’t want to say forced by your colleagues at the office, forced to do work, you still had to produce something. And after having done that for six years, pretty much, I was quite comfortable with motivating myself in the morning. Yeah, so then after what is it, eleven years, yeah, I left the university, actually technically not being done with my doctorate, because then after I’ve done, or I’ve written down my thesis by the end, but it obviously took a bit of time for the professor to read it and for the yeah, the whole promotion process to go through, but all pretty much technically done. At what point did you find D? I found it quite early. So when I was learning Java, I didn’t really like having to write so much in comparison to C. And yeah, I was just sort of open for new stuff. And I think I told you this story before, but I can definitely repeat it here. I went on Wikipedia and there was a list of programming languages, which was sorted by name and basically started reading at the top, like APL and A and B weren’t really that interesting. I knew C, I knew a bit of C++, but that seemed daunting in comparison, especially the templates at the time, in the Wikipedia article were not well explained. And I had no idea what was going on. And well, D wasn’t really that much lower down the list. And at the time, GDC for D1 was actually a sensible compiler. And it took me like two weeks or so to get hello world compiled and link on my laptop at the time. And it was always something like I came back to. It was for the object-oriented part, which we used heavily at university at the time, D was sensible because it was very close to Java. It was less verbose, like similar to C. And also at some point, I understood templates in it, which sort of got me like the interesting bit out of C++. And I always sort of came back and came back and came back. Like I didn’t really do big projects in it. I… did a, like spinning box in OpenGL with it and sort of a few command line programs for stuff I had to do adjacent to university stuff, but nothing really big. But that changed just after I was done with my Bachelor’s. Like D2 actually became, at least from my perspective, being by myself, more usable. Like the compiler didn’t really break with every release. Like it linked more reliably. And I got interested in programming languages and grammars and like BNFs and all that kind of stuff. And was sort of doing… like I thought, how hard can it be to write a D compiler? Like in hindsight, what an idiot, right? But like as like a young computer science student, how hard can it be? Let’s… Let’s create a new folder and let’s start typing. And I basically did my master’s thesis on yeah, on how to write a D compiler. I didn’t really get anywhere, but I sort of got the lexing and parsing part out of the way. And then did this by creating a lexer and parser generator and sort of stuck that together and sort of did all the plumbing around that and experimented with stuff and got more ingrained into like the grammars of it all and that understanding. And that was written in D. And then so… The interesting bit again about the sort of German education system or the university education system at the point is that having become a teaching assistant and also a PhD candidate, the university, if you get accepted to a conference will basically pay for your travel and your accommodation and also for the conference fee. And I think it was at the end or like in the middle of [2012], Walter had announced a DConf near Seattle. And I talked to my supervisor or my like the professor I did my Bachelor– Master’s thesis on now also became sort of my supervisor for the PhD. And I talked to him and said, hey, I did this Master’s thesis here and there’s a conference coming up. Would the university also pay for my travel to that conference? And he I think saw that as a good marketing opportunity as well that also like if you do a Master’s thesis and get that accepted to a conference, the university will pay for your travel to get there. I got accepted, but Walter at some point canceled the conference. And then the following year, like the first I would call that the first modern DConf was announced in 2013. And I resubmitted, got accepted and yeah, and went there. And also sort of gave that talk that we talked about earlier. And I think on the first or second day, Andrei had a talk and pure, the pure keyword was sort of the new hot thing. And there were a couple of math functions that hadn’t been annotated and Andrei complained about that. And I was like, huh, I can write those four characters after the function signature and also create a pull request for that. And so even during the talk, I think I got my laptop open, put in pure to… I have to look it up. I think it was the power function or something, something trivial, like really, really trivial. Submitted the pull request. And by the end of the day, that one was merged. And that got me hooked pretty much. And yeah, now it’s like 10 years later. Yeah, that was–I was–you stole my question from me about the DConf thing. I was gonna ask you how you got there. ‘Distributed Caching Compiler’ for D. That was your– Yeah. that was your talk. Yeah, like it’s still interesting as a topic to me. And I think some of the, well, I would say most of the ideas in that thesis weren’t new. And they sort of have been somewhat forgotten over time and now are resurfacing to a degree again. Yeah, I mean, in Yeah, I mean, in hindsight, like how ignorant can you be and sort of think that as like in your Master’s thesis, which is, oh, I forgot what the sort of the amount of hours are scheduled that you put in to get your Master’s thesis done, which is like one fifth of your Master grade, ultimately, not 240 hours or something like I don’t know, like 240 hours or something like nothing crazy. Like how naive can you be to assume that at that time you can write a compiler for a complete programming language, right? But it was… It was a really eye opening experience in the amount of realizing how much work goes into something like that, how many moving pieces there are. And also that, even though you most definitely will not be done by the time– or in the timeline you think, you can get quite a big project done, or even make good progress on it. Right? So… Like, I learned a lot and ultimately, like it opened up doors to a whole other world, right? Like even, like I would say the universities in general in Germany are all quite good. There isn’t really a big variety. We don’t have Ivy League schools, but I would say most universities are… like the programs are quite good. I think I went to a good university, but I would never, if it weren’t for D, at that conference, be–or had come into contact with the people I came in contact with. Right? Like I would never talk to Andrei. I would never talk to Walter. I would never have met you. Right? Like it’s still a small town with 170,000 people. So, yeah. Yeah. I remember chatting with So… yeah. Yeah. I remember chatting with you outside in the parking lot. You were–you had to go meet your fiancee or something. Yeah, girlfriend at that time. Girlfriend. Yeah. Girlfriend. Yeah. Yeah. Yeah. Yeah. Which like, and obviously sort of– as the university was paying for the travel, there was sort of a nice… like as it’s Germany, everything is regulated to the last degree. And like there was only a specific amount of working days before your flight out and your flight back to Germany that the university would actually cover your travel. So I think we had like five or four working days, additional holida that–or working days that can be used as holiday when you get to the destination. And I thought this was like a one-time opportunity. So picked the girlfriend, scrape together all the money that we could, and then sort of drove up the west coast of the US, which was an awesome trip, right? Being, how old was I? 25, 26 first time in the US. No, second time actually, but first time on the west coast and then going to DConf, going to Facebook at that time and then driving up the west coast, right? That’s awesome. Yeah. That was–that was fantastic. And I remember that was my first time in California also. And I was home for a trip in Georgia. I’m from just outside of Atlanta. So I was visiting family there for a couple of weeks. And so I swung by San Francisco on the way back. And so that was my first time out there. And I just loved every minute of it. And finally to meet all these people face to face, because I had known most of the people there online for years because I got involved with D in 2003, 2004. So 10 years I’d been involved in the community. And this was my first opportunity to meet everybody. Well, not everybody, but the people that were there. Because I missed the… We had a conference in 2007 at the Amazon campus, but I was unable to attend that. So I was very happy to get to 2013. I was really bummed that I couldn’t make it at 2014 or 15. But yeah, that conference has become a major highlight of my year. And my wife and I tend to make a vacation out of it these days. So we travel around it. It’s fantastic. I love going to it every year. And… No, go ahead. Yeah. I wanted to say that, like even… Like, I was absolutely green when I came to programming in D when I showed up. But everybody was open and nobody was judgmental that I was young and the age different didn’t really matter. And it was like, you had something interesting to say, so people listened and you listened to people that had interesting things to say. And that… Yeah, I mean… And also having a pull request done on the second day and having that in and getting the thumbs up and somebody turns around and said, "Yeah, nice job." And you felt you contributed. Awesome. And what I love about looking at pictures from 2013, I’ve got some that I didn’t take them. They weren’t mine. I got them from Andrei. There was a photographer who came and took them. But a lot of the faces in those pictures are still with us today in the community. I love that. Yeah. And sometimes people disappear for a couple of years and then resurface, and yeah. So I wonder, where did your progression go with the D community after 2013? I mean, did you start actively contributing? Yeah. So I started contributing to Phobos somewhat regularly. Like, obviously after being back in Germany and sort of working on the PhD and being a TA, like that took time. But I needed to program like for the research I was doing. And much of that had to run on our local cluster. So the university had like a couple of racks [???] of machines that we could use. And that had to be in C++ because the software was somewhat outdated and I couldn’t get D to compile there. And, but I still sort of… The cool thing about being like a TA or plus PhD in Germany is as long as I did my teaching duties, the professor didn’t really care. Every once in a while he asked, "How’s the research going? What are you working on?" But obviously there wasn’t really oversight. So if I had sort of an itch to scratch on the D part, if I now in hindsight wasted a day or maybe even a full working week on something, nobody cared, right? The cool thing about being a PhD at that point here in Germany at least. And… But still I had to use C++ for my research work as the cluster was not supporting it. But then, oh gosh, it was probably like 2014 or so. The university was in the process of buying a new high performance computing cluster thing. And my supervisor was also on the committee to oversee that purchase. But he was And… but he was busy, so he sent me to that. And, again, sort of being green on the high performance stuff, like I basically had one agenda to get a Linux version on there where I could compile D. So basically, yeah, I was going to this once a week meeting an, like, listening to stuff. And when it came to software, I said, like, "We need this kernel version. We need this GCC version and a few other things," which I knew were able to compile D. And at that point, when that sort of was on the horizon and I sort of got my wish software-wise, I rewrote my research program from C++ in D. And then obviously, got a lot more serious about D, and… which was at that point I would say a hobby. And then it became more work because I was using it daily for my research. Yeah. And yeah, obviously then if you use it daily, you’ll find a lot more things that you would like to have fixed or changed or whatever. Well, at some point, you… an opportunity came up for you to come to Korea, if you wanted to. The Korea Advanced Institute of Science and Technology, KAIST, I believe it was. Yeah. So my research for the PhD is in distributed systems. And at that time, I think it was 2016, 17… the cryptocurrencies came up, well it became very en vogue and very hip. And fundamentally, they are distributed systems or they are a distributed system. And it looked like they wanted to use D and then the intersection of people that knew D and new distributed systems from an academic perspective. Yeah, there weren’t that many people yeah, around or known. And so, yeah, they approached me, but ultimately it wasn’t really a good fit. And I wasn’t really done with my research at the time or with the PhD. And I really wanted to finish that and not have sort of… well I wouldn’t want to say wasted four years, but I have spent four years and haven’t had the diploma at hand pretty much. So yeah, ultimately, that didn’t come to fruition. I see. So it was a cryptocurrency thing they were doing before? I think so. Okay, yeah. Because I know that they probably knew about D from another project that they were working on with the University of Queensland. We have a blog post about that from people at the university, but it was a– I forget now what the project is. But if you’re interested and you’re watching, you can check the link below and see. But I met one of the guys, he was from America, I believe, but he was working on the project at KAIST. And we had a D meetup here in 2018 or 2019 as Mathias and Mike Franklin and this guy who was working at KAIST. And I’m sure that’s where they found out about D because the University of Queensland had been using C++ for this project. And when they did their new version of it, they switched everything over to D. So that was pretty cool. So yeah, I mean, I just– I spent so long here as the only D programmer I knew, And then I found out Mike Franklin was here. And then you almost came over and I was like, "Ah, bummer, he didn’t come." And then Mathias got over here and that was pretty cool. I cannot tell you how it feels to sit down and talk to somebody, not just about D programming, but about programming because I’m the only programmer I know in my daily life. You know what I mean? I’ve been a teacher for many years, yeah? Yeah my wife is a teacher and whenever, like, the teachers have a party, I… It’s somewhat funny.Like, even though… Like, I’m not seeking those people out, but now there are a couple of computer science teachers at German schools. And for what reason, I always start talking to them at some point without even knowing that they are the computer scientists. It’s like… Yeah, like, we as a people, as a group, just gravitate to each other. Like it’s… I absolutely know what you mean. Like when I talk to other programmers and my wife is around, like she looks at us like we’re talking a foreign language. Yeah, right. I… When Mathias was here, he was working at a Korean company here. And I got hooked up teaching English to some of the staff there. And that was like the best of both worlds, right? I’m doing my regular job of teaching English, but I’m able to talk programming with the guys I’m teaching. That was awesome. So, let’s fast-forward a little bit. After you got your PhD, at what point did you start looking for work? Or did you look for work? I mean, were you, were you like recruited or what? the TA position was had an upper time in The TA position was–had an upper time limit of six years. And I was approaching that and sort of the research work was done. I was done writing my thesis, but like I wasn’t–I wasn’t Dr. Robert Schadek yet. Like I wasn’t done done in the sense that the review of the work still had to be done. And like the year before 2017, I already got approached by Laeeth. And he basically– Laeeth Isharc, of Symmetry, yeah. Yeah, if I wanted to have a job, and I said, yes, next year. And he said okay. And I think it was like the DConf 2018 in [Munich], he came up to me and I was already sort of of planning to talk to him because my contract was running out with the university in late September 2018. And obviously at some point, right, you need work. And like he was approaching me and said, before he basically asked a question, I think I said, yeah, yeah, like last–as we discussed last year. And he sort of nodded. And I called my girlfriend at the time saying, hey, how do you feel about moving to London? And at the time, yes, she said, yeah, absolutely, basically on the spot. And… yeah, so… We got married in late September, three days later moved to London. Wow. Yeah, and like she had to finish, like the half term, so I basically flew back and forth from London to Germany on the weekends for three months. But like with a local low budget carrier here in Europe, it was quite cheap, actually cheaper than the train ride from the airport to the–to my wife’s. Yeah, right. And, yeah. And now I’m still with Symmetry quite a few years later. Yeah, and I… it’s very interesting, I think, how It’s very interesting, I think, how life carries us along sometimes, you know, in my capacity as an English teacher here in Korea, I have met people from so many different professions. And time and time again, the people that I’ve talked to, whether they’re in the oil industry, the electronics industry, whatever industry they’re in, most of them told me that they had no intention or expectation of ever having that kind of career. They all imagined some other career. And I never expected to be an English teacher, especially one in a foreign country to spend my life there. Looking back, I mean, I can see, you know, a lot of people who start young have a passion for programming, and they follow that passion and they want to be a programmer, they know they’re gonna be a programmer, they want to be a game programmer, they might end up, you know, in a bank somewhere. But you know, it’s that passion for programming that gets them there. But you did not have that you did not have that you came to it much, much, much later. So looking, looking back on where you’ve come to, all these years later, you’re satisfied with your job, I assume. Yeah. And so what are your thoughts on that and on how how you how you got there? I mean, are you–is it one of those things you look back and say wow, what if my life had taken a different path? What– I don’t think so. Like I… I think fundamentally, programming or computer science or sort of related fields, be it electrical engineering, or any other science, or like any other natural science, it’s like, you’re basically asking yourself all day, every day, why, why is it that way? And then if you have, like a goal to make something, like be it like a CRUD app, or be it a game, you have to actually figure all those things out and sort of ask yourself over and over why, why, why is it that way? Why? Like, why do I have to give the indices to OpenGL in that order and not in the, in the counterclockwise–or, it is in the counterclockwise order, not in the clockwise order, like all those things, right, you have to understand that. And I think I had that before I was programming, like I, I asked why, like, even if it were annoying, and sort of tried to figure stuff out and build stuff. And… I think at some point, it’s just programming in that regard is a tool that allows you to do much more than you could maybe do in mechanical engineering, right? Like if you had to CNC all your parts to build this thing, like the impact you can have with a keyboard and a computer programming-wise is potentially much larger, because scaling that is a lot easier. So yeah, I’m not sure if my life would have been, well, it would most definitely be different, I would probably do different things, I wouldn’t have come to programming, but like the fundamental way of working, thinking and asking yourself how, why is it this way? How can [???], it wouldn’t really be any different. So for you, it’s not so much about solving the problems as understanding the problems and why things– Well, it’s both, right? Like, if you want to solve it, you probably have to understand it at least a bit. That makes it definitely easier. But yeah, it’s… it is also a creative domain, right? And I find programming is a very– or computer science is a very cool blend of it all, like understanding it, the creative aspect of it, and then solving something, actually building something and having it used by people. Like, there is, I mean, people look at me if I say programming is creative, and there is sort of an artistic part in it, weird, but like back at university, my two best buddies, if they wrote programs without going into git blame and reading who wrote which line, I could tell you who, who wrote which line, like their style and their personality was displayed on the line, even though Java or C or whatever is syntactically a very restrictive language, their style was there. That’s And I could see that style. That’s interesting to me that you mentioned the creativity, because that’s what draws me to it. I’m not so interested in the problem solving or any of that. It’s the room for creativity. And I remember a conversation I had with Walter about this at one of the DConfs, we were sitting for breakfast in Berlin at the Ibis, the Ibis Hotel. And we were sitting down there for breakfast, and he was telling me how what drew him to programming and what kept him there was, you know, solving problems, breaking large problems down into smaller ones and smaller ones and smaller ones until you build back up again to solve it. And for him, that was what it was. And I remember saying something to him along the lines about the creative side of it. And he gave me this expression like what? Because he just doesn’t see it that way. And but yeah, that–that’s what drew me to it. And… Well, let’s get back to your D work and how you started working with the D Language Foundation. Because honestly, I don’t remember when you started joining the meetings. Good question. Like I was a tiny bit involved with the 2019 DConf. Like at the time, Like at that time, Symmetry organized that and the woman organizing it basically tapped me on the shoulder in the office said, Hey, can you come and check out the venue? And I said, Sure. And I got sort of a tiny bit involved in the organization because I was to all the DConfs before that and had some expertise of like at least as a visitor to DConf what I would have been expecting. And then I think I substituted John in a couple of meetings, maybe– The quarterly meetings, then. Yeah. Yeah. And I think there was like either quarterly or a monthly meeting at one of the I think the first DConf… Ah, that was that was 2019. Yeah. That was Yeah? That was–yeah. Oh, 2019. And I basically said to you, Hey, I’m here at the meeting. Can I join the D Foundation? And you said, Yeah. And I think that was it. So… Yeah, being like a tiny bit bold and saying, Hey, Can I join? This seems fun. Yeah, always goes a long way, Yeah, always goes a long way, right? Yeah, that does. And that’s, you know, that’s one of two meetings that we’ve held in person in all these years. It’s hard to believe we’ve only had two of them in person. All the others have been online. And since you’ve been involved, what has–how has your involvement evolved? How has it changed? So I would say the amount of pull requests that I did to for was has dropped significantly over time, just because I’m busy with work. It’s sort of more–or I think it has become more "voice of the day-to-day user of D", because I’m using D day to day. And obviously, like if you’re developing Phobos or if you’re using it day to day, or D as a whole, and the whole ecosystem, like your priorities shift a bit. And yeah, I think I’m one of those voices that yeah, like of an industry user using a day to day. Well, I know– I know that you have often put forward ideas in the meeting that were really out of the box, right? Thinking outside of the box. And we are now moving toward some of them. You know, one example is the DMD compiler daemon, right? The compiler’s a daemon, a built-in LSP server, these– these ideas came from you. And I think it took some time for everybody else to get on board with that, because I know you brought them up again and again and again, until we finally got there. So where does that come from? What sparked that kind of thinking? So the compiler daemon LSP thing, that basically came from me trying out Dart and Flutter. I mean, they technically do it differently. But fundamentally, it’s the same idea. And I used it with Android Studio. And like the change, save, compile cycle was just awesome there. And with hot reloading, like UI development was just awesome. And I thought, well, this seems interesting. Let’s have a look of what they do and what is possible. And fundamentally, I saw no reason why that should be possible in D. And I mean, if it’s awesome there, why shouldn’t it be awesome in D? Like most of those ideas, I would say aren’t really that new. It’s just that, like, having been around for a while and sort of asking why and having a look at what other people do and just bringing those ideas forward is helping them. Well, I mean, they’re not new ideas, but they are new in the context of systems programming languages, I think. I mean, Java, we have the Eclipse IDE does all the compilation in the background, right? But you don’t see that with system languages. So it just wasn’t in anybody’s frame, I think. And you kind of pushed it in there. And now it’s like blocking our view. And it’s like we can’t ignore it anymore. Yeah, yeah. I mean, to a degree, that’s how innovation happens, right? You take an idea from a domain and push it in some other. And sometimes it makes sense. Sometimes it’s not a good idea. And you realize that not having it in that domain made sense all those years. Yeah, I mean, it basically came as a need that I had, right? What Jan does with his LSP, with code-d and his LSP server is awesome. But some stuff can’t be done there. And like, having that as your day-to-day tool when your code base grows, just makes it easier. And then if you ask "why can’t I have that, Walter, please?" And you say that often enough at some point, he thinks, "Huh, can Robert have that?" And there you go, right? There you go. Yeah, and I think it is… actually good that we’re moving in this direction now, because there is this certain fact that the expectations of programmers today have changed completely from the time when D was first started, when Walter first started working on it. If you’re a teenager or a 20-something coming into D today, you’re gonna look at it, and it’s gonna be missing a lot of the things you think it should have that you’ve seen in other languages. You know, why doesn’t it have this thing that this non-systems language has over here? Yeah, absolutely. And if you have to–if you were telling a new computer science student, like in 2024, hey, you’re going to spend a week trying to compile the compiler. Yeah, they’re gonna use a different language, right? And probably when you started, it was even worse than that. Or maybe you got lucky that you got a version that actually compiled out of the box. And next week, you got one that didn’t. And yeah, it’s sort of having an eye of what new technologies bring and also having maybe an understanding of where we are coming from and why certain things are the way they are, and then learning out of the past and embracing the future to a degree. Yeah, I think it’s– that’s one of the reasons that we’ve been expanding our membership in the monthly meetings is to get all these different perspectives on all of this. Because, you know, if it’s just you know, a handful of people who all got their starts programming in prehistoric eras, then you’re not going to evolve, you’re not going to change. You need that different input to push for those changes. Yeah, absolutely. And I mean, if you grew up in a time where having the compiler and the linker having to be separate programs because they both couldn’t fit into memory, obviously, your understanding of why it is this way of having a compiler and linker is different to when you grew up when, I don’t know, the latest game update was 64 gigabytes or something, right? so the kids today don’t have the context you have, so their expectations are completely different. Yeah, I mean, coming back to the younger times, like I think my first map with all the textures with the hand-painted textures were like a megabyte and a half. And that took forever to download over ESDN at the time, right, to play that online. Oh, those were the days. So we’re gonna start coming down toward the end of this thing now. But before I let you go, I’ve got to put you on the spot a little bit. So there are some people who will be waiting on news of the Bugzilla to GitHub migration. And so what can you tell us about that right now? So I have to spend a very long evening or two and test. So the holdup basically is now that the changelog for the D release is done from GitLab–sorry, Bugzilla issues and pull requests done to the two repos. And I have to retest that program– or that program that I changed such that even in the migration period where we have both closed Bugzilla issues and closed GitHub issues, that that works. The program that does the migration of the issues, that works. It’s relying on a somewhat undocumented GitHub API. But I sort of got in contact with–like they basically sent me a link to one internal GitHub issues where that was discussed. It is not perfect, perfect, but I think it’s good enough. And and actually, I did the Vsual D migration as an example. And that seemed to be working. And then I have to kick Iain to also maybe have another read over that pull request that changes–what was the file called? changelog.d, I think, is the tool that does the changelog generation in the tools repo. Yeah, and that is basically me finding the time and motivation pushing myself to do it. Yeah. And I think this is a good reminder and putting me on the spot to find the time. Yeah, it’s a bit like one of those things, right? It’s… I don’t know, it’s Thursday evening, 7pm. You’re mostly done with your week, nearly, one day left to go to the weekend, sort of foreshadowing all the things that you have to do then. And then finding the four or two, six hours to actually get back into the context and doing it. Well, I totally understand, Robert. And I’ll tell you what, if the foundation wasn’t paying me, then there would be days when I would turn it off and go do something else instead of the things I do. But I always remind myself, "Well, I’m getting paid for this, so I got to do it." But… Yeah, so I think technically it is done. It is down to doing the annoying testing bit and then coordinating the people and saying, "Hey, don’t know, this Sunday morning, I’m going to get up early and do the amd do the migration." And by Sunday lunch it’s all done. And… yeah. And that secret API, that hidden API, it’s faster than the public one, right? Yeah. So there are sort of two things to that. The The rate limit is different. So obviously, we could use–like, there are two parts to the problem. the original migration program was using the documented GraphQL API of GitLab, but that had a very steep rate limit. So you could do like, I think 100 basically mutations that change data for the reason that you could tag people in created issues and created comments, and that would result in emails. So basically, they put in a rate limit to not have GitHub become a spam farm, for the lack of a better word. And the somewhat hidden REST API allows you to tag people, but it doesn’t result in emails to people. And you can also create the issue and create comments to that issue in one REST call. And also the rate limit is different. So yeah, you can do a lot more in a given time span. Okay. And the next thing then is the new project that has been thrown onto your pile, which is containers. And I haven’t done a planning update in a while. I’m gonna get all of December through May done in one go. But we did talk about our priorities in one of our meetings, our planning sessions. And surprisingly, I know the surprised everybody, containers bubbled up to the top. And so you volunteered to work on that. And your conference–your DConf Online talk this year was on containers. So what are your thoughts on that project right now? Yeah, it’s–I think the people– like convincing the people in which direction to go is the more challenging part than actually doing any coding. So I would say there are sort of two opposite schools of thought. There’s one doing it basically the C++ STL way, and having std.vector that is implemented as C++, or in our case D and sort of go that way. Or as I presented in my DCconf online talk to embrace the dynamic arrays and the associative arrays and give them from D itself, the last few capabilities that I think most people want. And… Yeah, and then it’s sort of like when we came–or when we come to consensus on what we want, I think most decisions– or technical decisions will fall out. Yeah, so like if we do the library way, we, yeah, have to sort of integrate like what we want to do with allocators, how we consider doing it safe, where I would say we can’t really do it safe. Or we just say, this is like–if we say the other thing, if it’s part of D, like if we find a way to allow deterministic destruction of arrays, and associative arrays, I think we’re already there for what most people want out of them. And yeah, so it’s more of, yeah, a people problem and understanding where people’s pains are and then making a decision. I mean, if we do it the library way, some people will complain. If we do it the D way, some people will complain. And then sort of trying to figure out not who’s the loudest and the most convincing, but what are actually the technical merits and difficulties to all of them. And where I think this is also an important way stone in the direction of where we want D to evolve. If we obviously embrace the library approach, I would say we are sort of more embracing the C++ world. If we do it on a more in-built way, I think we are closer to the Python world, even though they don’t really have deterministic destruction. But it’s sort of more in-built in the language than it is like, a library thing. And that obviously has to be a negotiation with all the stakeholders and also Walter and Atila and… Yeah, like the D Foundation and everybody else. I mean, if you go on code.dlang.org, you will find a couple of libraries that do containers mostly well for whatever their design criterions are. And like if you want to have a growable array that has deterministic destruction, but isn’t safe, I’ll bet you find one that will suit your needs right now. But obviously having something in the language or the standard library, like the barrier to entry, if we want to call it that is much higher and you have to consider a lot more things. Well, thank you, Robert. And I’m going to cut it there. But I do have one more question for you before we go. I’ve been asking everybody this so far. And that is because, you know, all of us working with the foundation and with the core team started just by contributing in minor ways. With you it started with a pull request for pure. Pure. For me, it started with running blogs and stuff. And so… what kind of advice would you give to anybody who’s looking to contribute to the ecosystem or the community or the language? How would you advise that they or suggest that they get started? I think it’s not so much about what you do, but like just raising your hand if there’s a call for submissions and just saying, hey, I did a thing and showing that you did a thing. And like, what is really awesome to see after every DConf talk is like when the talk is done and the speaker sort of gets out of stage, there’s like always five or six people that come up to that person saying, "Hey", and start talking to him. And usually, by the time the next speaker needs to get on the stage, they sort of have to be pushed to the side because they’re still talking. And that has happened, I would say with everybody. And… I think that is sometimes even more important than what you talked about or what you did. If you did a thing with OpenGL or whatever. Doesn’t matter. Like… Submit to DConf, or submit a blog post or whatever, or write a forum post and you will find a community of like-minded people that are interested in that thing. And it’s 10 years later and you’re still around. Yeah, like it doesn’t really matter what you do. Like the… Yeah, the self promotion, even though that might be a tiny bit of a dirty word for some people is, I would say equally, if not more important. I concur. And I do encourage everyone to consider attending DConf this year. We’re going to be in London September 17th to 20th at CodeNode and the early bird registration is still open. It’s a 15% discount off of the general registration And by the time this video is published, we should be a few days, maybe a week away from the publication of the schedule. We’ve gotten all the submissions and we’re going to be picking them very soon. And Robert, I want to thank you for joining me today and for all the work that you do for us on your own time. It’s pretty amazing that people volunteer their time like that. So… Yeah, and nice way to put me on the spot again for the Bugzilla to GitHub migration. Yeah, that’s what I’m here for. All right, Robert. Thanks a Thanks a lot. And to those of you watching, take a look in the description below for some links to some of the things we mentioned. And we’ll see you next time. Bye bye.

    2 Comments

    1. At 10:24 Mike says he made a software for managing the stock in the shop he worked. It's interesting how the product ended up. I have a similar experience. I started learning programming in 2003 with VB6, but I couldn't pursue it because I didn't have a computer then. Later on 2009 I bought my first PC but at that time I have a crush on Electronics. Later on 2013 I restarted learning programing and this time language was VB .Net. One of my friends worked on an organization and they need a software to manage their registration process. I made a program with Access database and gave my friend. Like Mike's manager, he and his boss told me like, "Oh you are awesome man!". But I am damn sure that they didn't even installed it because, there was no further enquiries like "how to use that, how to use this, how to open the report" etc.

    2. If the transition from Bugzilla to GitHub issues relies on an internal undocumented GitHub API, there is a risk that they might change that before you have completed the transition… I know a few things about transitioning a large project from one tech to another, and I very much appreciate the work that you do. So I hope you find the time to complete it soonish 🙂

    Leave A Reply