Everyone seems to think that if they pick the
wrong language, that will be a huge mistake.
And I can't think of a wrong language.
Welcome to Screaming in the Cloud.
I'm Corey Quinn.
I'm joined this week by Scott Hanselman of Microsoft.
He calls himself a Partner Program Manager, or is
called a Partner Program Manager, but that feels like
it's barely scraping the surface of who and what he is.
Scott, thank you for joining me.
Thank you for the introduction.
I think my boss calls me that.
It's just one of those HR titles.
It doesn't really mean, you know, program manager.
What does it even mean?
I figure it means you do an awful lot of programming.
This episode is sponsored in part by my day job, The Duck Bill Group.
Do you have a horrifying AWS bill?
That can mean a lot of things.
Predicting what it's going to be.
Determining what it should be.
Negotiating your next long term contract with AWS.
Or just figuring out why it increasingly resembles a
phone number, but nobody seems to quite know why that is.
To learn more, visit duckbillgroup.
com.
Remember, you can't duck the duck bill, Bill.
And my CEO informs me that is absolutely not our slogan.
One of the hardest questions as you start doing different things,
and Lord knows you do a lot of them, is that awful question that you
wind up getting at cocktail parties of, so what is it you do exactly?
How do you answer that?
Yeah, it's almost like that when you, if you spend any time on
Clubhouse recently, there was a wonderful comedian named Spunky
Brewster on Instagram who had a whole thing where she talked about
the introductions at the beginning of a Clubhouse thing where it's
like, you're a multi hyphenate sandwich artist slash skydiver slash
programmer slash whatever, one doesn't want to get too full of oneself.
I would say that I have for the last 30 years been a teacher.
and a professional enthusiast around computing
and getting people excited about computing.
And everything that I do, whether it be writing software, shipping software,
or building community, hangs off of the fact that I am an enthusiastic teacher.
You really are.
And you're also very hard to pin down.
I mean, it's pretty clear to basically the worst
half of the internet that you're clearly a shill.
The problem is defining exactly what you're a shill for.
You're obviously paid by Microsoft, so clearly you push
them well beyond the point when it would make sense to.
You have a podcast that has been on for over 800 episodes,
which puts this one to shame, called Hansel Minutes.
And that is, of course, something where you're shilling for your own podcast.
You recently started on TikTok, which I can only
assume is what the kids are into these days.
You're involved in so many different things and taking so many different
positions that it's very hard to pin down what is the stuff you're
passionate about.
I'm going to gently push back and say, at least do,
that one word of care to look at it holistically.
I am selling enthusiasm around Free and open source software on
primarily the Windows platform that I'm excited about, and I am selling
empowerment for the next generation of people who want to do computing.
Before I went to Microsoft, my blog and my podcast existed,
and I was consistent in my, Hey, have you heard the news?
To anyone who would listen, and I, I taught at both Portland Community
College and at Oregon Institute of Technology, teaching web services
and history of the web and C Sharp and all that kind of stuff.
So, like, I'm one of those people where if you touch on
a topic that I'm interested in, I'll be like, Oh, yeah.
Oh my goodness, let's, and I'll just like, you know, knock everything off the
desk, and I'm like, okay, let's, let's build a model, a working model of the,
uh, of the solar system here now, you're, the orange is the sun, and then it's
like suddenly now we're talking about science like Hank Green or whatever,
like, my family will ask me, like, why isn't the remote control working, and
then I've taken it apart, and I'm explaining to the, them how the infrared LED
inside works, and I'm like, How can you not be excited about all these things?
And that's my whole thing about computing and the power
that being able to program computers represents to me.
I would agree with that.
I'd say that one thing that is universal about everything
you're involved in is The expression I heard that I love and
I'm going to recapture has been sending the elevator back down.
Oh yeah, throwing ladders, ropes, elevators.
I am very blessed to have made it out of my neighborhood
and I am very hopeful that anyone who is in a situation that
they do not want to be in could potentially use the elevator.
Coding, Programming, IT, Computing, as the great equalizer and that
they, and I could somehow lend my privilege to them to get the things
done and solve the problems that they want to solve with computers.
I'm sure that you've been asked ad nauseum
about, you work in free and open source software.
You've been an advocate for this, effectively, for your entire career.
Did no one tell you you work at Microsoft?
But that's old Microsoft in many respects.
That's something that we've covered with a bunch of
different guests previously from Microsoft, and it's
honestly a little, it's becoming a bit of a tired trope.
It was a really interesting conversation a few years back.
Oh, it's clearly all just for show.
Well, that is less and less clear.
obvious and more and more tired and frankly bad take as time progresses.
So I want to go back a bit further into my own personal journey
because it turns out that the number one reason to reach
out to you for anything is tech support on various things.
I don't talk about this often, but I started my career moonlighting
as a Windows admin back in the Windows 2003 server days, and it was an
experience, and licensing was a colossal pain, and I finally had enough of
it one day in 2006, switched over to Unix administration, BSD, and got a
Mac laptop, and that was really the last time that I used Windows in anger.
Now, it's been 15 years since that happened, and I
haven't really been tracking the Windows ecosystem.
What have I missed?
There's a lot there
that you just said.
So first, different people have their religions and
they're excited about them, and I encourage everyone to
be excited about the religion that they're excited about.
It's great to be excited about your thing, but it's
also really not cool to be a zealot about your thing.
So hey, be excited about Windows, be excited about Linux, be excited about Mac.
Just don't tell me that I'm going to heck
because I didn't share your enthusiasm.
Let's just be excited together and we can be friends together.
I've worked on Linux at Nike, I've worked on Mac, I've
worked on Windows, I've, you know, I've been there before
these things existed, and I'll be there afterwards.
Exactly.
At some point, being a zealot for a technology just sort of
means you haven't been around the block enough to understand how
it's going to break, how it's going to fail, how it's going to
evolve, and it doesn't lead to a positive outcome for anyone.
And it fundamentally becomes a form of gatekeeping more than
anything else, and I just don't have the stomach for it.
Yeah, and ultimately we're just looking for, you know, we got these smart
rocks that we taught how to think with Lightning, and they're running
for loops for them, for us, and maybe they're running them in the cloud,
maybe they're running locally, so I'm not really too worried about it.
Windows is my, my thing of choice, but just like, you
know, One person's Honda's, another person's Toyota.
You get excited about the brand that you start out with.
So that's that.
Currently though, Windows has gone, at least in the last maybe 20
years, from one of those things where there's like generational
pain and like, Microsoft killed my pappy and I'll never forgive you.
And it's like, yeah, there was some dumb stuff in the
nineties with Internet Explorer, but I've never been.
As a somewhat highly placed middle manager at Microsoft, I've
never been in an active mustache twirling situation where I
was behind closed doors and anyone thought anything nefarious.
There's only a true, what's the right thing for the
customer, what is the right thing for the people.
My whole thing is to make it so developers can develop more easily on Windows.
So I'm very fortunate to be helping some folks in a partnership
between the Windows division and the developer division that
I work in to make Windows kick butt when it comes to dev.
Historically, the Windows terminal, or what's called cmd.
exe, which is run by a thing called the console host, has sucked.
It has lagged behind.
So if you drop out to the command line, You've got the, you know, the old kind
of quote unquote DOS shell, the CMD processor, it's not really DOS, running
in an old console host, and it's been there for, gosh, probably early 90s.
That sucks.
But then you've got PowerShell, and again I want to juxtapose the difference
between a console or a terminal and a shell, they're different things.
There's lots of great third party terminals in the ecosystem.
There's lots of shells to choose from, whether it be
PowerShell, PowerShell Core, now PowerShell 7, or the
CMD, as well as Bash, and SigWin, and ZSH, and Phish.
But the actual thing that paints the text on
Windows has historically not been awesome.
So the new open source Windows terminal has been the big thing.
If you're a Mac head and you use, like, iTerm2 or Hyper
or things like that, you'll find it very comfortable.
It's a tabbed terminal, split screen, rippin
fast, written in, you know, DirectX, C etc, etc.
All open source.
And then it lets you do transparency and background colors and ligature
fonts and all the things that a great modern terminal would want to do.
That is kind of the linchpin of making Windows awesome for developers,
then gets even awesomer when you add in the ability that we're
now shipping an actual Linux kernel and I can run N number of
Linuxes, side by side, in multiple panes, all within the terminal.
This getting to the point about juxtaposing the difference
between a terminal and a console and a, and a shell.
So I've got, like, on the machine I'm talking to you on
right now, on my third monitor, I've got Windows Terminal
open with PowerShell on Windows on the left, Ubuntu 18.
04 LTS on the right, with, you know, the Phish
shell, and, uh, then I've got another Ubuntu 20.
04 with Bash on the right.
Standard Bash shell and I'm going testing stuff in Docker and
running NET and Docker and getting ready to deploy my own podcast
website up into Azure and I'm doing it in a totally organic way.
Like it's not like it's like, oh, I'm just running a virtual machine.
No, it's like integrated.
That's what I think you'd be impressed with.
That right there is the reason that I generally tended to shy away
from getting back into the Windows ecosystem for the longest time.
This is not a slam on Windows by any stretch of the imagination.
No, of course.
Sure, sure, sure.
My belief has always been that you operate within the
environment as it's intended to be operated within.
Mhm.
It felt at a time like, oh, install SIGWIN and get
all this other stuff going and run a VM to do it.
It felt like I was fighting upstream in some respects.
Oh yeah, that's a great point.
Let's talk about that for
a second.
So let's do it.
So SIGWIN is the GNU utilities that are written in a very nice
portable C, but they are written against the Windows kernel.
So the example I like to use is LS.
You type LS, you list out your directory, right?
So LS and DIR are the same thing for this conversation.
Which means that someone has to then call a system, call sis, call and Linux
Windows kernel, call in Windows and say, Hey, would you please enumerate
these files and then give me information about them and check the metadata.
And that has to call the file system.
And then it's turtles all the way down.
Siggu isn't Linux, it's the Bash and g.
New utilities recompiled and compiled against the windows.
Stuff.
So it's basically putting a Bash skin on Windows, but it's not Linux.
It's Bash.
Okay?
But WSL is actually Linux, and rather than firing up a big 30 gig Hyper
V or VirtualBox or Parallels virtual machine, which is like a moment.
I'm firing up the VM!
Call me in an hour when it comes back up, right?
And when the VM comes up, it's like a square on your
screen, and now you're dealing with another thing to manage.
The WSL stuff is actually a utility virtual machine built on a lower
subsystem, the virtualization platform, and it starts in less than a second.
Like, you can start it faster than you can, say, 1 1000.
And it goes instantly up, automatically allocates and
deallocates memory, so that it's smart about memory.
And it's running the actual Linux kernel, so it's not pretending to be Linux.
So if your goal is a Linux environment, and you're a Linux developer, the time
of Linux on the desktop is happening, in this case on the Windows desktop.
Where you get interesting stuff, and where I think you would, your
brain might explode, is imagine you're in the terminal, you're at
the Linux File system at the bash prompt, and you type notepad.
exe, what would you expect to happen?
You'd expect it to try to find it in the Linux path and fail.
Right, and then you're trying to figure out, am I in this environment?
Because you generally tend to run these things in the
same looking terminal, but then all the syntax changes as
soon as you go back into the Windows native environment.
You're having to deal with line ending issues on a constant basis.
Oh, yeah, all that stuff.
Okay.
And as soon as you ask for help, because back in those
days, I was looking primarily into using Freenode.
as my primary source of support because I was network
staff of the network for the better part of a decade.
And the answers, I'm having some trouble with Linux and the
response is, Oh, you're, you're doing this within a Windows
environment, get a real computer kid because it's still IRC and
being condescending and rude to anyone who makes different choices
than you do is apparently the way that that was done back then.
Well, today in 2020, because we don't want to just have.
Light integration with Windows, and by light integration,
like, I don't know if you remember firing up a virtual
machine on Windows and then, like, copy pasting a file.
And we were all like, oh my god, that's amazing.
Like, I drug the file in and then it did a little bit of
magic and then moved the file from Windows into Linux.
What we want is to blur the lines between the two so you can move comfortably.
When you type explorer.
exe or notepad.
exe in Linux on Windows, Linux says no.
And then Windows gets the chance.
Fires it up, and can access the Linux file system, and since
Notepad now understands line endings just happily, you can open
up your profile, your bash profile, your ZSH file in Notepad,
or, here's where it gets interesting, Visual Studio Code.
And comfortably run your Windows apps, talking to your Linux file system,
or in the, uh, coming soon, and we've blogged about this and announced it
at Build last year, run Linux GUI apps seamlessly, so that I could have
two browsers up, two Chromes, one Windows and one Linux side by side,
which is going to make, you know, web testing even that much easier.
And I'm moving seamlessly between the two.
Even cooler, I can type explorer.
exe And then pass in dot, which represents the current folder.
And if the current folder is the Linux file
system, we seamlessly have a plan 9 server.
Basically a file server that lets you access your
Linux file system from Is it actually running plan 9?
It is.
It is a plan 9 server.
That is amazing.
I'm sorry.
That is a blast from the past.
I'm glad.
And we can run n number of Linuxes.
This isn't just one Linux.
I've got Kali Linux, two different Ubuntu's,
and I could tar up the user mode files on mine.
Zip them up, give them to you, and you could go and type WSL import
and then have my Linux file system, which means that we could
make a custom Screaming in the Cloud distro, put it in the Windows
Store, put it up on GitHub, build our own, and then the company
could standardize on our, our Linux distro and run it on Windows.
That is almost as terrible idea as using a DNS service as a database.
I love it.
I'm, I'm totally there
for it.
It's, it's really nice because it's extremely,
the point is it has to have no friction, right?
So if you think about it this way, I just moved, I blogged
about this if people want to go and learn about it.
I just moved my blog of 20 years off of a Windows Server 2008
server running under someone's desk at a host into Azure.
This was a multi month long migration.
My blog, my main site, kind of the whole
Hanselman ecosystem moved up into Azure.
So I had a couple things to deal with.
Am I going to go from Windows to Linux?
Am I going to go from a physical machine to a virtual machine?
Am I going to go from a physical machine to
a virtual machine to a platform as a service?
And when I do that, how is that going to change the way that I write software?
I was opening it in Visual Studio, pressing F5, and running it in IIS,
the Internet Information Server for Windows, for the last 10 years.
15, 20 years.
How do I change that experience?
Well, I like Visual Studio.
I like pressing F5.
I like interactive debugging sessions, but I also
like saving money running Linux in the cloud.
So how can I have the best of all those worlds?
Because I wrote the thing in NET, I moved it to NET 5, which runs
everywhere, put together a Dockerfile, got full support for that in
Visual Studio, moved it over into WSL so I can test it on both windows.
And Linux.
I can go into my folder on my WSL, my Windows subsystem for Linux.
Type code.
Open up Visual Studio Code.
Visual Studio Code splits in half.
The Windows client of Visual Studio Code runs on Windows.
The server, the Visual Studio Code server, runs in
WSL, providing the bridge between the two worlds.
And I can press F5 and have interactive debugging, and now
I'm a Linux developer, even though I've never left Windows.
Then I can right click Publish in Visual Studio to
GitHub Actions, which will then throw it into the cloud.
And I moved everything over into Azure,
saved 30%, And my, and everything's awesome.
Like, I'm still a Windows developer using Visual Studio.
So it's pretty much, uh, I don't know, non denominational.
Kind of mixing the streams here.
It is, and let me take it a step further.
When I'm on the road, the only computer I bring with me these
days, well, in the before times, let's be very realistic, now
when I'm on the road, that means going to the kitchen for a snack.
The only computer I bring with me is my iPad Pro.
Which means that everything I do has a distinct application.
For when I want to get into my development environment,
historically, it was use some terminal app.
I'm a fan of Blink, but everyone has their own.
Don't email me.
And everything else I tended to use looked an awful lot like a web app.
If there wasn't a dedicated iOS app, it
was certainly available via a web browser.
Which leads me to the suspicion that We're almost approaching a post operating
system world where the future development operating system begins to look an
awful lot, and people are going to yell at me for this, Visual Studio Code.
It supports a bunch of remote activities.
Now that GitHub Codespaces is available, at least to my account, I
don't know if it's generally available yet, but I've been using it.
I love it.
Everything it winds up doing is hosted remotely in Azure.
I don't have to think about managing the infrastructure.
It's just another tab within GitHub and it works.
My big problem is that I'm trying to shake effectively
20 years of muscle memory of wrestling with Vim.
And it's, it takes a little bit of a leap in order to become
comfortable with something that's a more visually oriented IDE.
Why don't you use, uh, the VS Vim, Jared Parsons Vim plugin for Visual Studio.
I've never yet found a plugin that I like for
something else to make it behave like Vim.
Vimparator is a browser extension.
All of it just tends to be unfortunate and annoying in different ways.
For whatever reason, the way that I'm configured
or built, it doesn't work for me in the same way.
And it gets back to our previous conversation about using the native
offering as it comes, rather than trying to make it look like something
else.
Okay, I would just offer to you and for other Vim people
who might be listening, uh, That VS Code Vim does have 2.
5 million installs, over 2 million people
happily using that, and they are Come to find
it only has 200, 000 actual users, there was an installation
bug, and one person just kept trying over and over and over.
I kid, I kid.
No, seriously though, these are actual Vim heads,
and Jared Parsons is a developer at Microsoft who is
like, out of his cold dead hands, you'll pull his Vim.
So there's solutions, whether you're Vim
or Emacs, you know, we welcome all comers.
But to your point, the Visual Studio, once it got split
in half, where the language services, those services
that provide context to Python, Ruby, C sharp, C etc.,
once those extensions can be remoted, they can run on
Windows, they can run on Linux, they can run on the cloud.
So VS Code being split in half as a client server application has really
made it shine and for me that means that I don't notice a difference
whether I'm running VS Code on Windows or running VS Code to a remote Linux
install or even using SSH and coding on Windows remotely to a Raspberry Pi.
I love the
idea.
I've seen people do this, in some respects, back in the days of Code
Server being a project on GitHub, and it took a fair bit of wrangling
to get that to work in a way that wasn't scarily insecure and reliable.
But once it was up and running, you could effectively plug
a Raspberry Pi in underneath your iPad and effectively have
a portable computer on the go that did local development.
I'm looking at this and realizing the future doesn't look at all like
what I thought it was going to, and it's really still kind of me.
There's a lot of value in being able to make things like this more accessible.
The reason I'm excited about a lot of this too, is that Aligned with a generous
free tier opportunity, which I don't know final pricing for things like GitHub
Codespaces, suddenly the only real requirement is something that can render a
browser and connect to the internet for an awful lot of folks to get started.
It doesn't require a fancy local overpowered
development machine the way a lot of things used to.
And yes, I know there are certain kinds of development that are changing in that
respect, but it still feels to me like it has never been easier to get started.
with all of this technology than ever before.
With the counter argument that there's so many different directions to go in.
Oh, I want to get started using Visual
Studio Code or learning to write JavaScript.
Great, how do I do this?
Let me find a tutorial.
And you find 20 million tutorials, and then you're frozen within decision.
How do you get past that?
Yeah, there is and always will be, unfortunately,
a certain amount of analysis paralysis that occurs.
I started a TikTok recently to try to help people get involved in coding.
And the number one question I get, and I mean thousands
and thousands of them, are like, where do I start?
Because everyone seems to think that if they pick
the wrong language, that will be a huge mistake.
And I can't think of a wrong language, you know?
Like, what human language should I learn?
You know, English, Chinese, Arabic, Japanese?
Pick one, and then learn another one if you can, right?
Learn a couple.
But I don't think there's a wrong language to learn, because the
basics of computer science are the basics of computer science.
I think what we need to do is remind people that computers are
computers, no matter whether they're an Android phone or a Windows
laptop, and that any forward motion at all is a good, is a good thing.
I think a lot of people have analysis paralysis, and they're just afraid to pick
stuff.
I agree with what you're saying, but I'm also going
to push back gently on what you're saying as well.
If someone who is new to the field was asking me what language to learn,
I would be hard pressed to recommend a language that was not JavaScript.
I want to be clear, I do not understand or know JavaScript, at all.
But it's clear from what I'm seeing that that
is in many ways the language of the future.
It is how front end is being interacted with.
There are projects from every cloud provider that wind
up managing infrastructure via JavaScript primitives.
There are so many on ramps for this.
And the user experience for new folks is phenomenal
compared to any language that I've worked with in my career.
Would you agree with that or disagree with that assessment?
So
I've written blog posts on this topic, and
my answer is a little more, it depends.
I say that people should always learn JavaScript and one other
language, preferably a systems language, which also may be JavaScript.
But rather than thinking about things language
first, we think about things solutions first.
If someone says, I want to do a lot of data science, You don't learn JavaScript.
If someone says, I want to go and write an Android app, yeah, you could
do that in JavaScript, but JavaScript is not the answer to all questions.
Just as the English language, while it may be the lingua franca,
no pun intended, it is not the only language one should pick.
I usually say, well, what do you want to do?
Well, I want to write a video game for the Xbox.
Okay, well you're probably not going to do that in JavaScript.
Oh, I want to do data science.
Right?
I want to write an iPhone app.
JavaScript is the language you should learn if
you're going to be doing things on the web, yes.
But if you're going to be writing the back end for
WhatsApp, then you're not going to do that in JavaScript.
Here at the Duck Bill Group, one of the things we do with,
you know, my day job, is we help negotiate AWS contracts.
We just recently crossed five billion dollars of contract value negotiated.
It solves for fun problems, such as how do you know that your
contract that you have with AWS is the best deal you can get?
How do you know you're not leaving money on the table?
How do you know that you're not doing what I do on this podcast
and on Twitter constantly and sticking your foot in your mouth?
To learn more, come chat at duckbillgroup.
com.
Optionally, I will also do podcast voice.
When we talk about it.
Again, that's duckbillgroup.
com.
Yeah, I think you're right.
It comes down to what, what is the problem you're trying to solve for?
Taking the analogy back to human languages, what, what is your goal?
Is it to, just to say that you've learned a language and to
understand, get a glimpse of another culture through its language?
Yeah, there is no wrong answer.
If it's that you want to go live in France one day and
participate in French business discussions, I have a
recommendation for you, and it's probably not Sanskrit.
At some point, you have to align with what people want to do
in the direction they're going in with the language selection.
What I like about JavaScript is, frankly, it's incredible
versatility as far as problems to which it can be applied.
And without it, I think you're going to struggle as you enter the space.
My first language was Crappy Perl slash Bash because
everyone does Bash when you're a systems administrator.
And then it has later evolved now to Crappy Python as my language of choice.
But I'm not going to be able to effectively do any
front end work in Python, nor would I attempt to do so.
My way of handling front end work now is to
have the good sense to pay a professional.
But if you're getting started today and not sure what you want to do
in your career, and my opinion has always been that if you think you
know what you want to do in your career, there's a great chance you're
going to be wrong, but pursuing the thing that you think you want to do
will open other opportunities and doors and present things to you that
will catch your interest in a way you might not be able to anticipate.
So, especially early on in careers, I like biasing
for things that give increased options, that boost my
optionality as far as what I'm going to be able to do.
Okay, I think that's fair.
I think that no one ever got fired for picking IBM.
No one ever jeopardized their career by choosing JavaScript.
I do think it's a little more nuanced, as I mentioned.
It absolutely is.
I am absolutely willing to have a disagreement with you on that front.
I think the thing that we're aligned on is that whatever
you pick, make sure it's something you're interested in.
Don't do it just for, like, well, I'm told I can make a lot of money doing X.
That feels like it's the worst reason to do things in isolation.
That's a tough one.
I used to think that too, but I am thinking that it's important
to note and recognize that it is a valid reason to get into tech.
Not for the passion because for no other
reason than I want to make a lot of money.
Absolutely.
I could not agree with you more.
And that is something I've gotten wrong in the past.
Yeah.
And I have been a fan of saying, you know, be passionate and
work on these things on the side and all that kind of stuff.
But all of those things involve a lot of assumptions and a lot of
privileges that, you know, people have that, you know, you have
spare time and then you have a place to work on these things.
You know, I work on stuff on the side because I, it feeds my spirit.
If you work on woodworking or drones or gardening on the side.
Not everything you work on the side has to be steeped in hustle culture
and having a startup or something that you're doing on the side.
Absolutely.
If you're looking at a position of wanting to get into
technology because it leads to a better financial outcome
for you and that is what motivates you, you're not wrong.
Exactly.
The idea that, oh, you have to love it or you'll never succeed.
I think that some of the worst advice we ever wind up giving folks early
in their career, particularly young people, is follow your passion.
That it can be incredibly destructive advice in some context, depending
upon what it is you want to do and what you want your life to look like.
Yeah, exactly.
One of the things that I've, that I've always been appreciative of from
afar with Microsoft has been, There's an entire developer ecosystem,
and historically it's focused on languages I can barely understand.
ASP.
NET, the C sharp is deep in that space.
F sharp, I think, is now a thing as well.
There was an entire, there's an entire ecosystem around this
with Visual Studio, the original, not Visual Studio Code.
Turns out naming is one of those things that no tech company seems to get right.
But it feels almost like there's an entire ecosystem there that for
those of us who spent significant time, and I'm speaking for myself
here, not you, in the open source community talking about things
like Perl and whatnot, I never got much exposure to stuff like that.
I would also classify enterprise Java as being in that direction as well.
Is there a bifurcation there that I'm not seeing
or was I just never talking to the right people?
All of the above?
Maybe I was just had, maybe I had blinders on, didn't realize
it.
There was a time when the Microsoft developer ecosystem meant write things for
Windows, do things on Windows, use languages that Microsoft made and created.
And now, with the rise of the cloud and with the rise of
software as a service, Microsoft is a much simpler company.
Which is a funny thing to say for such a complicated company.
Microsoft would love to run your for loop in the cloud for money.
We don't care what language you use.
We want you to use the language that makes you happy.
Somewhere around five to seven years ago, in the developer
division, we started optimizing for developer happiness.
And that's why you can write Ruby and Perl and Python
and C and C and C Sharp and all those different things.
Even C Sharp now in NET is owned by the NET Foundation and not by Microsoft.
Microsoft, of course, is one of the primary users,
but we've got a lot of Samsung is a huge contributor.
Google is a huge contributor.
Amazon Web Services is a big contributor to NET.
So Microsoft's own zealotry towards and bias towards our own
languages has kind of gone away because Office is on an iPhone, right?
Like anywhere that you are will go there.
So we're really going where the customer is rather than trying to funnel the
customer into where we want them to be, which is a really an inverted way
of doing things over the way it was done 20, 30 years ago, in my opinion.
This gets back to the idea of the Microsoft cultural transformation.
It hasn't just been an internal transform.
It's been something that is involved with how it's engaging
with its customers, how it's engaging with the community, how
it's becoming available in different ways to different folks.
It's hard to tell where a lot of these things
start and where a lot of these things stop.
I don't pretend to be a Microsoft fanboy, quote unquote, but I believe it
is impossible to Look at what has happened, especially in the world of cloud
and not, at the very least, respect what Microsoft has been able to achieve.
Well,
I came here to open source stuff.
I'm certainly not responsible for the transformation.
I'm just, you know, a cog in the machine.
But I can speak for the things that I own, like NET and Visual Studio Community.
And I think one of the things that we have gotten right
is we are trying to create zero distance products.
You could be using Visual Studio Code, find a bug, suggest a
feature, have a conversation in public with the PMs and devs
that own the thing, get an insider's build a few days later,
and see that promoted to production within a week or two.
There is zero distance between you, the consumer, and the creator of the thing.
And if you wanted to even fix the bug yourself, submit a pull
request and see that go into production, you could do that as well.
You know, some of our best C Sharp compiler folks are not
working for Microsoft, and they are giving improvements.
They are making the product better.
So, zero distance in many ways.
If you look at, like, the other products at
Microsoft, like PowerToys is a great thing.
Which is kind of like an incubator for Windows features.
We're adding stuff to the PowerToys open source project.
Like launchers and a thing called Fancy Zones that's a window
tiling manager, you know, features that prosumers and enthusiasts
always wished Windows could have, they can now participate in,
thereby creating a zero distance product in Windows itself.
And I want to point out as well that you are still Microsoft.
You, the collective you.
I suppose you personally, that is where your email address ends.
But you're still Microsoft.
This is still languages and tools and SDKs and
frameworks used by The largest companies in the world.
This zero distance approach is being done on things that serve as banks, who
are famously not the earliest adopters of some code that I wrote last night.
It's probably fine.
Do you know what my job was before I came here?
Tell me.
I was the chief architect at a finance company that created software for banks.
I was responsible for a quarter of the retail online banking systems
in the, in North America, built on NET and open source software.
So you've lived that world.
You've been that customer.
Trying to convince a bank that open source was
a good idea in the early 2000s was non trivial.
You know, sitting around in 2003, 2004, talking about Agile and, you
know, continuous integration and build servers and then going and
saying, hey, you should use this software, trying to deal with lawyers
and explain to them the difference between the MIT, Apache, and GPL
licenses and what it means to their bank was definitely a challenge.
And working through those issues.
It has been challenging, but open source software now pervades, right?
Just go and look at the license.
txt in the Visual Studio Program Files folder to see all of
the open source software that is consumed by Visual Studio.
One last topic that I want to get to before we call it a show
is that you've spent a significant portion of your career,
at least recently, focusing on More or less, where the next
generation of engineers, developers, et cetera, come from?
And to that end, you've also started recently
with TikTok, the social media platform.
Are those two things related, first off, or am I
making a giant pile of unwarranted assumptions?
I think that is
a fair assumption.
So what's going on is I want to make sure that as I and I leave
the software industry and the next, you know, and number of
years that I'm setting up as many people as possible for success.
That's where my career started when I was a professor.
And that's hopefully where my career will end when I am a professor again.
Hopefully my retirement gig will have me teaching at some university somewhere.
And in doing that, I want to find the next million developers.
Right.
Where are they?
The next 10 million developers, probably not on Twitter.
They might be a lot of different places.
They might be on Discord, they might be on Reddit,
they might be on forums that I haven't found yet.
But I have found on TikTok a very creative and, and
for the most part, kind and inclusive community.
And both myself and also recently the Visual Studio Code
team have been hanging out there and sharing our creativity.
and having really interesting conversations about how you,
the listener, can, if not be a programmer, be a person that
knows better the tools that are available to you to solve
problems.
So, I absolutely appreciate and enjoy the direction that you're going in.
Again, people invite you to things and then
spring technical support questions on you.
Can you explain what TikTok is?
I'm still trying to wrap my head around it because I
turned around and discovered I was middle aged one day.
Sure.
Well, I mean, I am an old man on TikTok, to be clear.
TikTok, like Twitter, revels in its constraints.
If you recall, there was a big controversy when Twitter went from
140 characters to 280 because people thought it was just letting the,
you know, the constraint that we were so excited about, which was
artificial because it was the length of a standard message service.
I was one
of those people who bitterly protested
it.
I was completely wrong, right?
But the idea that something is constrained,
TikTok is either 15 seconds or less than 60.
It's similar to Vine in that it is a tiny video.
What can I do in one minute?
Additionally, before they allowed uploading of videos,
everything was constrained within the TikTok editor.
So people would do amazing and intricate 30 and 40
shot transitions within a 60 second period of time.
But one of the things I find most unique about TikTok
is you can reply to a text comment with a video.
So I make a video, maybe I do 60 seconds on how to be a software
engineer, somebody replies in text, I can then reply to that text
with a video, and then a TikTok creator can do what's called a stitch.
and reply to my video with a video.
So I could take 15 seconds of yours, a comment that
you made, and say, Oh, this is a great comment.
Here's my thoughts on that comment.
Or we could even do a duet where you record
a video and then I record one side by side.
And we either simulate that we're actually having
a conversation, or I react to your video as well.
Once you start teaching TikTok about yourself by liking
things, you curate a very positive place for yourself.
You might get on TikTok not logged in and it's.
dancing and you might find some inappropriate things that you
don't necessarily want to see or you're not interested in.
But one of the things that I've noticed as I talk about my home network
and coding is people will say, Oh, I finally found adjective TikTok.
I finally found coding TikTok.
I finally found IT TikTok.
Oh, I'm going to comment on your post
because I want to stay on networking TikTok.
And then your feed isn't just a feed of the people that you follow, but
it's a feed of all the things that TikTok, things you're excited about.
So I am on this wonderful TikTok of linguistics and languages, and I'm learning
about cultures, and I'm on indigenous TikTok, and I'm on networking TikTok.
And the mix of creativity and the constraint
of just 60 seconds has been really a joy.
And I've only been there for about a month, and I'm
blessed to have 80, 000 people hanging out with me there.
It sounds like you're quite the fan of the platform, which alone,
in isolation, is enough to get me to look at it in more depth.
I am a fan of creativity.
I would also say, though, it's very addictive.
Once you find your people, I've had to put screen time
limits on my own phone to keep me from burning time there.
That is all of tempting, provocative, and disturbing.
You should hang out with me on YouTube then.
I just got my, my 100, 000 YouTube silver play button in the mail.
That's where I spend my time doing my long form.
I just did actually 17 minutes on WSL and how to use Linux.
That might be a good starter for you.
It very well might.
So, if people want to learn more about what you're up to and how you think
about the wide variety of things you're interested in, where can they find you?
They should start at mylastname.
com.
Hanselman.
com.
They used to be able to Google for Scott, and I was in an epic battle
with Scott brand toilet paper tissue, and then they trademarked the
name Scott, and now I'm somewhere in the distant second or third page.
It was a tragedy.
As an early condolences.
Yeah.
Oh my God.
As an early come to the internet, it was me and Scott
fly rods on the first page for many, many years.
And then if
it helps
you and Scott fly rods are both on page two.
Oh well, the tyranny of the Scott toilet paper
conspiracy against me has been problematic.
Exactly.
Thank you so much for taking the time to speak with me today.
I really do appreciate it.
It's my pleasure.
Scott Hanselman, Partner Program Manager at Microsoft and so much more.
I'm Cloud Economist Corey Quinn.
This is Screaming in the Cloud.
If you've enjoyed this podcast, please leave a five
star review on your podcast platform of choice.
Whereas if you've hated this podcast, please Leave a five star review on
your podcast platform of choice, along with a crappy comment that starts
with a comment that gatekeeps a programming language so we know to ignore it.