The Changelog: Software Development, Open Source - .NET Core and Microsoft's Shift to Open Source (Interview)
Episode Date: October 21, 2016Bertrand 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)
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.
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,
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,
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.
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?
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.
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.
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.
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.
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
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.
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.
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.
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.
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.
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?
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.
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
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,
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,
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,
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.
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
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?
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
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.
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
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
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.
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,
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
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.
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,
what,
uh,
is it cloud?
What's the,
uh,
it's YouTube.
And then what else?
There's two places.
Cloud nine.
Yeah.
So the,
the name of the show is on dot net.
Right.
And,
uh,
it's,
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.
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.
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
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.
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.
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
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.
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
nowadays
they have become
something
completely different
they have become
some
some form of
currency
maybe
uh
mostly
even a trap
in some cases
yes
yes
and I
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.
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.
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
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,
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,
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.
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
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
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
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.
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.
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.
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?
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,
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.
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.
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.
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,
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,
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
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,
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
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
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,
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,
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.
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
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.
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.
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
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.
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
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.
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.
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.
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
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
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.
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.
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,
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.
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?
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.
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,
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,
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.
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.
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.
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...
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.
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,
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,
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,
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
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,
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
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.
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?
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,
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,
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
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.
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
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
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.
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
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.
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.
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.
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?
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
is doing is mostly driving the command line.
Right?
Right.
I think
it's
yeah
it's
it's
something
that had
to happen
and
I think
for new
developers
it's actually
a lot easier
but
as I said
the
the IDE
is still there
and
there are still
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.
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
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
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.
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.
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?
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.
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
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,
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,
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.
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,
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...
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.
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.
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.
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.
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
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,
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
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
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.
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.
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
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,
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.
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.
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,
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.
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
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
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
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
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
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
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.
Bye.
Thank you.
Bye bye. Outro Music