The Changelog: Software Development, Open Source - The History of GNOME, Mono, and Xamarin (Interview)

Episode Date: November 21, 2017

We talked with Miguel de Icaza last week at Microsoft Connect(); in New York City. Miguel gave us the backstory on how he's been competing with Microsoft for most of his developer career, and he share...s the history of GNOME, Mono, and Xamarin — and what led him to now work at Microsoft.

Transcript
Discussion (0)
Starting point is 00:00:00 Bandwidth for Changelog is provided by Fastly. Learn more at fastly.com. And we're hosted on Linode servers. Head to linode.com slash changelog. This episode is brought to you by DigitalOcean, who just launched Spaces, a beautifully simple object storage service that's designed for those who want a simple way
Starting point is 00:00:20 to store and serve a vast amount of data, such as hosting website assets, storing user-generated content like images and large media files, archiving backups in the cloud and storing logs. Just like you're using S3, you can use DigitalOcean Spaces and in fact you can use S3 and DigitalOcean Spaces at the same time so you don't have a single point of failure. This is a standalone service, no droplet is needed, and pricing is extremely competitive. To make it easy to try for both new and existing digital ocean customers, you can get started today with a free two-month trial of Spaces by going to do.co.changelog.
Starting point is 00:00:59 And by CircleCI. CircleCI is how leading engineering teams deliver value faster by automating the software development process using continuous integration and continuous delivery, you are free to focus on what matters most, which is building value for your customers. CircleCI is everything great teams need. Support for any language that builds on Linux, configurable resources, advanced caching options, custom environments, SSH access, security through full-level virtual machine isolation, interactive visual dashboard, first-class Docker support, and more. Get started with their free plan, which gives you unlimited
Starting point is 00:01:36 projects and 1,500 builds per month. Plenty to get started with. Head to circleci.com slash changelogpodcast. You're listening to the ChangeLog, a podcast featuring the hackers, leaders, and innovators of open source. I'm Adam Stachowiak, Editor-in-Chief of Changelog. On today's show, Jared and I are talking with Miguel de Acaza live and in person at Microsoft Connect in New York City. We talk with Miguel about how he's been competing with Microsoft for most of his developer career. Miguel is the creator of GNOME, a desktop environment for GNU and Linux. Also, Mono, a cross-platform open-source.NET framework, and Xamarin, a platform to build iOS, Android, Mac, and Windows apps, and C-Sharpen.NET, which was acquired by Microsoft in February 2016.
Starting point is 00:02:35 Enjoy the show. When I started with Linux, it was a very fringy thing. Like the 90s, what are we talking about here, time-wise? It was probably... I started using Unix, it was around the Windows 3 era. Okay. That was the last time I used Windows. And, you know, every time you made a mistake on Windows and you would crash, you had to reboot the machine. And I had a fancy IBM PlayStation.
Starting point is 00:03:10 Well, the university had a fancy PlayStation. Not PlayStation. PS2. It was called PS2. And it took too long to boot. And at the same time, the university got workstations, Alteryx, DeckEC stations, and DEC workstations. And the beautiful thing about that
Starting point is 00:03:27 is you crash your program and all you get is this label, segmentation fault, or core dumped. That's it. All right, well, let's try it again, right? So to me, it was magical.
Starting point is 00:03:37 The fact that you didn't have to reboot, like, oh, there was a bug, let's fix it. Right. Next. So I had already moved to Unix and at some point, Linux became an option where I could
Starting point is 00:03:47 run Unix on my PC. And I believe I had like a 40 megabyte hard drive. So I had to partition that to have a chunk on DOS, where most of my work was on. To do a boot. And the other piece was Linux. And the challenge, and really, at the time, there was another one, BSD. BSD was the big name. There had been a series of Dr. Dobbs articles about 386 BSD.
Starting point is 00:04:10 It was just around the time where NetBSD had essentially made into a real thing. This was before the forks and right about the time that they forked between NetBSD and FreeBSD. The problem was these BSDs didn't have dynamic libraries. So the nice thing about Linux is that they have dynamic libraries, shared libraries. Right. Which meant I could put it on my half a partition. Oh, you could fit it in the space that you had.
Starting point is 00:04:37 Yes, I couldn't put BSD on the little space that I could afford. Oh, I see. So I had to go with Linux. I can't remember what was my first disk. Maybe it was 8J loose, two floppy disks. It's interesting how what you would think would be kind of almost an inconsequential scenario, where it's just like, I just don't have the space.
Starting point is 00:04:55 That was the deciding factor. But it would actually kind of change the trajectory for you. I don't know if it was 40 megabytes or what was the thing. It was a 386 PC. I don't even know if it has a matcop processor. And Linux had a 387 emulator at some point. I mean, I don't remember these things anymore, but that's roughly where I started. It must have been 1991, 1992, perhaps, in that era.
Starting point is 00:05:19 It wasn't that general neighborhood. That got you into Linux. I mean, the question that we have, which maybe a lot of people ask you, is how does the original creator of GNOME come to work at Microsoft? It seems like that's a long story. Oh, it's a long story, yeah. Well, like I said, I was inspired
Starting point is 00:05:38 by the vision of Richard Stallman very early on, before Linux, on these Unix machines, because he was giving away an optimizing compiler. And in Mexico, you could get Turbo C, but that was a chip compiler, or Microsoft C. At the time, it was also a chip compiler. And if you really wanted to get your code running fast, you need to pony up for the expensive ones.
Starting point is 00:06:05 I can't remember what they're called. I think it was a Portland C compiler or something like that. There were a couple of commercial compilers, very high end. And they were very expensive. At least in Mexican pesos, it sounded like the cost of a mansion. No way, yeah. And a friend of mine came to me with a big printout and said, here, here's how you,
Starting point is 00:06:27 the university had just gotten into the internet, and they said, here's how you make your Unix machine useful. And look for this GNU stuff. There's a lot of good stuff in there. So you go through the list, there was a list of FTP sites, and it would say, this has X11, GNU, this, utils. So you would connect to a random FTP site and those around.
Starting point is 00:06:45 So you're like reading off of a print off and typing in the FTP addresses. Yeah, yeah. That's how it works. So the way, there was no Google. There was a printout,
Starting point is 00:06:51 you know, a 200 page printout and you would pick the FTP site. It was called the FTP list or something. And it was essentially kind of an index.
Starting point is 00:07:00 The host name and what kinds of things they had, like two or three line description of each one. That's interesting. There they were, the GNU, and what kinds of things they had, like two or three line description of each one. That's interesting. There they were, the GNU people, giving away an optimizing compiler. Which other companies are making big bucks off of.
Starting point is 00:07:11 And I was like, why? Why are you doing this? And then at the time, we started reading also some of the news, and the Usenet at the time, or Mail English. I think it was called GNU MESC Discuss. And here was this compiler that was beating Sun's optimizing compiler. So I started writing the GNU manifesto and so on. So ever since I decided I'm going to help the GNU project,
Starting point is 00:07:38 maybe I can write code. At the time, I couldn't write code, or I wasn't proficient enough in Unix to do that. But I said, I'm going to go and help these guys. And I didn't have money because you can contribute in two ways. Give money or write code. Well, the money is out of the question. And the code, I don't know Unix that well yet.
Starting point is 00:07:55 So maybe one day. Anyways, that's how it started. And I think my first, I can't remember if it was, either I joined the Wine Project, and I was working with the Wine Project, writing the, you know, the Innie Reader. I don't remember that format. I don't remember the format. I remember using Wine. Yeah.
Starting point is 00:08:17 So my first contribution was writing that thing. And then it wasn't really GNU, but it was my thing. So I think I've been competing with Microsoft since 1991 or so because come to think of it I did the main and commander
Starting point is 00:08:30 in 1992 and that was already kind of my second thing and it was more serious so yeah maybe around 1991 and I've been competing
Starting point is 00:08:38 with Microsoft ever since started there right with the Windows emulation right we're going to bring those apps to open sources. We're going to run them on our system.
Starting point is 00:08:50 And then I worked for a while with the people doing open source Java. And that was an interesting, lots of interesting lessons on the dynamics of the community there. And then the Linux kernel, I worked for a while on the Linux kernel. I had this vision that workstations were going to be the future, that the Spark architecture was serious hardware,
Starting point is 00:09:16 as opposed to the toy PCs with their toy hard drives and their toy CPUs and their toy memories. So I worked on that for a while. You know, one day a friend of mine is like, you realize that a PC with SCSI in a Pentium is, you know, 10 times cheaper and is only half as slow. I'm like, oh. And I started to rethink.
Starting point is 00:09:41 Oh, maybe workstations are not the future. I had those experiences. But yeah, I've been competing with Microsoft through all kinds of things. I worked in the Linux kernel. Then I worked on drivers for the Spark and DSGI. And I worked with Ingo Molnar before he was world-renowned, famous on the RAID drivers for Linux. And then kind of the next challenge was, well, the kernel's in good hands.
Starting point is 00:10:12 What about the UI? The UI was just terrible. So let's work on the UI. And worked on GNOME for many years and in the GNOME office piece also for a while. Then Mono was, we built this Outlook clone called Evolution. Okay. And we went through a lot of pain building it.
Starting point is 00:10:30 And we said, there's got to be a better way. And Microsoft came out with.NET. It's like, oh, this is pretty good. So I kind of been working on.NET by this time. It's like 2000 or 2001. I can't remember the year now. But we started building.NET for the sake of building better Linux desktop apps. That was the goal. That was the reason.
Starting point is 00:10:51 That was the reason, yeah. It was evolution. Our app was called Evolution. Because the.NET tools were far superior to what you had? Yeah. So the history of GNOME is around the time there was this fairly influential paper or pitch that was made by a professor called John Osterhout. And he designed and implemented this language called Tickle. Tickle TK.
Starting point is 00:11:17 Tickle TK. Yeah, Tickle TK. And he had a very powerful pitch at USENIX one year where he said, higher-level languages achieve more productivity and fewer bugs than lower-level languages. It's something that resonated with me a lot. We wanted to raise the programming level and reduce errors and simplify our development and be more effective. If you're going to compete head-on with Microsoft, you've got to do that.
Starting point is 00:11:44 That's what you were doing. Head-on. But Tickle was, it's a language with some kinks. It was good for the time. And around that time, Richard Stallman says, if we recompile Tickle to Scheme, you're 10 times faster. There was a paper going around that Jewsnicks do that said, if you recompile everything to Scheme, you're 10 times faster. There was a paper going around that used Nix2 that said, if you recompile everything to Scheme,
Starting point is 00:12:08 Scheme automatically makes it fast. And, you know, minds were blown. Then it turns out many years later that the measurements were all busted and they benchmarked the wrong thing. But anyways, it was enough at the time to say two things. Let's use a high-level language and two, let's use Scheme. And the GNU project had their own Scheme interpreter called Guile.
Starting point is 00:12:25 And man, so when we started at GNU, we said, all right, we're going to build a desktop and we're going to build a core foundation, the high performance or performance sensitive code in C and the higher levels in a scripting language. And we started building some of the apps in Scheme using Guile. But it took forever to start up, right?
Starting point is 00:12:43 Launching Guile would be like four or five seconds just to get the prompt. So it was way too slow. So it kind of became a thing in GNOME that we would make our core APIs used in many languages. So Scheme was one. And sadly, the GNU project went into this way of developing where they work and work and work and never release. So, you know, it's not like Git where you can check out, right? Right. They would go dark and then you would get updates every few eons.
Starting point is 00:13:16 Like, are they coming back? Are they fading? Yeah, exactly. Are they gone forever? So that was painful. So then we did Python and we did Perl. You know, all these things were essentially how can we use a higher level language? It was even Objective-C. We even have Objective-C bindings for GNOME.
Starting point is 00:13:30 And I think one of the first IRC clients was written in Objective-C for GNOME, if you can believe that. That's very strange. So that was kind of the genesis of our thinking of we need to support more than one language. And what.NET made very interesting at the time was with scripting languages, they're incredibly powerful. Remember, this is the year 2000, no, 1997. So yes, they're powerful, but they're incredibly slow.
Starting point is 00:13:54 I mean, these machines have, if you're lucky, you have eight megs of memory, if you're lucky, right? At least most students, I mean, I wasn't lucky enough. So eight megabytes was plentiful. And then I was a sysadmin, so I managed to snatch a machine with 16 megabytes, right? But, you know, scripting languages were just not very good. And Java at this point was proprietary. There were two versions, a proprietary version that was semi-licensed.
Starting point is 00:14:19 And there's a long story not worth getting into it. And then an open source effort. But because there was one that was freely available, but proprietary, the open source one never caught on. There was just no need for it. It was proprietary, but free as in no cost. Yeah, proprietary, but cost-free, right? So the open source one struggled for many years
Starting point is 00:14:39 to get traction. So along comes that then we said, well, this is what we need. It has the characteristics of a high level language, but the performance of a low level language. That's what the doctor ordered. And unlike Java, it very quickly took off because there was no free.NET.
Starting point is 00:14:58 So either we built it or we didn't have it, right? So the community rallied around this thing. And very quickly we built a community of people that essentially replicated.NET. And that was a Mono project. So, you know, I've competed with Microsoft all these years. And, you know, there's ups and downs with Mono, right? Mono kind of struggled to find a niche, right? And the desktop, it was useful, but then people feared that it was like. Happened, right? Yes. There was a fear that Microsoft would do something.
Starting point is 00:15:32 So it really set it back. So we said, all right, let's let's aim Mono at the server. So we did Mono for the server. But then the customers were Windows people. I was like, I don't really know if I want to try Linux. So this is the era where Linux still hasn't really broken through. Right. But at this point, I think it's around 2006 and seven.
Starting point is 00:15:52 Yes, Linux is starting to get used, but it's not it's still not dominant. Right. It's still you still use Solaris for your serious deployment. Was there any was there a line of communication at all back in the earlier mono days with Microsoft? Was it all just like they- There were communications with a lot of engineers. A lot of engineers, program managers, mostly in personal capacity, it's never in official capacity. And then IBM, Sam Ruby from IBM, who later became a big Ruby person, oddly Sam Ruby, had invited us at the time, my previous company, to join the ECMA meetings because we had this implementation
Starting point is 00:16:36 of.NET that we had built from specs. And they said, well, who better to join the ECMA somebody actually has implemented the specs to, you know, iron out the details. So we did have contact through a lot of Microsoft people through the committee. I see. It was a common meeting ground around the spec. Yes. And this was around 2002, 2000. Wow.
Starting point is 00:17:01 These dates look so far away now. So, yeah, there was really no communication with Microsoft. So like I said, Moto kind of struggled with this, the community rejection for a few years. Things got worse when there was an agreement between my employer Novell at the time and Microsoft. So everybody's like,
Starting point is 00:17:21 there was a big conspiracy theory. So it was in a not place. It was an open source project. It was a great open source project with a difficult home, right? It was a difficult, we were in the middle of all these things. And then the iPhone happened. The iPhone happened. And so here's what is interesting.
Starting point is 00:17:43 Mono was sort of rejected by the harder line, free software, open source community people on this fear. But meanwhile, there were very pragmatic people outside of the Linux world, like people in the Mac world, that had no problem with it. One of those people were Joaquim Ante from a company called Unity. It was called Over the Edge Entertainment at the time. So Unity had a game engine written, and they had a great game engine, and they used Python to script their games.
Starting point is 00:18:18 And of course, it was too slow. So the games were very slow. So they ripped out Python, and they put the MonoVM in place and they got all their performance back. So it became, it was the same struggle that we went through. And this was around, I want to say 2006 or so,
Starting point is 00:18:37 roughly around this time. So there were a pragmatic group of people that had a genuine need for Mono. And there were many more, but Unity was a key one. And when the iPhone happens, Unity comes to us at this time, and say, hey, listen,
Starting point is 00:18:51 help us put Mono on the iPhone. So we put Mono on the iPhone. And then Apple changed the way that you had to run on the iPhone, which was a very challenging problem for us because Mono was a JIT compiler. Which was against the rules. Well, it wasn't at this point, but yes, it became against the rules.
Starting point is 00:19:07 It wasn't really against the rules. It's a kernel feature. So for security purposes, iOS and consoles like the PlayStation and the Xbox prevent you from JIT compiling. You know, it doesn't make the system completely secure, but it eliminates a vast series of attacks, right? completely secure, but it eliminates a vast series of attacks. And the fear is when you have a million of machines that are identical, running the same software, you can create a bot army. You hack one, you hack all.
Starting point is 00:19:34 So it was a security measure for these systems. And so we first put Mono in there, very happy, the JIT compiler runs. And then Apple disables this. And Unity comes back to us and says, hey, we have this product on iOS. We need.NET to be statically compiled. Can you do that? We're like, oh, that's kind of impossible. Well, let's think about it. And one of our guys, our team and one of our guys, Zoltan Varga, they went and made a static
Starting point is 00:20:03 compiler for.NET. And it was amazing. We gave it to Unity. And at this point, Unity is probably four or five employees. 45? No, four or five. Four or five, okay. Four or five guys.
Starting point is 00:20:13 I can sure hear that. Working at somebody's garage. Oh. And they shipped our product for iOS, built games for iOS using this thing, right? This 3D tech. They were the kings of the space. And within a year,
Starting point is 00:20:28 my Unity went from four or five employees at GDC, right? They had this booth on a, you know, a nine by nine or five by five space. And the next year they had one of the largest booths and there were 80 employees. Wow. So this is like early days of the App Store. Very early days of the App Store. 08, 09, that time period.
Starting point is 00:20:50 Yeah, I don't know when the App Store launched. But yeah, it was when the App Store launched. So it was a very popular product. And we said, huh, well, we did more for these guys. Maybe there's interest in.NET, not for games, but for apps. Yeah. And the alternative was using Objective-C. So we built with the same technology that we gave Unity,
Starting point is 00:21:10 we used it to build our own product. And it turns out that outside of the open source world, there really was no, nobody had issues with.NET technology, right? They all embraced it very quickly. So it was a very successful product. And that is the origin of what became Xamarin. And at that point,
Starting point is 00:21:33 we really stopped worrying about the fear of what could Microsoft do. And we kind of plotted around destiny. We said, well, people love.NET. They love the iPhone. And then we did the Android version. And people love Android. There's a big carrot, right?
Starting point is 00:21:49 Before there was no carrot, right? With the servers. Well, Linux, I don't know. But now you have this big carrot. You can write code very effectively for these two platforms on C Sharp. And it's better than anything else. So it took off. Yeah, you had a winner in your hands.
Starting point is 00:22:05 And then so I would say that at that point, we sort of stopped competing with Microsoft, because there was really no, I mean, we're building a product in the market that didn't really exist. It was no longer a, we'll bring Microsoft tech to Linux, it was we're bringing Microsoft tech to iOS and Android and nobody really in that space. People were there to make money. They were not there to, you know, fix the fundamental flaws in society. Idealistic reasons. There were capitalistic reasons to be in the other half.
Starting point is 00:22:34 Yeah, I mean, people were there to make money. And so it was a more pragmatic crowd. So, yeah. And I guess I stopped competing with Microsoft at that point, and it was more like a very good compliment to what Microsoft was doing. This episode is brought to you by GitLab and their Global Developer Survey for 2018. They're doing the survey to inform the larger population of developers all across the world about the needs of modern developers, their current satisfaction with management, tooling, workflows, trends at work, and more, perception discrepancies between developers and management,
Starting point is 00:23:35 and most importantly, what high-functioning development organizations are doing differently. Their 2016 survey uncovered that developers have a lot more say in choosing the tools they use, and often they were using tools their managers weren't even aware of and this survey we're asking you to take was vetted by 10 internal GitLab engineers to ensure it's high quality and highly relevant to developers. Topics in the survey include developer satisfaction, open source technology, workflow and collaboration, CI, CD practices, and developer tooling and their preferences. If you have insights to share, we'd love for you to inform the global developer community and please consider taking the survey.
Starting point is 00:24:10 The entire survey includes around 25 required questions and a handful of completely optional questions for you to share a short answer with more details. The survey takes around 15 minutes on average to complete and you can find it at about.gitlab.com slash developer dash survey. Once again, about.gitlab.com slash developer dash survey, or check the show notes for a link. And by TopTow. TopTow is the best place to work as a freelancer or hire the top 3% of freelance talent out there for developers, designers, and finance experts. In this segment, I talk with Josh Chapmanman a freelance finance
Starting point is 00:24:45 consultant at toptow about the work he does and how toptow helps him legitimize being a freelancer take a listen yeah in my arena within toptow i specialize in everything from market research to business plan creation to pitch decks to financial modeling, valuation, and then that leads very naturally into fundraising strategy, capital raising strategy, investor outreach, closing a deal, deal negotiation, how to value the company, how to negotiate that. And all those skill sets that I have continued to hone over on the TopTal side are ones that I actually deploy every single day in my own company. Freelancing can sometimes be seen as not legitimate or subpar work. Now, I would argue that when you work with a company like TopTal, they put so much vetting into not only the companies that you work with, but also
Starting point is 00:25:37 the talent that you work with, which I'm on the talent side, that it adds a level of legitimacy that isn't seen across other platforms. And that for me, as the talent side, is incredibly fruitful and awesome to be a part of, right? I enjoy the clients. I enjoy the other talent that I get to talk to. I enjoy the TopTal team. And that creates an overall positive experience, not only for TopTal, but for me as the talent and for the client as the company on the other side. And that is really not seen or is the experience across other platforms in the freelance market. So if you're looking to freelance or you're looking to gain access to a network of top industry experts in development, design, or finance, head to TopTal.com. That's T-O-P-T-A-L.com
Starting point is 00:26:24 and tell them Adam from the Change Law sent you. For those wanting a more personal introduction, email me, adam at changelog.com. So what was your personal demeanor towards the company? Because when you say you're always competing, but was it antagonistic or was it in good spirit of competition? I think it went through a few phases. For example, very early on, very early on when I was, you know, I was a very big open source advocate. And I did all kinds of advocacy
Starting point is 00:27:14 in Mexico and third world countries. And I had my pitch nailed to why you should use open source instead of- Can you remember some of it? Yeah, of course. I'll make the pitch in a second, but- Pitch it.
Starting point is 00:27:27 I want to hear it. You know, the pitch at the time was very simple. Listen, we're sending all kinds of money outside of the country for running proprietary software. Let's not do that. Let's invest that money in the country. Let's use open source. Let's build that stuff, right?
Starting point is 00:27:40 And I used to say, listen, how much is that? You've seen a barrel of oil, right? So how many barrels of oil does a country need to ship outside to get a single license of a piece of proprietary software, right? It's a powerful image. And the idea works great up until the point that you realize that people, they're not going to send the money. They're going to spend it on something else,
Starting point is 00:28:01 or they're just not going to spend it. So the idea that you would reinvest in the country didn't really pan out. People were not going to spend it on something else or they're just not going to spend it. So the idea that you would reinvest in the country didn't really pan out. People were not going to reinvest. If you don't have to spend the money, don't spend the money. Keep the money. We'll spend on education.
Starting point is 00:28:17 We'll help our people. We'll do these things. And that didn't necessarily. But anyways, that was my pitch at the time. Right. And, you know, there would be places where we would have a panel, why you should use Windows versus Linux. You should use Linux because... So I did advocacy, very serious advocacy for many years. This is 2006, 2004, a long time ago,
Starting point is 00:28:44 very, very long time ago. Very, very long time ago. So did you find... 2001. That was easy, right? You get Windows 95, you get Windows 2000, and you got Linux, right? And then just recently, I mean, it was really pretty recently,
Starting point is 00:28:59 almost two years ago, which seems recently in the long span that Microsoft acquired Xamarin. Once you were no longer competing with Microsoft, did the edge wear off, or was it? Well, I think that there were two things. There was the early competition in my, I would say, almost, not team, because I'm older than that,
Starting point is 00:29:21 but the Windows 95 era. The 95 era is very clear. They have a great UI, but the Windows 95 era, right? 95 era, it's very clear. They have a great UI, but we have multitasking and we don't crash. And we have, you can use one Linux machine to be a server for everything. One PC can do it all. It was amazing, right? So that was one kind of one era of unfocused, the one that I described. And then there was the uglier era when open source kind of becomes a brand.
Starting point is 00:29:46 And I don't know if you remember this, but there were the Halloween papers, which were internal Microsoft documents that says, how do you compete with something like Linux? I don't remember that. They were kind of a big scandal because they got annotated. I don't think it was, in retrospect,
Starting point is 00:30:01 I don't think there were ever very serious documents, but somebody in a massive organization wrote papers saying, hey, well, this is how you do it. You write dozens of these things continuously, right? There's a lot of internal memos, recounts. But it became seen from the open source perspective. It was seen as like, oh, my God, this is the evil empire. Yeah, kind of like that.
Starting point is 00:30:24 And it was seen that way. And that didn't foment a environment, you know, a great environment. Yeah. You know, there was this notion, the price was, you know, Microsoft is toast, Windows is not going to exist, Linux is going to, you know,
Starting point is 00:30:41 it's going to take over the whole world, right? Right. So there were a lot of very nervous people. And in particular, the whole world, right? So there were a lot of very nervous people, and in particular the previous CEO was fairly antagonistic toward Linux for many years, or took an antagonistic position towards Linux and the GPL. But I think, A, it's a little bit like that diagram of,
Starting point is 00:31:02 I don't know, it's one of these analyst firms that use the hype graph, right? Where you have exceeded expectations. And then it comes back down. And it comes back down. And then once you understand, it's like, oh, everything is terrible. And then you kind of understand. The trough of sorrow. Yeah, the trough of despair or something like that, right? So what happened is that over the years, the hype of what was open source, eventually people understood what it was.
Starting point is 00:31:30 And both us and the industry, right? Both us, the advocates and the industry, and we understood what it was and what it could do and what it couldn't do and where it worked well and where it didn't work well, right? Even Red Hat went through this process, right? So I think that the thinking internally at Microsoft started to change,
Starting point is 00:31:51 and Microsoft started to open source a lot of things. Bit by bit, right? Somebody was asking yesterday, what are the things that Microsoft open sourced? And they were kind of thinking towards 2010. It's like, no, no, there's stuff that went back to 2006, 2005, they did little bits, right? They did little pieces. It's like, no, no, there's stuff that went back to 2006, 2005. They did little bits, right?
Starting point is 00:32:08 They did little pieces. Testing the waters. Testing the waters. Those might have even been somewhat grassroots efforts inside of the company back then. I think they were grassroots efforts. There were people inside the company that believe in the model, and they push for the model, and they make a case. And I think that at the time, making a case was very tough, right? The environment was not necessarily supportive.
Starting point is 00:32:30 Now it's very straightforward to open source a piece of tech at Microsoft. There's a pipeline, a review process, very straightforward business needs. You fill in a form, your manager approves it, off you go, right? Basically, yeah. You need to make a case that you're not doing something. I can't
Starting point is 00:32:48 just go and fill in a form to open source Windows, right? But if I write some code, I can certainly do that. On that note, there was one point in your career you mentioned. I think it was when you were being interviewed, I think earlier on in your career, towards Microsoft, and you had, on this advocacy of
Starting point is 00:33:03 open source, you mentioned that they should open source IE. And this is way back in IE's lifetime. And you were kind of using Netscape as a case study of like, hey, this is what they're doing. Can you kind of pontificate? Netscape actually happened later. They were not open sourced at that point. Yeah, there wasn't, I had an interview with Microsoft.
Starting point is 00:33:23 I was working on Linux on the Spark, supporting Linux to the Spark. So a friend of mine, Randy Chapman, said, hey, we're working on porting IE to the Spark. And they're interviewing here. You want to come? And I came and I interviewed with the people. I don't know who interviewed me anymore. But I made my pitch. You should make IE open source.
Starting point is 00:33:46 That was my pitch. Make this open source. There's all the benefits. And I think they just said, all right, whatever, dude. So we heard a story that. But remember, this is 1997. Right. And Mozilla doesn't go open source until 1999.
Starting point is 00:34:05 Right. At this point, Mozilla doesn't go open source until 1999. Right. At this point, Mozilla is still proprietary. We've got alternate, I guess, influences on this side too. We've got Brendan Eich on record talking deeply about the funding of the browsers and the funding of the web through, and I'm only paraphrasing this big story he knows very intimately, but just the browser wars and ads and how everything has been paid for, essentially. Long story short, but I'm trying to figure out if you've got some sort of idea of how IE or even Microsoft might be different as a company
Starting point is 00:34:36 and maybe even how we may be different had they done what you said. Because they didn't. That's so difficult. That's one of those hypotheticals that are very tough to answer i mean remember at this point i was a very strong advocate this is my my hardcore years of advocacy and uh and coming to microsoft what's kind of i'll go to microsoft if i can change the company from the inside right kind of thing um so and i wish i wonder if hr still has notes on. I wonder if we can dig those up.
Starting point is 00:35:06 That'd be awesome. But essentially the, you know, that was my pitch. We've got to make this open source, right? And, you know, I think that the people that I was talking to, you know, they're probably engineering managers, like whatever. It's crazy. Go and do a link list on the board, right? I don't know what we did.
Starting point is 00:35:21 Go and do a link list. Solve this programming puzzle. Before we do one of those, go do this link list on the board. So when you say interviewing, you mean to work there? You're interviewing to work there. Yes, that's right. And you're trying to tell them to open source. So you're giving them high-level strategic advice during your interview to work there.
Starting point is 00:35:36 Well, he said if he's going to go there, he's going to change. Well, I realize that. But when you first said interview, I was just thinking it was like an interview like this. Right, right. That makes it even funnier. You were, in that sense, very hardcore advocacy. Fast forward to today. Are the things that you, inside of the industry and software,
Starting point is 00:35:55 are the things that you care about with that level of passion now that are different? Or is that like a young man's energy that slowly subsides? Well, I mean, I still care very passionately about the, you know, there's things that I care about in tech and things that I care about outside of tech. And I think that my advocacy and my heart breaks for all the disasters in the world, right? So, you know, if you follow my tweet for years or my blog, you'll see that there's a particular series of injustices that have, you know, Palestine has always been a very sad story. So, you know, I still care about those things.
Starting point is 00:36:40 Sure. And, you know, I think they got really the short end of the stick. But there's countless other problems in society that need to be solved. And, you know, we have a lot of really smart people. And we should be fixing those issues. So I think that the passion and the desire to go and fix those things is there. Having kids certainly doesn't leave a lot of time to, you time to sign up for doing talks and advocacy in places.
Starting point is 00:37:06 But there's one of my co-workers, Nia Veddin, she runs the Invisible Summerville organization. And they're doing all kinds of very interesting social changes in our community, right? They start there and they take it elsewhere. But I think that just having a family kind of takes a toll on your time for doing some of the more advocacy things that you want to do. On the tech world, I would say, before I go there, that one thing that was very interesting is that the new CEO is very different, Satya Nadella. And not only he embraced the change in Linux and open source, these things, but he is, as an individual, is deeply empathetic, right? He relates to other people and he tries
Starting point is 00:37:53 to get himself in other people's shoes and try to understand their perspective. So from the tech perspective, I like to think that we can do more in our software to be more empathetic. And I think that it shows beautifully, for example, with Apple products, because they're products that people love to use, right? They work for the user, not against the user. And it's a different mindset that the raw engineering perspective of, I'm going to build a piece of great software, going to be very fast, very efficient, very something, right? Very configurable, very programmable.
Starting point is 00:38:30 It's going to be the Swiss Army knife. And as it turns out, there's a time for the Swiss Army knife and there's a time for just a bottle opener. Right. Sometimes all you need is a bottle opener. Right. Right? Sometimes all you need is a bottle opener. A single purpose tool. Yeah. And so in tech,
Starting point is 00:38:51 I kind of care passionately about how can we make our tools better, simpler, more accessible, more easier to use? How do we make developers happier? Right? It's been kind of a motto for our company, for Xamarin, it was definitely. And we tried to bring that culture, which is how do you delight developers? How are developers struggling and what can you do to get out of their way?
Starting point is 00:39:19 And I have to say, I'm guilty as much as anybody else. We've built tools that are sometimes too complex. And how do we remove the complexity? How do we make our tools simpler? So I would say from that perspective, I changed from advocacy from licenses, which is, you know, it's a done deal. It's a battle that has been won, right? And I really try to look for inspiration on design, right? And what can we do for the user? And I'm saying design because now when I work with other teams,
Starting point is 00:39:50 companies, partners, people inside the company, we still have a mentality, all of us, where if we need to build a solution, we start coding right away. Okay, let me architect this, log in, I'm going to put this in the database, it's going to go here, I have a screen, I roughly know where things go. So you go through this process, and then your user experience is miserable, right? So I do like this, I do like the idea of, you know, let's first sit down and try to understand what problem we're trying to solve. Let's design,
Starting point is 00:40:20 let's design on paper, right? Let's think about it first. Yeah. And, you know, there was an employee of mine, well, not an employee of mine, a coworker of mine from many years ago, Anna Dirks, that started this at our previous company at Novell.
Starting point is 00:40:37 And she would prototype on paper. At the beginning, I was like, why are you doing high tech on paper? Right? We're software engineers. We don't do paper. But, you know, she was a big influence because she would meet with customers and she would show them, okay, here's a UI that I've drawn on paper. Here's a menu. What would you do next? I would click here.
Starting point is 00:40:54 Wow. All right, what would you do? And she would put Post-it notes. So now this is a button, what do you do here? And the nice thing is that it's super cheap to prototype on paper. Oh, yeah. Right? What does it cost? Like a couple of cents in a pen?
Starting point is 00:41:08 Yeah. Right? It's real time. There's no bugs. And then you get a mock-up. At the end of the day, you spend one work day. No crash. Yeah.
Starting point is 00:41:15 One work day, you get mock-ups. And then you refine them a little bit. Right? And then you get good design. And by the time you're implementing, you're not writing and rewriting and rewriting and customizing. And when somebody says, well, you should have this button, like, well, if you want me to wire that up, I got to change everything. It's like, you know, so, you know, as engineers, we have to embrace this world where we can think first about the user,
Starting point is 00:41:43 you know, show some empathy, right? That's what I like about Satchez and his whole pitch in his book, the Hit F5 Refresh, right? Is we got to do, you know, get into your user's shoes and try to do what they're going to do. And save yourself a lot of time, a lot of engineering
Starting point is 00:42:01 by knowing what you're going to do. So I care a lot about that. I don't know that I communicate that always as well as I could, even to my team. Hopefully this podcast will influence that a little bit. Just tell your team to listen to the ChangeLog. We can do that. Or you can talk to them directly, I guess.
Starting point is 00:42:22 It's your team. We're going to make things easy. When you talk about that, especially when you say Xamarin, the focus on the users are the developers and so let's design for them. It reminds me of Matt's with the Ruby programming language.
Starting point is 00:42:41 His design philosophy, I feel like his statement, I'm going to design for programmer happiness will be his legacy even more so than the language that came from that. Cause language has come and go, but like that I've seen that philosophy embraced and it resonates so well with all of us. It's like, yeah, we should do that. That's, that's, that's empathetic. That's empathetic. That's powerful. And so that idea, I love it being such a meme because as it spreads, we all benefit. And if the developers are more empowered, more able to do things, enlightened, designed for.
Starting point is 00:43:20 Delighted. Sorry, not enlightened, delighted. Sure. Then they're going to, hopefully that's a pay it forward type of a thing they're going to be more able to build things for other people in such a way I think we need to become more rounded individuals
Starting point is 00:43:33 software engineers should say where's the design help me not waste my time tell me what I'm building what are the expectations here perhaps I also care a lot about the expectations here. And why, yeah. Perhaps I also care a lot about the fact that sometimes we write code with no documentation.
Starting point is 00:43:52 Engineers are really, they have this thing where they're like cats in water. They don't want to write docs. Cats in water. They don't like it. Cats don't like to write documentation either. Cats are in Nebraska, but cats on the East Coast. They don't like water. They don't like it. Cats don't like to write documentation either. Well, I don't know how cats are in Nebraska, but cats on the East Coast. They don't like water.
Starting point is 00:44:07 They don't like water. That's how easy it is. They don't like to write documentation in the water. Engineers on the East Coast and documentation is like, oh, you know, they do it. Only if I have to. Yes. Only if my boss forces me to, and then I'll drag my feet, right? And engineers are very good at coming up with excuses, right?
Starting point is 00:44:26 It's like, I'll document it. I'm still changing things. I'll document it when it's fully ready. And then by the time it's ready, it's like, what happened? And then they go, well, do you want me to document or do you want me to work on the new feature? Right, I ran out of time. I mean, it's magical.
Starting point is 00:44:42 And it happens every time. It's magical. I guess my last question for me is surely you do a lot of conversations like these is there a question or a topic or a thing that you just you're just waiting for somebody to ask it to you so you can answer this thing
Starting point is 00:45:00 or talk about this particular thing but nobody ever does at my age every question is a good question. You don't have anything to get off your chest or anything that you just want to talk about? No, not really. I mean, I guess, no, not really. I don't have anything to get off my chest.
Starting point is 00:45:18 Fair enough. Let me close with one thing. So what has been fabulous is in this new Microsoft, just how much open source code is written by Microsoft and contributed to Microsoft to the point that, the other day I saw the stats and it's like, they're ginormous numbers. I think GitHub published them.
Starting point is 00:45:38 Microsoft I think is now the number one contributor by some metric. I don't know what it is. I don't know if the number matters anyways. It's so much go that... It's an indicator of change. It is an indicator of change, yes. And I am very happy that.NET went from being
Starting point is 00:45:55 the crown proprietary jewel of Microsoft to now be open source. And that Microsoft was willing to let go of this fabulous developer technology and their incredibly sophisticated compilers and runtimes and garbage collectors. I mean, and they went with a license that is beyond generous. It's just MIT is, it's a gift to the world. And it took years of work of many people inside and outside and advocacy and discussions. So there's thanks to be given to everyone that made that happen.
Starting point is 00:46:33 And.NET now it's everywhere. It runs from my watch to my phone to the servers to the Azure supercomputers. We have it running WebAssembly 2. I mean, it runs on everything. It's just- WebAssembly 2, huh? Yeah, we got WebAssembly 2 now. So it's everywhere.
Starting point is 00:46:53 And it's a fantastic effort. And I hope we can get more people building software there. I mean, our goal is always, you know, going back to this theme from 20 years ago, right? The goal is, or maybe less, 17 years ago, is we want you to write good software. We want to catch errors for you. We want your software to be of high quality.
Starting point is 00:47:20 How can we help you? And that's a mission, right? That's what the entire developer division of Microsoft does, right? That's a mission. And I think we're making a good dent in society that way. All right. Thank you for tuning into this special episode of The Change Law. We did this show in New York City, Times Square.
Starting point is 00:47:44 Thanks to Microsoft for inviting us up there. It was a blast being in New York. episode of the change law we did this show in new york city times square thanks to microsoft for inviting us up there it was a blast being in new york and getting to see the behind the scenes of microsoft connect what a well-run excellent conference for them and their developer community and all the announcements it has so much happening it's a new microsoft if you enjoyed this show share it with a friend rate rate us on Apple Podcast, and thank you to our sponsors, Circle CI, DigitalOcean, GitLab, and TopTile.
Starting point is 00:48:12 Also, thanks to Fastly, our bandwidth partner. Head to fastly.com to learn more. We host everything we do on Linode cloud servers. Head to linode.com slash changelog. Check them out. Support the show. The changelog is hosted by myself,
Starting point is 00:48:27 Adams to Kovac and Jared Santo. Editing is done by Jonathan Youngblood and the awesome music you hear on every single show is produced by break master cylinder. You can find more shows just like this at changelog.com or by subscribing to podcasts, overcast, wherever you get your podcasts thanks for listening

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