The Changelog: Software Development, Open Source - .NET Core and Microsoft's Shift to Open Source (Interview)

Episode Date: October 21, 2016

Bertrand Le Roy joined the show to talk about all things .NET Core, their recent 1.0 release, where it's going, the open source around it, and Microsoft's shift towards more open source....

Transcript
Discussion (0)
Starting point is 00:00:00 Bandwidth for Changelog is provided by Fastly. Learn more at fastly.com. Je suis Bertrand Leroy et vous écoutez le Changelog. Welcome back everyone. This is the Changelog and I'm your host, Adams Dukovjak. This is episode 224 and today Jared and I talk to Bertrand LaVoy about.NET Core. Bertrand has a deep history in Microsoft technologies and he schools us on all things about.NET Core, where it's going, the open source around it, Microsoft's take on it, and also Bertrand hosts a live YouTube podcast called On.NET and he also curates a weekly email called This Week in.NET.
Starting point is 00:00:47 Our sponsors today are CodeSchool and TopTow. Our first sponsor of the show is our friends at CodeSchool, and if you want to learn something new, a proven method is to learn by doing, and that's exactly the way CodeSchool works. You learn to program by doing with hands-on courses. CodeSchool's, you learn to program by doing with hands-on courses. CodeSchool's courses are organized into paths based on technologies like HTML and CSS, JavaScript,
Starting point is 00:01:11 hot topics like React and Angular, Ruby, Python,.NET, iOS, Git, databases, and even electives that take you off the beaten path. Let's see you want to learn React. You can start level one of CodeSchool's React course, which begins with a quick video lesson on React components. After the video, you get hands-on practice building with components using in-browser coding challenges. There's no hassle, no setup, just learning. And the best part is when you use our special URL, codeschool.com slash changelog, you save an extra $10 per month. Instead of paying $29, you pay $19 because you're a listener of this show. Again, use our special URL,
Starting point is 00:01:52 codeschool.com slash changelog. Don't Google it. That's the only way to get our special deal. Once again, codeschool.com slash changelog. And now onto the show. All right, we're back for the show. Got Bertrand Leroy, and obviously I'm going to say that not exactly right because he's French. And Jared, this is a show kind of covering.NET, Microsoft,.NET Core, but it's been a while, right? Yeah, a couple of years. Episode 134 was when.net core just first kind of peeked its head out from the walls of Redmond. And it's been a while. We have lots of listeners and fans saying, hey, more on Microsoft, more on.net.
Starting point is 00:02:39 We're fans, too. Frankly, there's a lot more to cover now because Microsoft's just continuing to open source more and more things. We should give a shout out to Brett Morrison, who's friends with Bertrand and fan as well. And he suggested to have him on and talk about.NET Core running on all three major platforms and all of the new stuff. So thanks, Brett, for suggesting this show. And thanks, Bertrand, for joining us. Thank you for having me. Now, we got to start off with the right way here because I know I butchered your name. What's the best way to say your name?
Starting point is 00:03:10 Like give the listeners the French version. The French version, Bertrand Leroy. But you know, the R's are very difficult. But you're used to common English, non-French ways of saying it, right? Yeah, usually when I introduce myself, I don't even bother to try to give the French pronunciation. I just say Bertrand Leroy and that's fine. Okay. And so some of your history stems back, obviously, to Microsoft.
Starting point is 00:03:35 You've worked there for many years. Can you give us some of the lay of the land of what your experience is and what your affiliation is to.NET, Microsoft, and the work you've done there? Yeah, so I started working with.NET, Microsoft and the work you've done there. Yeah. So I started working with.NET a long time ago, back when the first version was in beta. So I was working in France at the time. I was working for a small web company and I had built CMS using.NET, maybe the first CMS on.NET. And, you know, it was at the time the.com bust and all that. So I started wondering about what was next.
Starting point is 00:04:15 And I looked at Microsoft. I was living in France, so it was a big change for me. And yeah, they actually hired me, my great astonishment. And I started working on ASP.NET. And I've worked on ASP.NET 2, 3, 4. And then I left. I created a startup with a friend. I did that for a few years.
Starting point is 00:04:41 And I came back to Microsoft a little more than a year ago to work on.NET. So, yeah, all my career at Microsoft has been around.NET. I've seen a lot of change happening during that time. Why did you leave the first time? Was it because you wanted to do a startup or were there other reasons? It was a combination of reasons. The first one was that, yeah, I wanted to do something different. So we created that hardware startup, actually.
Starting point is 00:05:10 It wasn't even software. Well, there were some software components, but yeah, we wanted to do some hardware. And another reason was that I was at the time a little frustrated with the pace of innovation and that sort of thing. And I was at a point where I thought that it was easier to innovate actually outside. That's interesting. I mean, especially with the recent change over the last three or four years, we've seen this resurgence from Microsoft to embrace all platforms, to embrace open source and
Starting point is 00:05:43 even change, as you had said there, the pace of their innovation. How do you feel about this new Microsoft we've been seeing? Well, obviously things have changed a lot and I wouldn't have come back if things hadn't changed in that direction. Well, we all remember the old Microsoft that was borderline hostile to open source.
Starting point is 00:06:10 And that wasn't a place where I wanted to stay at the time. Let's say if you can't, if they don't have change, then you could be the change. Are you a part of that change then? Well, yeah, actually that was the idea. That's kind of what I tried to do at my own small level at the time.
Starting point is 00:06:32 And that was kind of frustrating. And we did have some success. So I was one of the people who started the Orchard project, which is a CMS on.NET. That's open source. And that was one of the first major open source projects coming from Microsoft. I'm very proud of that. So that I put in the category of success.
Starting point is 00:07:02 But it was slow, slow, slow. But now open source is the norm. And when you do something new, you basically have to justify why it's not open source rather than why it is. Speaking of open source and Microsoft too, we had in a recent ChangeLog Weekly a link to Frances Campoy, who works at Google on the Google Cloud platform.
Starting point is 00:07:23 And his post on Medium was, is Microsoft the biggest open source software contributor? What a question mark, of course, because that's a big question. You mentioned he's a Google employee, obviously, on the fan of open source and kind of give some of this rundown. So a lot more has been happening at Microsoft around open source. Yeah. Yeah. So I saw that.
Starting point is 00:07:44 And, you know, it's a question that's actually very difficult to answer because how do you measure that? And yeah, I've seen the numbers and, you know, you can always argue that I believe in those numbers, Google and Angular were separated, something like that. So you always have some caveats, you know, statistics, damn lies, and so on. But yeah, the fact remains that today, Microsoft is one of the most important contributors to open source. And not just projects that were initiated by Microsoft. I think it's interesting to see how teams such as my own are actually contributing to other open source projects. Back on episode 134, when we had on, it was Rich Lander, Emo Landworth, and Varun Gupta. And we asked them, this was a long time ago, but I recall asking them, like, what was the onus or what was the shift inside of Microsoft that changed the mind of the company?
Starting point is 00:08:49 And I believe to generalize their response is that very much there was many people that wanted to embrace open source kind of in the small, inside their teams or personally, but the change in leadership that happened a few years back, uh, really enabled it to, to, to, for the entire companies to do so. Does that reflect with your experience? Oh yeah, totally. Totally. Uh, and under that leadership, uh, it's been a, it's been a slow process that has actually begun before Satya became the CEO. Uh, so, uh, it depended where you were looking at. that has actually begun before Satya became the CEO.
Starting point is 00:09:29 So it depended where you were looking at. I mean, if you look at the Windows division, maybe that's the place where... That wouldn't be the place where it began. But the developer division, for example, has been doing open source for a very long time and has been pushing for change. So you might know the name of Scott Guthrie, who is our VP. And he's been a major advocate for open source for a very long time. Seems like your guys' shift from a company that largely sells software licenses for its income to one that also provides services
Starting point is 00:10:12 and more and more so shifting revenue to services, it seems like that shift in business strategy allows for open source because you're not giving away the software licensing, right? You're still providing the services or the hosting. And so, and I think like Satya Nadella has, you know, was maybe that was starting to change already when Balmer was still there,
Starting point is 00:10:34 but it seems like the last few years after Satya took over is when Microsoft has become a services company. Is that fair to say? Yeah, but again, Microsoft is a super big company and there are parts of it that did add up that new model and some that didn't and might actually not. So yeah, that's always the thing with open source. Where is your business? And if the software itself is your revenue,
Starting point is 00:11:07 does it make sense to make it open source? Right. Now, if you're starting to sell cloud computing time, then that becomes something completely different. And sure, your SDK should be open source. Right. So one thing that you say on your website is that, and we've touched on this a little bit,
Starting point is 00:11:26 but I'm curious exactly your role. So you said that you were an actor in the company's shift towards more open source. And you mentioned the CMS or the open source project. What was the name of that project that you? Orchard, O-R-C-H-A-R-D. Orchard, okay, very good. That's the American versus French.
Starting point is 00:11:46 My ears can't pick up that word Orchard CMS It's always been a problem for me to pronounce this word correctly ironically For a second I thought you said art shop and I was like, no I know I know, I know
Starting point is 00:12:00 the same way you cannot pronounce Bertrand I cannot pronounce it's been a bane At least we can laugh at ourselves about it, right? I know. The same way you cannot pronounce Bertrand, I cannot pronounce it. It's been a bane. At least we can laugh at ourselves about it, right? Oh, yeah. So was that, when you say you were involved in the shift, was the open sourcing of that and the success of that something that helped?
Starting point is 00:12:18 Or were you a vocal proponent for open sourcing inside the company as well? At the time, I was just a mere software developer, so not a lot of influence, not a lot of power, but you know, I was doing my part. I think the first thing I did was to work with Scott Guthrie on getting jQuery to ship with Visual Studio. That was something that was kind of a big deal because Visual Studio is not open source and shipping an open source project inside of that
Starting point is 00:12:57 was kind of tricky from a legal standpoint, a licensing standpoint and all those things. So that's one of the first things that I worked on concerning open source at Microsoft. And I was very happy to do that. Because I was feeling that this was the beginning of something profound that could potentially change the way the company thinks about software in general.
Starting point is 00:13:27 And I'm not saying that is what caused it. It was a very small thing, but it was, it was a sign of, of what was beginning to happen at the time. And now here y'all are one of the top organizations on GitHub in terms of activity or what was the exact metrics, Adam, on that particular thing? I'm glad you said that because we kind of left that conversation there. It was one thing that Francesc ended that post with was really about what it means to
Starting point is 00:13:56 be a contributor. And it wasn't a slight against Microsoft, but it was just saying it's more than just contributing. Right. And so the article kind of camped out on microsoft being a biggest the biggest contributor in terms of pull requests and commits and things like that but it you know he has this quote that says the biggest oss contributor is people not orgs with an awesome little emoji there and it's just it's more than just commits or more than just co-contributions is bigger than
Starting point is 00:14:23 that so that's kind of where he left that piece. Well, you know, if we spend all our time just trying to decide who's number one, we won't spend any time writing software and contributing. So I think the takeaway, though, for me is is is not a negative one. It's a positive one. It's like, that's awesome. We need more of that. That's like it reminds me of the conversation we had about open source at Facebook.
Starting point is 00:14:45 Like we need more companies like Microsoft, Facebook, open source, Apple, uh, doing the things they do in the open and inviting, um, developers into those ecosystems because it's only going to help them for one, but it's also just kind of, uh, doing a lot more for open source. We invite that, like having that kind of, I guess, perspective to open source is a good thing for a company like that. Well, we're getting close to our first break. Before that, let's give your YouTube show a plug here, Bertrand,
Starting point is 00:15:16 on.NET. So as we opened, Adam and I have had many people say we don't cover Microsoft technologies enough, and we try to cover all that we can. We only only, we only get one show a week and we're doing our best. We can probably do a little bit better, but if you're just dying for lots of.NET coverage in the form of podcast or video, Bertrand's your man. He actually has a weekly chat with the.NET team and guests. Can you tell us about On.NET? Yeah. So one of the things that's really important for me is recognition, recognition of contributions
Starting point is 00:15:54 from everybody in the community. I think, well, it may sound like something very obvious, but community is one of the most important things for a software platform. And I wanted to do something that would recognize what people out there are doing around.NET. Because that's what is making what.NET is today. So every week I'm interviewing somebody who can be someone from inside of Microsoft or outside of Microsoft. I'm trying to keep a balance of both.
Starting point is 00:16:37 And, you know, we chat about.NET and we look at demos that they make of what they are doing with dot net. Uh, and yeah, we're trying to build something that is interesting to watch every week. And it's on, uh,
Starting point is 00:16:54 what, uh, is it cloud? What's the, uh, it's YouTube. And then what else? There's two places.
Starting point is 00:16:59 Cloud nine. Yeah. So the, the name of the show is on dot net. Right. And, uh, it's,
Starting point is 00:17:04 uh, it's a channel on YouTube, but it's also on Channel 9. Channel 9. I was a bit different. Channel 9. Not Cloud 9. My bad. Yeah.
Starting point is 00:17:13 Yeah, Channel 9 being the central place where you can find Microsoft videos. Right. And just looking at the first picture, it looks like two people sitting in the same room. Is this like an in-studio show or are you over Skype? How does it work? It depends. So the last show was with Sebastian Ross, who is one of the people who have been working on Orchard with me. He's here, so we did it in studio, but usually it's over Skype. And I also write a weekly column on the.NET blog where I give a list of links. I give shout outs to some open source projects and stuff like that. Kind of a community heartbeat as well. So I do both of those things to really to recognize the contributions from the community, the ecosystem.
Starting point is 00:18:10 Very cool. We will have links to all those things in our show notes. Check the show notes if you're interested in on.net and other stuff that Bertrand is up to, but let's take our first break on the other side. We'll get into the core of our conversation. Oh, that was, that was totally cheesy. We'll talk about.NET Core, catch up after a couple years of
Starting point is 00:18:29 open sourcing 1.0, announced in June, and all that that entails. So we'll be right back. This message is for all those team leaders out there that are looking to easily add new developers and new designers to their team, easily scale up when you need to. You got a big push coming.
Starting point is 00:18:50 You got a new area of the product you've got to go into. You've got more need than you thought you could. You've got to go through all this hassle of putting a job out there and hiring people to find the right people. Well, that's a bunch of hard stuff that you don't need to even deal with. Call upon my friends at TopTal. That's T-O-P-T-A-L.com. The cool thing about TopTal is you can hire the top 3% of freelance software developers and designers. And what that means is they've got a rigorous screening process to identify the best.
Starting point is 00:19:20 So when you call upon them to help you place the right kind of people into your team, then you know you're calling upon the best people out there. Once again, go to toptal.com. That's T-O-P-T-A-L.com. Or if you'd like a personal introduction, email me, adam at changelove.com. And now back to the show. All right, we are back with Bertrand Leroy talking about all things open source and Microsoft. We mentioned before the break that Bertrand was one of the actors in the company's shift towards more open source
Starting point is 00:19:53 and obviously an advocate and proponent for open source software. He also has his name on 12 patents for Microsoft that you probably did under their employ. Yeah. But you have your own opinions on software patents, don that you probably did under their employ. Yeah. But you have your own opinions on software patents, don't you? And we'd love to hear what you think about patents in general and software patents in particular. Yeah.
Starting point is 00:20:16 So that's definitely the point where I should say that I'm just a guy working for Microsoft, not a Microsoft official mouthpiece or anything like that. And so, yeah, opinions are my own, not necessarily the opinions of the company. My opinion on patents is that they have become an obstacle to innovation. Whereas originally, my understanding is that they were supposed to be driving innovation. They were supposed to be a way for companies to be able to benefit from their inventions uh uh but yeah I think
Starting point is 00:21:07 nowadays they have become something completely different they have become some some form of currency
Starting point is 00:21:13 maybe uh mostly even a trap in some cases yes yes and I
Starting point is 00:21:21 personally I think that's very sad uh when you see everything that's going on around patent trolling. So I had a small business, as I said earlier. And I think nowadays for any small business, there is this threat, this permanent threat that you might be the target of some patent fraud at some point. And yeah, that is strengthening the amount of innovation that a small company can do. So yeah, I think patent reform is sorely needed.
Starting point is 00:21:59 I couldn't disagree at all with that. I mean, I think that, you know, we've had a couple of shows, Jared, in the past. I think the one I'm thinking of is like ZeroDB earlier this year. And they didn't have a great answer for that question either, which was around ZeroDB being open source in terms of a protocol, but then having a patent. And I think they had to do it for, you know, money raising reasons. And I think even Sourcegraph had something in that conversation, if I recall correctly, from... And so there's places where you're almost forced into it as a business, but you're like, that's against my own personal beliefs. Yeah, and that's a big problem.
Starting point is 00:22:37 When you want to raise money for a startup, there are still many venture capitalists who will ask you to have patents. Because otherwise, and especially if you're trying to have an open source startup, it can be challenging because when they put money on the table, they don't want that innovation to get copied. They want to have some security in their choices, basically, which turns into lack of freedom for the rest of the world. We asked that question simply because when we were researching this call, we saw that you had 12 patents for Microsoft. We're kind of curious what your stance was on it, especially in light of you being an
Starting point is 00:23:23 actor and the company shift towards more open source and the beliefs you have. As you mentioned, you're not a mouthpiece for Microsoft, but your own opinions. And I thought it was a pretty interesting subject to talk to you about, especially as we lead into.NET Core 1.0 and recently here in June,
Starting point is 00:23:40 at least the release of that later in June's month there. And that conversation we also had back with Imo and Varun and, you know, what was that, episode 134. So let's continue that piece there. .NET Core now is open source. It has been for a bit. Now this, maybe give us the lay of the land. I know Jared and I on our pre-call, we were thinking, like,
Starting point is 00:24:03 there's so many pieces to.NET that as an outsider, it's hard to kind of peek in and know for sure, unless you're actually inside and, you know, a.NET developer. Can you kind of give us a lay of the land of what.NET Core is, what other pieces to.NET there are, and the overall landscape of what this platform is? Yeah. So what, what you're saying is, is interesting because obviously we don't want it to be hard to understand for people who haven't been doing.NET before. So yeah, that's kind of a bummer what you're saying. Well, you have like ASP.NET and you have.NET Core and then you've got all these different nuances.
Starting point is 00:24:40 And so from the outsider perspective, it's like, what is.NET? So, yeah. So like with any development technology, there are several layers to it. There is the runtime and then you have the base class library and then you have technologies that are building on top of that. So historically, we used to have the.net framework, which was Windows only. Uh, and then there is a Mono, which is an open source implementation of pretty much the same thing. Um, which by the way, that is now Microsoft as well, because, um, well, we can probably
Starting point is 00:25:21 talk about Xamarin at some point. I was going to say, does Mono still need to exist now that everything... That's a great question. Let's talk about that later. Sure. Okay. Yeah, please keep explaining. And now you have.NET Core, which is a cross-platform implementation of.NET, of the.NET runtime, if you will. And then you have the base class library
Starting point is 00:25:45 that we call the.NET standard, and that's evolving as well. And then you have technologies such as ASP.NET, WPF, stuff like that, that build on top of all that. And some of those technologies are cross-platform some are not so asp.net is cross-platform it works on.NET Core today there is a version that works on.NET Core but yeah all that can seem I realize a little bit complicated but if you're a new.NET well
Starting point is 00:26:23 if you're new to.NET, you haven't used it before, I think the easiest thing to do is to go to.NET, D-O-T dot N-E-T, and get started with.NET Core, because that's the simplest thing. You don't have to worry about.NET Frameware, all those things. Just do.NET Core and try it.
Starting point is 00:26:49 And it's a refoundation of.NET in many ways. And it should be simpler to approach. It doesn't require Visual Studio or anything like that. It's like any other development platform. You can start with the command line and the text editor and just run from there. It's definitely got a lot more approachable then. Yeah.
Starting point is 00:27:13 Well, yeah, we want it to be. It's more approachable. It's cross-platform. So yeah, it's not your old.NET. On that front, what's the draw since you said if you're a beginner, not your old.NET. On that front, what's the draw? Since you said if you're a beginner, sending someone to.NET, so D-O-T dot N-E-T on the web.
Starting point is 00:27:34 Is that net.net? Oh, I'm sorry. It's.NET. Okay. Yeah, we should talk about making things easy for folks. Yeah, that's pretty funny. Sorry, Jared jared had to laugh a lot on that one that was was it net.net or is it no uh that's funny if you're really it's.net yes gotcha but you know in light of that you know being approachable you know what is the draw to you know we're going to as something that they should look at as a developer?
Starting point is 00:28:18 What attracts people? The community, the language, the platform, what? That's a great question. Traditionally, we've been pushing the.NET brand. And to new developers, it's not necessarily the way you want to approach things. When you look at other platforms, I mean, you don't say... You talk about the language first, you know? You develop in Java, you develop in Python,
Starting point is 00:28:46 you develop in Go, right? The only example I can think of that doesn't start from the language is Node, maybe. But Node is also pretty much tied to JavaScript. So really, it's not that different. And so.NET was a little different in that way. And I'm of the opinion, and there are a few on the team who agree with that, that we should actually start with the language more.
Starting point is 00:29:16 And the thing is that we have more than one language. It's all like Java has Scala. We have F-sharp as well. We have C-sharp and F-sharp. And I think starting from the language is a really good way to talk to developers. Yeah. You start from the code, you show code and the C sharp and F sharp are, in my opinion, wonderful languages that have led the way in a lot of different interesting ways. Async await, for example, is a great feature that started on C Sharp. And it's continuing that way.
Starting point is 00:29:55 If you look at the latest version of C Sharp, you have pattern matching, which is something that comes from functional languages. F Sharp is a really interesting language to look at. So yeah, I would, if I were to talk to new developers, I would point them to one of the languages, depending where they are coming from. For example, if you come from a Java background, I would point you to C Sharp. If you come more from, I don't know, Python or JavaScript, maybe F Sharp would be a good fit.
Starting point is 00:30:31 Is it fair to say that C Sharp is Microsoft's object-oriented language and F Sharp is the functional language? It's just generalized. Yeah, even though C Sharp does have some functional features and F sharp does have some, uh, object oriented features, but yeah,
Starting point is 00:30:49 it's, it's the general, um, category that you could draw there. Yeah. What would be the best comparison? Like for F sharp specifically to another language, like if it was friends with one that looks very similar,
Starting point is 00:31:02 would it be like, would it be like, uh, an Erlang or a Clojure or would it be more like a JavaScript? Or is there even... Can anything compare? I'm sure people will scream at me
Starting point is 00:31:15 no matter what I say. Let them scream. I'm teeing you up for mad tweets. No, it's not very JavaScript-y. It's more... Yeah. It's not very JavaScript-y. It's more... Yeah. It's not less B. I think the F-sharp folks,
Starting point is 00:31:32 the people from the F-sharp team, talk about a multi-paradigm functional language or something like that, which is maybe a little too buzz-worthy, but pretty accurate nonetheless. I mean, it is multi-paradigm. You can do many different things with it. It's not limited to one specific domain, but it is essentially functional in orientation. So in terms of people that are using.NET probably we could say the majority
Starting point is 00:32:05 are on C sharp and then you have some using F sharp and then you still have some other languages like doesn't VB run on.NET still and isn't there some more legacy languages actually I know that I'm going to to have the VB folks scream
Starting point is 00:32:21 at me for not mentioning VB of course is VB still scream at me for not mentioning VB, of course. Is VB still actively maintained and moving forward? Yeah, absolutely. And it's interesting because it's not that the C-sharp features, for example, are getting literally translated to VB. That kind of used to be the case in the beginning of VB.NET, but now the new features tend to be a lot more idiomatic. So they are really two languages that have different strengths, and it's interesting to see how they evolve in parallel,
Starting point is 00:33:00 but separately. So why run in parallel? I know VB came first, and so you have existing systems and existing software. But C-Sharp has been your guys' main language or the, you know,
Starting point is 00:33:16 the head honcho language for a long time now. What's the desire to not just deprecate VB and say everybody move over to C-sharp? Is there too many lines of code in the world? I don't think that's the problem. I really think it's about curly braces.
Starting point is 00:33:35 Seriously. Did you say curly braces? He said curly braces. Seriously about curly braces? Now things just got interesting. Yeah. Not everybody likes curly braces. I love that answer. I think
Starting point is 00:33:49 you're probably right. It's probably as simple as that. Yeah. So just these two languages Microsoft's investing and the communities are investing, you know. There's thousands if not millions of dollars into these annually and it's because some people like curly braces and some people don't.
Starting point is 00:34:07 There are some really hardcore Visual Basic fans and you won't convince them that C Sharp is better. That's a great answer. I love that. That's the way it is and that's fine. Shall we talk about tabs versus spaces now? That's been decided also by BigQuery. Spaces have won. Yes.
Starting point is 00:34:32 Except for the people that love tabs. Well, he's based on the open source available. It's based on open source code, not all of code everywhere. All right. All right. So now we've gone there. We're not we're not going to talk about Vim versus Visual
Starting point is 00:34:46 Studio Code or Emacs or anything. So before before we move on can can I talk about something else that should be a big draw for people to absolutely.
Starting point is 00:34:57 Yep. There is performance to dot net core has amazing performance and that's been a major focus from the engineering team. They've spent a lot of time, and we've also had some really valuable contributions
Starting point is 00:35:12 from the community on performance improvement. And in particular,.NET Core is going to be, or is already on the TechEmpower benchmarks. And it's in the top 10, I believe. Something like that. You know, right alongside very high performance platforms. So, yeah.
Starting point is 00:35:41 It's faster than Node. It's faster than Go. I'll just mention one other, which is not a technical advantage, but let's face it, it's a real advantage, especially if you have a young developer and she's wondering, should I learn.NET or should I learn Java or Ruby or what have you, is that there are many, many large corporations that make a lot of money and they need.NET programmers. And so you tend to have a pretty, not, I wouldn't say an easy time, but you have lucrative job opportunities if you are well-versed in these technologies. And I think we'd be remiss not to mention that as a real draw to the platform. Yeah. I will mention another one. Since you mentioned kids learning how to program video games is usually very popular with the young ones. And there is a platform called Unity that you may have heard about.
Starting point is 00:36:40 Yeah. And Unity runs on.NET. And actually nowadays most of the independent gaming companies are using Unity to build their games. Most of the games you have on your cell phone have probably been built on Unity.
Starting point is 00:36:57 That was a recent announcement too back at Build. They were talking about at least I'm following this headline, at least Unity joins the.NET Foundation. I'm guessing there's more to that than than just what they announced the build before this this year yeah yeah so let's talk about dotnet core and what's new so you had your 1.0 announcement uh in june and when we first had dotnet on the show it was like you know microsoft's brand new open source baby and it was just getting started and there were things that were open source, there were things that weren't. And now it seems like it's fully matured. It's a 1.0. Can you give us kind of the what's changed between when the
Starting point is 00:37:34 announcement first went out and then all the hard work that's happened over the last couple of years, you don't actually have to detail every particular thing, but like the highlights of what.NET Core 1.0 means and some of the major changes. Ah, oh boy. Well, lots and lots of work. A difficult thing was deciding what would go into version 1.0 and what wouldn't, and the level of compatibility that it would have
Starting point is 00:38:08 with previous versions of.NET. And that's something that we are still getting up to speed with, you know, bringing community library developers on board with.NET Core because, you know, they need to... It's a new platform in many ways, but, you know, the thing is that the API surface for the moment is smaller than what people were used to on.NET Framework, which means that some libraries have actually had to undergo some significant rewrites to make it work.
Starting point is 00:38:49 So this is changing. There will be a new version soon that will implement a lot more APIs. That's what we call NetStandard 2.0. That will have an API surface that will be a lot closer to the.NET framework that people know. Where was I going with that? Yeah, what happened with.NET Core? So yeah, the 1.0 version means that the runtime is, we consider it completely stable.
Starting point is 00:39:23 You can build production software on it. It's released under an MIT license, which is very, very liberal. You can do pretty much anything you want with it. So yeah, Neuron Time, new base class library that is still being worked on very, very actively. Do you have any specifics that you'd like to ask? Well, I mean, I think a highlight of,
Starting point is 00:39:54 and I don't know if it was like just added for 1.0, but it's something that has, y'all have been working real hard on is cross-platform. Yes. So I think probably we should talk about what went into that and then perhaps what that means for us Mac OS or Linux-based developers.
Starting point is 00:40:13 That's a great question because as.NET started as mostly a Windows technology, there are some APIs in the full.NET framework that don't necessarily make a lot of sense for cross-platform implementation such as.NET framework that don't necessarily make a lot of sense for a cross-platform implementation such as.NET Core. I mean, who cares about the registry on Linux? Well, it doesn't even exist, right?
Starting point is 00:40:37 So there are a few concepts like that that just don't translate. So we have to decide what we are doing with those. Do we keep the APIs in there and make them throw when you're not on an OS that can support the capability? Do you exclude the API? It's really on a case-by-case basis, and there is a lot of work going into that. So Imo Landwurst, whom you had on the show, is the person working on that.
Starting point is 00:41:12 Yeah. And then there is tooling because it used to be the case that.NET was strongly tied to Visual Studio. And of course, Visual Studio is Windows only. So to make the platform work on Linux and Mac, we had to find other ways of tooling the platform. So.NET Core shifts its focus from Visual Studio to the command line. So it can still use Visual Studio and there is still great tool focus from Visual Studio to the command line. So you can still use Visual Studio, and there is still great tool support on Visual Studio, but you can do everything from the command line and the text editor,
Starting point is 00:41:54 which is what works on the Mac and on Linux. Well, it's interesting because I know on Go time, Jared, it's been a lot of rave. I think it's been mentioned at least several times, Visual Studio being, you know, really interesting for Go and being cross-platform is unique. And then, you know, Bertrand, you saying cross-platform is this, you know, this new thing coming, I guess, from.NET Core 1.0. But then also back in that conversation we had around Ubuntu and Bash going to Windows, all that good stuff, it seems like the next level of things for us is really about, at least in terms of.NET, is being cross-platform. You know, Linux, macOS, Windows,
Starting point is 00:42:41 and then you mentioned the focus on command line, but then you still do have Visual Studio that's cross- cross-platform now too so you have that available to you and it's just a at least basically announcements it's uh isn't that a separate project though like visual studio code correct us if we're wrong here bertram but isn't there visual studio is kind of the the old standard which is the the windows specific one but now you have visual studio code which is the Windows specific one, but now you have Visual Studio Code, which is cross platform, or do I misunderstand? Maybe I'm misunderstanding. Visual Studio is an IDE. It's a very advanced IDE.
Starting point is 00:43:13 It has a lot and a lot of features. And it is Windows only for the moment. And Visual Studio Code, on the other hand, is closer to a text editor. It's more like a… Ah, I see. That's all. And this one is cross-platform.
Starting point is 00:43:31 Now you can see why we're so confused. That's the new hotness. Yeah, naming. Y'all got to work on your naming a little bit. They are very, very different beasts. I mean, just for Visual Studio, the download is a lot more substantial and it takes more time to install it. Whereas VS Code is a few megs in download and it takes less than a minute to install. Gotcha.
Starting point is 00:43:57 Okay. So they are very different. But it may be a text editor, VS Code, but it also has some pretty advanced features in terms of debugging and code completion and so on. So you're still in a very comfortable environment. I'm pretty sure the GoTime community is excited about Visual Studio Code. Yes. Because of the...
Starting point is 00:44:22 The Go extension is very, very popular. Gotcha. Okay. This is a good place to pause. This is a great conversation. We're going to come right back to this. Let's pause here and we'll be right back. Every Saturday morning, we ship an email called ChangeLog Weekly.
Starting point is 00:44:35 It's our editorialized take on what happened this week in open source and software development. It's not generated by a machine. There's no algorithms involved. It's me. It's Jared. And curating this email, keeping up to date with the latest headlines, links, videos, projects, and repos. And to get this awesome email in your inbox every single week,
Starting point is 00:44:55 head to changelog.com slash weekly and subscribe. All right, we're back with Bertrand LaRoy, and we're talking about.NET Core. And, you know, we laughed a lot in the break, but we've all been kind of, at least I say we all, I mean me, confused about some things in terms of naming. I thought Visual Studio turned into Visual Studio Code and was open source, but that's not true. And then talking about cross-platform,
Starting point is 00:45:21 we talked about the importance of what that means, but, you know, what's the draw, Bertrand, for.NET Core to be on macOS or Linux? Well, one of our goals was to enable people to write microservice types of applications and really several applications of all kinds. And today the server is running Linux pretty much everywhere. So that's one reason why Linux is so important, probably for any development platform, but especially for one that's at this moment in time aiming at server workloads. And the Mac, that's a different reason,
Starting point is 00:46:14 which is that, well, when you go to any tech conference, you might notice that a lot of the laptops that people have are Macs, right? So it's a fact of life that a lot of the laptops that people have are Macs, right? It's a fact of life that a lot of developers are working on Macs today, so it's also important that they can develop for our
Starting point is 00:46:36 platform using the tools that they love and not force them to run a VM, just run.NET. It doesn't make a lot of sense. So for us, all three platforms are super important for different reasons. One thing, one phenomena that we watch happen a lot in open source,
Starting point is 00:46:55 especially because so many developers are running Mac OS or Linux, is a lot of the projects and platforms have poor Windows support. So Ruby has had this problem. I could probably go on, but I can't think of any other examples besides that one. But there are, especially when different things that touch the file system, or you mentioned how the registry
Starting point is 00:47:21 doesn't make sense on Linux. Well, user local doesn't make sense on Windows. And so you always have this kind of divide, even when, oh, Node's another good example. There's been a lot of issues with Node support on Windows, even though, or Windows support on Node, even though that was kind of one of the main draws to Node for many developers to get started.
Starting point is 00:47:40 But we find that there's a second-class citizen of platforms. And in the open-source world, it's been windows in certain cases yeah what what are the odds that like mac os specifically because i think linux because there's so many servers like you said and you probably have you know large corporations and customers that are running dot net on linux servers but what about i could see where Mac OS could become like the second class citizen of.NET Core's open source cross platform. Is there a dedicated like people or team that are like inside Microsoft running Mac OS and making sure that that doesn't happen or is that a real possibility?
Starting point is 00:48:23 Well, actually a lot of people on the team are using macs every day it's uh it's actually kind of encouraged um when you buy a laptop the first choice on our team i'm not talking about microsoft in general but on our team the the default kind of is a Mac. Things have changed. Yeah, I would never get that. It wouldn't make any... I mean, I guess it's nice to see that it's about you as a developer and not a forced hand, so to speak, of like,
Starting point is 00:48:55 hey, you work at Microsoft, you use Windows only, and that's how it has to be. Oh, no, not at all. It really is everybody's personal choice and what really makes sense for the job you're doing. And yeah, as you said, it's important that we have people on the team who run on macOS so that, yeah,
Starting point is 00:49:20 they can make sure all the time that it works. And of course, course we have some uh we have quite a lot of tests uh automated tests running on on on mac but that's uh that's obvious right well we we talked about mono in brief previously this is was the open source version of the dot net runtime and uh very popular and long-running project, a necessary project when everything was still proprietary. But as you mentioned before, and I kind of said, what does it mean for Mono? Is that now the main thing is open source and do we have to have Mono or what does it
Starting point is 00:50:01 mean for Mono? And you said, let's talk about that later. So I'm just bringing it back up because I'm still curious what Mono's future is, if any. The different flavors of.NET that exist today, the main ones would be.NET Framework, .NET Core and Mono. They are all being used on different workloads that are all important. Mono in particular is what drives Unity. We've talked about Unity a little bit. It's what is behind Xamarin.
Starting point is 00:50:39 So that means that if you want to run a.NET application on iOS or Android, chances are you are running it on Mono. Well, it's almost a certainty. So, yeah, I don't see them going anywhere nefarious in the near future, at least. Is it safe to say that Mono may have been early traction or early indicators that taking something for or around.NET open source could be a positive
Starting point is 00:51:09 thing? Yeah, absolutely. Yeah, it's been a huge driver for change, sure. I think Jared's question was kind of like, what happens to it? Does Mono go away or does it get folded into.NET Core now that it's open source and now that more and more
Starting point is 00:51:26 is happening around this cross-platform piece? What happens? So there are definitely things that are going to happen in terms of what implementation of the base class library each is using. And there is some convergence that's going on so that we actually don't maintain three different code bases. There is a lot that is being put in common, obviously.
Starting point is 00:51:54 But you still have the runtime itself and we have great implementations of.NET running on iOS and Android. And I'm not sure why exactly we would necessarily converge those on.NET Core, but I don't know. Maybe. I don't know. I really don't. It might happen at some point. You would have to ask the question to somebody else than me. I don't care. And yeah, it's also a problem of where you put your focus
Starting point is 00:52:29 and where you put your energies. And we have many, many things to do. So everything takes time. So we've covered cross-platform. We obviously understand how important that is because no longer are you tied to simply those who have Windows machines. You're able to attract macOS developers or anybody using a Macintosh computer.
Starting point is 00:52:51 You're also attracting those who are on Linux. So that's a good thing. You're focused on the command line. Is the command line to.NET Core, is that new? Is that something that's never been there for.NET Core? You mean for.NET in general?.NET, I guess. Yeah,.NET in, is that new? Is that something that's never been there for.NET Core? You mean for.NET in general? .NET, I guess. Yeah,.NET in general.
Starting point is 00:53:07 Sorry. Yeah, so that is new to.NET Core, yes. And it really comes from the fact that we need tooling on all the supported platforms. We need to be able to build everywhere. So, yeah. So typically, we talked before about my confusion around Visual Studio.
Starting point is 00:53:25 So you've got the IDE, you've got code. Is it a change of heart? Is it a change of retraining to people or to those developers that are.NET developers to go from an IDE, a visual thing, to a command line? Yeah, there is a fair bit of that going on. But the fact is that a lot of people in the existing .NET community were actually asking for that to happen. Really?
Starting point is 00:53:51 They wanted to use the command line more because that also means that things are easier to automate and it's a general direction the industry as a whole is going. When you look at, I don't know, if you look at some of the ideas that JetBrains are building, for example, WebStorm, for example, when you develop Node on WebStorm, what the IDE
Starting point is 00:54:17 is doing is mostly driving the command line. Right? Right. I think it's yeah it's it's
Starting point is 00:54:27 something that had to happen and I think for new developers it's actually
Starting point is 00:54:33 a lot easier but as I said the the IDE is still there and there are still
Starting point is 00:54:41 a lot of people I don't know if it's something like curly braces but there are still a lot of people who prefer don't know if it's something like curly braces, but there are still a lot of people who prefer to work in an IDE, and they can. We're giving them that choice.
Starting point is 00:54:53 Everything is possible under both environments. But yeah, now if you want to write C-sharp code, you can install it, and on the command line, you do.NET new and you're in business. It's kind of like your guys' decision
Starting point is 00:55:09 to continue with VB and also develop C sharp. You have those who want to stay with VB and you have those who want to do C sharp. And in this case, you have those
Starting point is 00:55:18 who will never leave their IDE. You can peel it from their cold dead hands. And then you have those who want something lighter, something more of a text editor, and perhaps, you know, want to run it on Linux. So I think choice is always good.
Starting point is 00:55:30 I think you guys have some work to do with your branding and your, like, cohesive story. It's because it is a bit confusing, and I feel more of, I feel like we've gotten over some bumps in the road, Adam. Yeah, me too. And we're understanding it more now. I wish that it wasn't, you know, quite this wasn't quite this hard to peel back the layers of the onion or see the whole picture.
Starting point is 00:55:53 But no doubt you guys will probably get there. Let me ask you this. So Ubuntu support now has Bash on Windows, right? We talked about that. and what I want to know is what would happen if somebody ran.NET on Linux on Bash on Windows? Would the world implode or what's going to happen there?
Starting point is 00:56:14 I don't know. That's an interesting question. You should try it. Maybe I will. I'll get Dustin Kirkland to try it. That's too funny. Yeah, sounds like a fun experiment. All right, listeners.
Starting point is 00:56:27 A challenge to the listeners. Somebody go out there, do that, report back, and we will link it up. Open an issue, let us know what happens. Give us a video gif or a full-on video, whatever works. Inception. So, to
Starting point is 00:56:43 wrap some things up here, if you're just getting started or if you're someone out of the ones to peek into this world, going to.net, which is actually dot.net slash core would be going to the core page. That's what they recommend in this announcement for.net core 1.0 back in June. So if that's where you're, where you're starting out,
Starting point is 00:57:03 that's what I'm saying, at least from this, this article here, but Bertrand from you, from So if that's where you're, where you're starting out, that's what I'm saying, at least from this, this article here, but Bertrand from you, from, uh, from your perspective, you know,
Starting point is 00:57:09 if there's a listener out there who's been listening along, like thinking, you know, I'm interested in this. I want to get involved. I, you know, I don't see what Jared and Adam see.
Starting point is 00:57:17 I don't see these layers to the onion. I get it. It's, it's easy for me, or they're just simply interested. What are, what are some good resources, good people to follow,
Starting point is 00:57:26 good places to kind of catch up? Obviously, you've got your show on.NET, but who might someone follow? Where might someone go to get started or to at least open up this world for them? I would definitely check out the C Sharp language tutorial or one of the F-sharp tutorials. One thing you...
Starting point is 00:57:49 Well, yeah. I was going to say one thing you can do is follow the Weekend.net posts on the.net blog and look at all the articles that people are publishing. But maybe that's more for somebody who is already familiar with it. The documentation site might be a good place to start. Obviously.
Starting point is 00:58:13 So dotnet dot net. Yeah. Uh, if you're curious about the language, you have some tutorials for that. If you're curious about the ecosystem and the kinds of libraries that you can find, you can go to nuget.org. N-U-G-E-T dot org. That's the package manager for.NET. How about some people? Like who might someone like, let's just... Oh, yeah.
Starting point is 00:58:38 Let's allow some Twitter followers. We can get some ad symbols or anybody on GitHub, some followers there. Yeah. So obviously one very prominent figure in the.NET world is Miguel De Icaza. Matt Storgerson is interesting to follow. He's the PM for C Sharp. Dunsime, if you're interested in F Sharp, you should definitely follow him.
Starting point is 00:58:59 Philip Carter also, who is the program manager for F Sharp. Rachel Reese is interesting to follow. She's working at Jet. That's a company that was bought by Walmart a few months ago for $3 billion, something like that. So they know what they are doing there, apparently.
Starting point is 00:59:19 Nick Craver is awesome if you're interested in performance on.NET. He's from Stack Overflow. Dustin Campbell works on VS Code. Orwan Miller, he's in charge of Entity Framework, which is the object relational mapper that you can use on.NET Core. Well, the good thing is that you've got
Starting point is 00:59:46 no shortage of people, which is great. Oh, yeah. Well, yeah, there's lots and lots of people. So here's what we'll do then. All the people that you mentioned,
Starting point is 00:59:55 we'll listen back to, but if you've got URLs or Twitter handles or something to share with us, we'll make sure we get those in the show notes. That way, any listeners
Starting point is 01:00:02 that are following along can go out and follow those people and kind of see what they're into or i'll come up with a with a list of people and uh yeah you can put that in the description this bertrand recommends following these people and we'll just put a list how about that sure so bertrand uh just to close with the show here is there anything else that uh that we didn't cover that was like you you wanted to make sure we got mentioned in the show yeah so i briefly mentioned that uh the team is currently hard at work making sure that the api surface for dot net core becomes um a lot bigger than it is today so next version of dot net Core will have a lot more APIs
Starting point is 01:00:45 to work with. So that's interesting. Another thing we are working on is converging our project system so that all the different flavors of.NET are talking the same language in terms of building.
Starting point is 01:00:57 But that's more like a technicality. It's a lot of work for us, but hopefully lots of benefits for our users in the end. Yeah, so we are working on that and it should come out probably at pretty much the same time as the next version of Visual Studio. I wish I could give you a date for that, but I can't.
Starting point is 01:01:24 Can I ask you one more personal question? the next version of Visual Studio. I wish I could give you a date for that, but I can't. Can I ask you one more personal question? Do you use Visual Studio or Visual Studio Code? I use both. Ugh, dodging me. No, it really depends what I'm doing. So when do you use which one? When I'm building something that is... Well basically when i'm on windows i mostly use visual studio mostly uh it depends i i don't really know why i use one or the other i it it
Starting point is 01:01:58 also a question of mood maybe i don't know that's an interesting question i never actually thought about it i just pick one, depending on what I'm doing. Interesting. I couldn't do that. I would have to pick one. How about you, Jerry? There can be only one, yeah. Well, I say that,
Starting point is 01:02:14 but I use Vim and Sublime. Oh, and by the way, you know that you can use.NET Code on Vim and Sublime if you want. There is the service that powers the code completion on VS Code for.NET also works for Vim and Sublime and Emacs. So, yeah. That's the conception right there.
Starting point is 01:02:42 You can even have code completion on your favorite editor. Nice. Present. 2016, man. It's great. Good year. It's a good year for.NET. So we mentioned earlier in the show that article for Microsoft being the most or one of the biggest contributors to open source.
Starting point is 01:03:01 We have a weekly email we ship called ChangeLaw Weekly. I'm not sure if you know about this email, but if you don't, you've got to subscribe. Go to changelog.com slash weekly. We put a lot of love into that email every single week. Headlines, links, the latest that's happening in open source, software development,
Starting point is 01:03:18 our latest episodes, projects and repos. We also have an open inbox, we like to call it, on GitHub. Go to github.com slash thechangedlog slash ping. You can submit an issue there and share your latest open source there. We have a section in our email just for that called Ping.
Starting point is 01:03:36 That's pretty interesting. Excellent. Do you subscribe to the email by any chance? Not yet, but I will. You will. Great. That's my goal,ared this is a subscriber per show that's how we do it we just uh we shame people into subscribing at the end of the show
Starting point is 01:03:53 that's right i like that we're gonna start doing that i like that that's a lot of good stuff right there yeah and you go to one.net download the bits um i'm i'm already I'm doing it I'm subscribed on YouTube now I'm a subscriber excellent that's the way you gotta do it I love the fact that the show is live it just kind of gives it that extra perspective that it doesn't need to be overly produced
Starting point is 01:04:17 plus you never know what's going to happen that's right with Bertrand it's a lot of fun yeah we got in trouble a couple of times oh how so oh well I'm not going to get in trouble this time
Starting point is 01:04:33 so I'm not telling you you have to go watch it you have to go watch it yeah we'll leave it there then so Bertrand if there's nothing else you have to say we're going to close this show out it was definitely a blast having you on the show
Starting point is 01:04:48 and I appreciate you know now my knowledge of.NET only that but also Visual Studio I don't know how I gapped that Jared
Starting point is 01:04:56 I feel like an idiot but I'll be an idiot on air and that's just how it'll be so yep but that's it
Starting point is 01:05:02 for this show so let's let's say goodbye well thanks for having me it's been very fun thank you thanks Bertrand bye So, yep. But that's it for this show. So let's say goodbye. Thanks for having me. It's been very fun. Thank you. Thanks Bertrand.
Starting point is 01:05:09 Bye. Thank you. Bye bye. Outro Music

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