Join this session with Magnus Mårtensson ft. Mads Torgersen for a new episode of The Cloud Show with Magnus Mårtensson on March 13, at 01:05 PM (EST).
The show is about cloud leadership and all the important questions relating to cloud projects. Certainly, many matters when a company is going to and wants to be successful in the cloud, are about technology. However, there are many additional matters, adjacent to technology, that we also need to tend to regarding business strategy, human resources, organizational change, planning for a technical cloud approach, and many more questions. These conversations are critical for a healthy cloud and for a swift and accurate cloud approach.
GUEST SPEAKER
Mads Torgersen is the Program Manager for the C# Programming Language. He runs the C# language design process and maintains the language specification. He also participated in the design of TypeScript and Visual Basic.
📺 CSharp TV - Dev Streaming Destination http://csharp.tv
🌎 C# Corner - Community of Software and Data Developers
https://www.c-sharpcorner.com
#CSharpTV #csharpcorner #TheCloudShow #CSharp #Interview
Show More Show Less View Video Transcript
0:00
Hello everyone, welcome back to the Cloud Show
0:11
I am not at home today, I am somewhere else. I have lent this studio graciously by
0:17
my friends at SSW down in Australia. I am not again at home because I'm at conference
0:23
I'm at NDC conference in Sydney. I urge everyone to take a look at NDC conferences
0:28
They're always really good. They always have really great speakers there, and the food and everything is usually really, really nice
0:35
I have the opportunity now to lend the studio again, thanks guys, and sit down with a good friend to talk about
0:42
some things related to language because I have a treat for you
0:47
I'm sitting down with no one less than Mads Torgersen. Hello, Magnus. Thanks for having me here
0:53
Hello, Mads. It's so good to see you. It's wonderful to have this opportunity to sit down and chat
0:58
It is. Obviously, talking to you, it's going to be talking about languages
1:03
I don't know if you guys know this. If I describe Mads to someone else
1:08
I would say, he's not the father of C-sharp. He didn't invent the thing
1:12
He's not the father of TypeScript either, but maybe the mother because you care for it
1:18
You take care of the language. Is that an appropriate description? No. That seems a little gendered to me
1:24
Well, maternal. I'm his legal guardian. Legal guardian. That's who I am
1:29
The legal guardian of the languages. Brilliant. That's mostly a joke, of course
1:35
but it sets context. You take care of these languages in Microsoft and evolve them. C-sharp
1:43
C-sharp. Yes. C-sharp. Cool. C-sharp is your baby-ish. What I want to talk to you about is what's in a language
1:56
Why do we care which language we use and what's appropriate for different scenarios
2:03
Just because you have C-sharp doesn't mean that everything, the C-sharp hammer, everything is a nail
2:09
No. You might need to use other things as well. That is true. C-sharp
2:14
tries very hard to be a general purpose language, and it is being used for a surprising number of things
2:19
Certainly, I think the original inventors of C-sharp more than 20 years ago would be surprised to see
2:26
all the things it's being used for today and all the platforms it's being used on and so on. That's probably true
2:30
But even so, there are definitely characteristics of C-sharp that make it more well-suited for some things
2:37
and other languages would do a better job elsewhere. So, there's still a little bit of that
2:43
So, if I'm a project manager, and I'm maybe not so technical, not necessarily
2:48
I can be, but what if I'm not super technical, and my engineers, my developers are coming to me
2:54
excitedly talking about which language to use for the project. How do I even approach to evaluate something like that
3:01
if it's the right fit or not the right fit? Well, first of all
3:05
I think most things, to be honest, most things are the right fit
3:09
Most things are good enough. That's a point that's been made at this conference also
3:15
People get very intense about this is the best technology, this is the best technology
3:22
and most things are actually good enough. I think there are definitely technical differences
3:28
and sometimes they're crucial, but mostly they're not. You want something, typically
3:34
if you're building bigger projects that will be long-running, and where there's a number of engineers involved
3:43
Well, you want to use a technology that's stable, that has strong backing
3:47
Like C-Sharp. Like C-Sharp, but also like other things, that have probably a great future ahead of them
3:56
and where the investment of people, A, you can find a bunch of people who are already experts
4:03
but the investment of people to then learn it if they don't, will pay off for them as professionals as well
4:10
and for you if you keep them around. That's a really good point. So, if it's a big investment you're making
4:16
I think you'll just want to make sure that you're not running a big risk
4:20
Then if you want to play with more exotic things, or newer, or smaller
4:27
do it in smaller projects. It's interesting that that applies to languages as well
4:33
I didn't think about that really, because I have an example of something that
4:37
zooms out just one step from that, because there was this team that they were building an app
4:42
and they were setting that up to run in a platform somewhere
4:46
and then they came with the specs, like here's what we did
4:50
It almost felt like they had taken great care to use all the things that were not standard
4:58
They had every tool, and everything, and every technology, all mashed up
5:05
and that team was probably excellent at managing that, but to hand that over to someone else to operate it
5:13
and then the longevity of that project, maintain this. That's ridiculous. That would just never work
5:20
That's where you standardize. That's what your point is. You should be thinking about the longevity of things
5:28
Yes, you definitely should. I'm not here to say that you pick whatever you like
5:32
C Sharp is great. Yes, you would pick C Sharp. I would pick C Sharp. Yes
5:37
You don't have to. I would pick it for most things. There are probably things where I wouldn't
5:41
But we try our best to strike that balance of being stable and reliable
5:52
being a good investment for the long term, but also investing heavily in its evolution
5:57
and that's sort of my part of it, so that it doesn't gradually disappear in the rear view mirror
6:04
and become like legacy that in 10 years' time, you'll need to, you know
6:09
there'll be fewer and fewer C Sharp developers, and they'll demand a high price to maintain your outdated thing
6:16
because it was written in C Sharp. We want to stay a living language that does the things modern developers need to do really well
6:25
And being that a living language that should be sustainable and should hopefully attract many users in many years to come
6:34
is that, I mean, that's the great challenge, I suppose, but is the language going to evolve forever
6:40
Things will be changing, so the language will always evolve? I, you know, yes
6:48
I mean, there might be, look, some things can happen. You know, there could be like a paradigm shift in the industry
6:59
where there's a turn that C Sharp just can't take. Like, sometimes there's this paradigm shift, like the cloud
7:06
It would be sad, though, like, remember C Sharp once upon a time
7:10
that the thing we're not using anymore? That sounds so sad. Let's say that we all do quantum programming 20 years from now
7:16
C Sharp can't do that, and it can't be modified to do that. Most other program languages wouldn't, right
7:20
That would be one of those things, a mass extinction kind of event. Oh, sure
7:24
But, and then the other thing that can happen, of course, is that at some point it becomes too hard for us
7:31
to keep evolving the language in a way where it still kind of hangs together and feels consistent
7:36
That point is something that I think we would all have thought we had reached long ago, but we're still not there
7:42
Still adding new features. Somehow it still really works out, and people are still really happy
7:46
with the way that we integrate new features into the existing fabric
7:50
And so, even though I keep worrying that that point will happen
7:54
because then I'll have to find a new job and, you know, it just seems to not happen
7:59
We're trying to be just really careful that we don't break anything
8:05
that we don't, like, make big mistakes. We're trying to be really thoughtful about what we add
8:10
but then still being really eager to, once we've established that this is going to be a good, solid thing
8:17
to actually do it and not be too cautious and not kind of fall off the wagon
8:21
So, maybe a contentious question, but potentially, let's check. I'm going to give you an option, though
8:30
Option to add anything to the language right now that you wish you had, just be able to add
8:36
or maybe just remove something that you feel is in your way
8:40
I wish we hadn't done that. Like, pick something. Okay, well, I think I'll pick one of the latter
8:49
But things I wish we hadn't done in hindsight... Sure, because you don't know where we're going exactly
8:57
I don't think there are things that are completely terrible, but I could go all the way back to C Sharp 1 and say
9:03
I wish we had added proper function types instead of those weird..
9:08
This is very technical. Instead of weird delegate types that are like
9:14
some combination of function types, but they're also collection types. Do you know you can add two delegates and then you call it
9:23
and then you call two functions? You know, weird stuff like that. So, they're kind of things I would want to go back and clean up
9:29
Okay, but now it's hard to remove things after the fact. The thing is, you can't remove them
9:36
You could always say, oh, here's something better. Here's the new and better function type
9:41
But every time you do that, we have a massive ecosystem. Of course
9:45
We have our own big frameworks of 20 years that kind of go along with .NET
9:49
and then there's everybody who built things around it. If you say, oh, that thing that you have 100 million lines of code already using
9:58
you should use this instead. Like, who does that help? No, it doesn't help
10:02
So, there are some limitations. That's too hard. Yes, of course. Okay, cool
10:05
Well, we want to keep these videos short and snappy, and I don't want to take up too much of your time
10:12
And so, to be mindful about everyone here, and we're going to go back to the conference now
10:16
but it was lovely talking to you today. Mads, thank you for being on the Cloud show
10:20
Thanks for the opportunity. This was fun. Thank you, Magnus
#Programming
#Software
#C & C++
#Development Tools
#Scripting Languages
#Windows & .NET


