Learn Python with Talk Python's 270 hours of courses

#216: Digging into Visual Studio Code Transcript

Recorded on Wednesday, May 15, 2019.

00:00 One of the questions I often ask at the end of the show is, when you write some Python code, what editor do you use?

00:06 Increasingly, the most common answer is Visual Studio Code.

00:09 Despite its Windows-only namesake, Visual Studio Code is cross-platform and has been gaining a lot of traction in the Python space.

00:17 I was at the Microsoft Build conference immediately after PyCon this May.

00:21 There I got a chance to sit down with Dan Taylor from the VS Code team to discuss what they've been up to with VS Code and Python.

00:27 This is Talk Python to Me, episode 216, recorded May 8th, 2019.

00:32 Welcome to Talk Python to Me, a weekly podcast on Python, the language, the libraries, the ecosystem, and the personalities.

00:52 This is your host, Michael Kennedy.

00:54 Follow me on Twitter where I'm @mkennedy.

00:56 Keep up with the show and listen to past episodes at talkpython.fm and follow the show on Twitter via at Talk Python.

01:02 This episode is sponsored by Linode and Backlog.

01:06 Please check out what they're offering during their segments.

01:08 It really helps support the show.

01:09 Dan, welcome to Talk Python.

01:12 Hi, it's great to be here.

01:12 It's great to have you on the show.

01:14 And we get one of these special opportunities to do an in-person recording with each other, right?

01:19 Before we get into the normal flow, I just want to say, hey, we're here at Microsoft Build recording live, not in a live audience, but in person and sort of on the floor here.

01:29 So it's really, really cool.

01:30 It's great to be here.

01:31 And we're going to talk a bit about that.

01:32 Also about PyCon.

01:34 But, you know, let's start at the beginning.

01:35 Start with your story.

01:36 How did you get into programming and Python?

01:37 Programming, I've kind of had like a computer, a 386 computer since I was like five years old at my house, right?

01:43 And so I was always doing a lot of like batch file stuff and DOS and things like that.

01:47 But I remember batch files.

01:48 That used to feel like pretty awesome programming stuff, right?

01:50 You would be able to make the computer do its magic at startup, right?

01:54 You could mess with auto-exec bat and all that stuff.

01:56 Yeah, yeah.

01:57 And then like if you were like get really into it, I mean, doing an if statement and batch file programming is like really, really hard.

02:02 But, you know, I made like a little text adventure game, something like that.

02:05 Oh, my gosh, that's awesome.

02:06 Yeah, but I think oddly enough, when I really got into programming was with Visual Basic 6.

02:11 I was sitting in grade school just like during reading time just reading a VB6 book that I printed out.

02:16 And everyone's looking at me going like, what is this guy doing?

02:18 That's awesome.

02:19 I remember printing out the source code for Notepad, I think, in C++ and reading and trying to understand it way back in the day.

02:26 That's pretty cool.

02:27 You know, VB6, that was a special time, actually.

02:30 You could really build some cool UIs super quick with VB6, that drag and drop stuff.

02:36 And I feel like we kind of don't really have that anymore.

02:39 Yeah, I mean, that's really what got me hooked into programming that you could kind of like I could see something.

02:44 I could just double click.

02:45 And then it really gave me this, you know, it's that game of where you get that five minutes to success.

02:49 And you just want to like keep playing the game until you build up stuff.

02:52 I built all sorts of different programs up.

02:53 I mean, some of the like visual programming stuff is starting to come back with like EduBlocks and MakeCode and some of those things.

02:59 And I think that kind of stuff can really like maybe get more young people into programming.

03:04 Just like that was kind of the aha moment for me.

03:06 You know, that sort of stuff.

03:07 Yeah, I definitely think that's...

03:09 I think it's a little bit missing.

03:11 I think a lot of the cool frameworks that were really good at that kind of outgrew it a little bit and become like a little more pro, which is fine.

03:17 But it also means like those simple, easy steps into like super quick UIs is gone.

03:22 I mean, VB6 is good.

03:23 Windows Forms was actually not bad.

03:25 But it kind of became WPF, which is super hard.

03:27 Not super hard, but relatively for like just jumping into it.

03:30 There's Anvil, which is kind of a cool web front end thing and Python.

03:34 But yeah, there's not too many of them.

03:36 Anyway, so that was sort of the getting started point.

03:38 But that's not Python, right?

03:39 That's VB6.

03:40 I think the first time I used Python, I was working at Autodesk and I was working on some of the graphic stuff.

03:44 And there it was all just building UIs in Python and using Swig to interact with C++ and stuff like that.

03:51 And then I just kind of like took that back to school with me to school projects where professors were kind of saying, you know, hey, you should use a real programming language so that you can like learn real programming.

04:00 And I'm like, what are you talking about?

04:01 You know, this is real programming.

04:02 I just built all this stuff with it.

04:04 And now you've got like all these big companies doing, you know, you've got sites like Instagram and Pinterest all built with Python.

04:09 Yeah, yeah.

04:10 Like, I mean, YouTube gets a million requests per second.

04:12 Is that not real enough?

04:13 Yeah, yeah, exactly.

04:14 So it's interesting how our perspective changes on that stuff over time.

04:17 You know, it makes me crazy when people call Python a scripting language.

04:21 Yeah.

04:21 You know, you're like, oh, is that your favorite scripting language?

04:24 I'm like, whoa.

04:24 Well, it's great at scripting.

04:26 Exactly.

04:26 It's also great at a lot of other stuff too.

04:28 You can build real things with it.

04:30 So your time at Autodesk, was that building stuff that was like embedded into some of those apps?

04:35 Or was it like workflow between the apps?

04:36 What kind of stuff was there?

04:37 Well, I was working on a product that I don't remember exactly what it was called, but it was doing like visualization of cars and things like that.

04:44 Cool.

04:45 The UI, that team had decided to use Python for the UI with WX widgets.

04:50 And then it would call down in the C++ layer to do a lot of the 3D graphics.

04:53 But it did a lot of the scene manipulation and things like that with Python.

04:56 So there was some vector math and sort of all sorts of stuff that was in Python.

04:59 So it was this weird, you know, you could do a lot of things in Python and then all of a sudden you're in this big C++ world and stuff like that.

05:06 Yeah, it sounds really cool though.

05:07 The 3D stuff is always so interesting, but it's also pretty challenging to work in.

05:12 Like I built a couple from scratch 3D simulators and OpenGL and stuff.

05:16 And I always thought the first half, I'm like, this is going to be so fun.

05:18 The second half, I'm like, why can't I see the thing?

05:20 You know, because I have the clockwise versus anti-clockwise rotation.

05:24 Yeah, you're doing that thing with your fingers where you get the three axes.

05:26 And I had this book, you know, real-time rendering where I'm just like, you know, staring up in the room trying to like, you know, figure out what direction things are pointed at.

05:34 Yeah.

05:34 It's kind of crazy.

05:35 It's totally crazy.

05:36 Let's talk a little bit about what you do day to day.

05:39 You work at Microsoft.

05:40 What do you do there?

05:40 So I'm a principal PM manager for a Python developer tools team.

05:44 I have a small team of PMs.

05:45 We work on Python and Visual Studio Code, Python Visual Studio, and then also Python and Azure.

05:51 Yeah, that's pretty awesome.

05:52 It's a pretty big set of different things, but yeah, we do quite a bit.

05:55 Yeah, and it's growing, right?

05:56 Yep, it's growing.

05:57 When I started the team, it was just me and one other PM.

06:00 And I was working with Brett Cannon.

06:02 And now Brett Cannon's managing a team, and I'm managing, you know, it's sort of just, we're doing a lot with Python and Microsoft.

06:09 Yeah, it's super exciting.

06:10 And yeah, so you work with a lot of people, a lot of the folks at Microsoft that are also, have been on the show, yeah?

06:16 Been on the show and out there in the community, you know, working on the core Python developers.

06:21 We got a couple of, you know, Brett and Steve on our team, yeah.

06:23 Cool.

06:23 Yeah, I think it's going to be a pretty interesting perspective that you have coming from, like, Microsoft customers and developers intersecting here with Python, right?

06:33 Like, it's, I feel like you might get a little more visibility into what Python and enterprise or large corporate places kind of looks like.

06:42 What are your thoughts there?

06:44 Yeah, I mean, it's an interesting spectrum.

06:46 I mean, we definitely see a lot more, I work with a lot more individual developers working in Python land than I do in other places.

06:53 But then we also hear with .NET and the other programming languages, we talk to a lot more big enterprises, right?

06:58 But we also hear from, you know, the big enterprises doing Python.

07:02 They have all these challenges and concerns around performance and scale and compliance and security and, like, all these different things that, you know, when you're just sitting down there trying to, like, you know,

07:12 hey, how do I learn programming and make Hello World that, you know, these two worlds are very at odds with each other.

07:17 And it's interesting watching sort of the core development team on Python trying to navigate and negotiate the different pressures and stuff like that that are kind of coming from two directions.

07:25 How do we enable it to meet all these enterprise needs while still keeping it, you know, fun, easy to use, really productive, and not adding a whole bunch of, you know, stuff that's getting in my way, right?

07:37 Yeah, yeah.

07:37 Don't over-professionalize the Python.

07:40 Because, you know, one of the things I go on a lot about is, like, how Python is a full-spectrum language.

07:45 Like, you don't have to take the complexity at the beginning.

07:48 Like, you can be productive with Python with, like, a partial understanding of what it is, what it can do.

07:53 But it can't, you don't outgrow it so much, like, say, vb6, for example, like you said earlier.

07:57 Yeah, yeah, yeah.

07:58 And, I mean, Python is kind of my go-to for, you know, anytime I want to do something, my first answer is, like, can I do this with Python, right?

08:05 But in terms of, like, kind of managing the complexity, I think, I forget the name of that, that backslash operator that gives you the sort of positional arguments and stuff like that.

08:12 You know, that's an interesting one.

08:14 It's, like, where you can add that and you can use it and that allows you to interface with C-APIs and things like that.

08:18 But hopefully most people never have to see that, right?

08:20 Yeah, exactly.

08:21 Right.

08:22 You could go your whole life as a developer not knowing that there's a syntax for keyword-only arguments.

08:27 And now there's a syntax for positional-only arguments, right?

08:31 You don't need to know.

08:32 It's cool.

08:32 Yeah.

08:33 Cool.

08:33 So, we were both just at PyCon and we quickly got on a plane and flew to Seattle to go to build.

08:40 What were your thoughts on, I guess, PyCon first?

08:43 PyCon is just such an amazing event.

08:45 And it's, I don't think I've been to another event that's quite like it.

08:48 I mean, it really is, you know, Ernest was on the stage talking about how this PyCon means community to a lot of people, right?

08:55 And just seeing that in the community and it's such a diverse and inclusive place.

08:59 And so, you know, last year was my first PyCon and after I left, I was sort of like, I think I'd keep coming back here even if I wasn't working on Python or working at Microsoft and stuff like that.

09:10 Yeah, that's super cool.

09:11 I feel like it's like my geek holiday, my geek getaway.

09:13 Yeah, and then there's all the people that you see through all the different events throughout the year and all the things.

09:20 So, it's great that, you know, Microsoft is there and we're able to help sponsor it where the Keystone sponsored the event.

09:27 So, it was great to have kind of the big presence there and just really just see a lot of people coming up and talking to us at the event.

09:32 Yeah, that's super.

09:34 And you guys had a cool, like, hands-on thing where people could get a little robot or something.

09:38 What was that about?

09:38 Yeah, so we had hands-on labs using, like, VS Code and some of our, like, Azure functions and some of our cognitive services.

09:46 And then you get a little Adafruit lunchbox kit, which has some circuits and some things like that.

09:51 And then Nina actually did a workshop with the Adafruit team where they came over with your lunchboxes and walked people through a sample lab.

09:58 Yeah, that's really cool.

10:00 Yeah, Nina's got a bunch of cool embedded wearable stuff going on and it's, like, right up her alley.

10:04 Yeah, she loves that stuff.

10:05 And she did a keynote on Python hardware and, I mean, it was just awesome.

10:09 And I really loved how she said that hardware really makes people more interested in programming.

10:15 And women in particular, it makes them more likely to stick with programming and tech and stuff like that.

10:21 Yeah, there were some super interesting results coming from the BBC Microbit study done in the UK a couple years ago.

10:26 And just how much more likely people were to go into STEM or care about it.

10:31 It just makes it real, right?

10:32 It's sort of like what we were talking about earlier.

10:34 It's sort of you see that, hey, I can do something.

10:36 I can make these lights flash.

10:37 I can make noises.

10:38 You know what I mean?

10:38 And it just wants to make you keep playing the game, right?

10:41 Yeah, absolutely.

10:41 You get those quick wins and things like CircuitPython and stuff make it way easier than, you know, embedded C.

10:47 Yeah, yeah.

10:47 No backslashes.

10:48 Yeah, right on.

10:49 Let's start talking a little bit about VS Code.

10:52 So when did VS Code come out?

10:54 It came out in 2015.

10:56 I don't remember the exact month, but 2015.

10:58 So not too long ago.

10:59 Yeah, not too long ago.

11:00 And originally, it wasn't necessarily supporting Python right out of the box, right?

11:04 So when it originally came out, it was...

11:06 And what was the original goal or like idea behind it?

11:09 So the original like, you know, pitch, it was a free open source cross-platform editor with support for Node.js and JavaScript with built-in debugging and source control, right?

11:24 Right.

11:24 So it's kind of like an editor plus, right?

11:26 Just a little bit of extra functionality.

11:27 Yeah, it seems to me like its original zen was just like, we're going to try to be as minimal as possible while providing you like real tooling, right?

11:37 Like editors and autocomplete, but try to be the least amount of that that we can still get away with.

11:42 That was my perception from the outside.

11:44 Certainly, like you see a lot of people using things like Vim or Notepad++ and stuff like that.

11:52 And you can see a lot of people just want, you know, let me just open the code and start working with it.

11:57 And then, you know, start from there and then add on the debugging and functionality, you know, sort of on top of that.

12:01 And then shortly after that, they didn't have extensions when they first released it.

12:05 And then everyone was like, you know, it got quite a good reception when they first put it out there.

12:10 And then everyone's asking for extensions.

12:11 And so once they put the extensions out there, that's when other languages started really coming on board like Python.

12:16 Yeah, I feel like that kind of made it blow up.

12:19 Yeah, yeah.

12:19 It really opened the doors.

12:20 And the extensions is really what a lot of people say they love about VS Code today.

12:25 You know, that it's just got so many extensions out there and so many people building them and creating them.

12:30 And that's even how Python got its roots.

12:33 Don Giamatti from Australia just built a Python extension and put it out there.

12:38 And it sort of took off on the marketplace.

12:40 Yeah, that's super cool.

12:41 And I had him on the show quite a while ago.

12:43 And we were remarking about how insanely popular that extension was.

12:49 This was before he worked with you and at Microsoft.

12:51 It was just his thing.

12:52 And I think we were like, wow, there's a million downloads or 500,000 downloads or something like that, right?

12:58 Yeah, yeah.

12:58 And that number just keeps increasing all the time, right?

13:02 So even a year ago, there was 6 million downloads and now there's 44 million.

13:06 Yeah, I looked at it, it's like 44 million.

13:08 And what's pretty impressive to me is this project that comes from Microsoft that's traditionally been pretty heavy in the C#, C++ side of things.

13:20 If you pull up the most popular plugins or extensions, you don't see C# and then like ASP.NET extensions and then somewhere down the list, Python, right?

13:30 Like Python is the number one most popular extension.

13:33 Yeah.

13:34 And that's something that really got me excited to move over to the Python team at Microsoft about two years ago.

13:40 They said, hey, I've been walking around saying, why aren't we doing more with Python?

13:44 Come on, we should be doing, we have a Python team, but, you know, we should be doing more.

13:46 And then, you know, someone said, hey, we hired Don and we're going to, you know, put a team on it.

13:51 You want to do this?

13:52 And I was like, ah, I got to, I got to jump over there.

13:53 Yeah, how do I get involved with that?

13:54 That's awesome.

13:55 It's just so much fun working on this team.

13:57 That's super cool.

13:58 Yeah, I did some other looking around and the second and third most popular extensions are ESLint is number two and C++ is number three.

14:06 And they're only half as many, which is still 20 million, but they're still significantly less.

14:10 One thing I will say about the download count is every time we push an update to the extension, those count as new downloads.

14:14 So they've added the install counts.

14:16 On the marketplace.

14:17 I see.

14:18 Just full disclosure.

14:19 Yeah, yeah, yeah.

14:20 We push out a lot of little updates now and then.

14:22 So some of those can.

14:22 So the more active teams can like get a little better, get a little ahead.

14:26 Yeah, exactly.

14:27 That's still pretty good though.

14:28 But yeah, we're still the number one by installs as well.

14:30 VS Code is an Electron JS app, right?

14:32 Mm-hmm.

14:33 Maybe tell people quickly who don't know, like there's all sorts of folks who listen.

14:36 Like, what is that?

14:37 Like, that's kind of a fairly new and unusual way to build an app, but it's definitely taken off.

14:42 Like Slack and some other folks are that way as well.

14:45 I'll do the best just as I can being a program manager.

14:48 But the Electron is a framework for building JavaScript apps on the desktop.

14:52 And I think that's what we really enabled us to create something that was cross-platform right out of the gate without too much dealing with weird low-level C platform code, right?

15:02 Right.

15:02 You've got Chrome that's already cross-platform, Node that's cross-platform, and then JavaScript and HTML, right?

15:07 Yeah.

15:08 It made so much sense for us.

15:09 We had this online editor called Monaco, which was created by Eric Gamma, one of the Gang of Four.

15:16 The original design patterns from, you know, like early 90s?

15:19 Yeah.

15:19 Yeah.

15:19 And he had built this online editor that we've been using in Microsoft for some of our, like, online source control, some online editing experiences in Azure.

15:28 And so they were just able to say, like, hey, we got this online editor, we got Electron, let's build VS Code.

15:35 And they really actually put it together relatively quickly and just put it out there.

15:38 This portion of Talk Python to me is brought to you by Linode.

15:44 Are you looking for hosting that's fast, simple, and incredibly affordable?

15:47 Well, look past that bookstore and check out Linode at talkpython.fm/Linode.

15:52 That's L-I-N-O-D-E.

15:55 Plans start at just $5 a month for a dedicated server with a gig of RAM.

15:59 They have 10 data centers across the globe.

16:01 So no matter where you are or where your users are, there's a data center for you.

16:05 Whether you want to run a Python web app, host a private Git server, or just a file server, you'll get native SSDs on all the machines, a newly upgraded 200 gigabit network, 24-7 friendly support, even on holidays, and a seven-day money-back guarantee.

16:19 Need a little help with your infrastructure?

16:21 They even offer professional services to help you with architecture, migrations, and more.

16:26 Do you want a dedicated server for free for the next four months?

16:29 Just visit talkpython.fm/Linode.

16:32 One thing that's a little interesting is you guys also now have, I mean, not you individually, you as the Microsoft, you have Atom after you've acquired GitHub, right?

16:43 Which is also ElectronJS, I believe.

16:47 It's kind of interesting, like, what's the story with those two?

16:49 Are they both going forward?

16:50 Yeah, so Nat Friedman, when he became the CEO of GitHub, he did an AMA on Reddit, and this question came up.

16:57 And I loved his answer.

16:58 He said, as long as people want to keep using Atom, we'll still work on Atom and put it out there.

17:03 Yeah, I know some people are using Atom, and they're doing cool stuff with it.

17:06 So it's pretty awesome.

17:07 But yeah, it's kind of interesting how things have shifted.

17:12 How's the whole GitHub acquisition changed or changed people's perspective for you all working on the team, or has it?

17:19 They're still kind of managed as this different company, have their own CEO and stuff like that.

17:24 And I can only speak from my own experience, but my own experience is that we're just more likely to recommend using GitHub in places, rather than having to, you know, maybe come up with our own solution or have two implementations sometimes.

17:36 It makes it a lot easier to say, well, just use GitHub.

17:38 Yeah.

17:39 Well, I think people are starting to say that anyway.

17:41 Yes.

17:42 Yeah.

17:42 Right?

17:42 We're already kind of going in that direction.

17:44 So before there was any word of you all buying GitHub, it was still like, clearly the momentum, the black hole of open source in a positive way was GitHub just sucking everything in.

17:57 Right?

17:57 Yeah.

17:57 And, you know, I was so excited when I opened my phone up and pulled up my stock ticker app.

18:03 I'm like, what?

18:03 This is amazing.

18:05 What is this news event?

18:07 What is this?

18:07 Yeah.

18:07 I think it's positive.

18:08 I know there was a little bit of surprise, some trepidation in the open source space when that first hit.

18:15 There are people talking about moving to Bitbucket or other places, but I don't really see that manifesting.

18:21 What I thought was super interesting was actually looking at some of the reasons behind, and it looked like it was really, in the end, a pretty positive outcome for both GitHub and you guys.

18:31 The thing that, and I can just react to what I read, there's always a negative reaction somewhere to anything you do as a large company, right?

18:38 Yeah.

18:38 There's always somebody not happy.

18:39 But what I was really encouraged by was that, you know, people out there saying, oh, this is terrible.

18:45 This is evil.

18:46 And then other people that weren't from Microsoft were like, you know, arguing with those people saying like, hey, no, this is actually good.

18:53 Where Microsoft is, they love open source.

18:55 And there's other companies that could have bought them that would have been much worse.

18:59 Right.

18:59 And I can really have the resources to make sure that GitHub thrives and continues to be the big platform for doing open source.

19:07 Yeah.

19:07 Actually, one of the, VS Code actually, I think is the biggest open source project on GitHub when we made that acquisition.

19:13 So it's already a platform that we, you know, are really well invested in just as individual developers.

19:19 So you kind of bought your source control provider.

19:22 Yeah.

19:23 Just took everyone else with it.

19:25 How interesting.

19:25 Okay, cool.

19:27 Let's focus a little bit on the growth of VS Code, I guess.

19:30 You know, I was really surprised.

19:32 Like, we talked about the origins a little bit.

19:34 2015 or so it came out and then the extensions and whatnot.

19:38 Did it surprise you?

19:39 Did you guys do like a backflip of joy when you saw the Stack Overflow survey showing, you know, VS Code like the number one editor out there in terms of usage?

19:49 I was very happy to see that.

19:51 I mean, it just sort of, I still don't really understand what that means.

19:54 You know what I mean in terms of, like, wow, it's actually the majority of developers use Visual Studio Code, you know, if you look at that survey.

20:02 And that's just, I can't comprehend that.

20:04 You know, it's just, I don't know, I feel a little honored to work on it.

20:07 Yeah, that's actually, that's pretty awesome, right?

20:09 You know, one thing I would like to ask you, and I have my own opinions and I don't think it's crazy or anything, but, like, why would Microsoft work on this?

20:17 Like, you're not selling it, right?

20:19 It's just, you just go get it.

20:21 It's free.

20:22 What value do you guys have in this other than, like, Goodwill and we just want it to exist or whatever?

20:27 Yeah, so this question comes up all the time, right?

20:30 People always ask this.

20:30 And I don't know if you know about Microsoft, but we've always had a really giant developer tools division.

20:37 And we've always given developer tools away for free.

20:40 Like, Visual Studio, I think it's a paid product, but actually the majority of people use the free community edition for something like that.

20:46 But before Visual Studio Code, you know, there's a lot that, you know, if you're an open source developer, you're using Python or Node or something like that.

20:52 We didn't really have much that was relevant to you from Microsoft because a lot of our stuff was Windows only.

20:58 Right.

20:58 You had Visual Studio, you had Python tools for Visual Studio, but like you said, that's Windows only.

21:03 And that's, you know, that already creates a lot of friction already.

21:06 For us, you know, the benefit to Microsoft is that, you know, if you use Visual Studio Code and you like your experience there, maybe you'll consider some of our other stuff.

21:15 And it really comes down to that, you know.

21:19 Otherwise, you know, you're not really thinking about us.

21:22 You were not in the conversation.

21:23 Yeah.

21:24 That would have been my guess of what you were trying to get out of it.

21:27 But, you know, I wanted to see it from your perspective, right?

21:30 Like, if you have interesting Azure plugins, like push a button here and it's on our Kubernetes service, right?

21:35 Like, if it's right there next to them, like then all of a sudden there's your sort of implicit upsell or whatever.

21:41 Yeah.

21:41 And so just leave that option on the table, right?

21:43 You can choose to use that if you want, right?

21:46 Yeah.

21:46 It does also allow us to create a really good developer experience for Azure with our Azure plugins, right?

21:52 Because we can sort of, it's sort of like the vertical stack integrated, but also like, you know, choose your own pieces, you know, whatever.

21:59 Yeah, that's interesting.

22:00 I suppose like in addition to being like, it's near you, so here's the upsell button.

22:05 Like the people who already choose Azure or other tooling from you guys, like you can provide them the best possible experience cross-platform for your own stuff.

22:13 Yes.

22:14 Especially if we believe that we have the best developer tools that you can use, right?

22:19 Yeah.

22:19 You've definitely made some great ones over the years.

22:21 So that's pretty cool.

22:22 And I guess, you know, let's touch on some of the features.

22:25 Like, I feel like you all have been on a bit of a tear with like doing some cool stuff.

22:29 So almost all of the announcements and whatnot have been sort of put off or held until here at Build.

22:36 Like, that's your big developer conference.

22:37 That's like Apple's WWDC or Google I.O., right?

22:40 It's our Super Bowl.

22:41 Yeah, exactly.

22:41 Yeah, it's a big deal.

22:42 But the VS Code team announced some pretty cool stuff at PyCon in honor of Python being like the biggest ecosystem there, right?

22:51 Yeah.

22:51 Just last week at PyCon at the expo open, we pushed the buttons and unveiled our Visual Studio Code remote development features.

22:59 And we brought that to PyCon because it was Python developers who were the most passionate about it.

23:04 And actually, that's at PyCon last year.

23:07 That was what everyone was asking us for.

23:08 So we really said, hey, we got to pull this one early because, you know, we want to go talk to the people who are really asking for it.

23:15 And if you don't know, with Python, a lot of people develop inside of Docker containers or on remote, you know, VMs that have access to giant data sets.

23:25 And then also a lot of people on Windows using Windows Subsystem for Linux.

23:28 And their tools were just not really able to work in those environments.

23:33 Yeah.

23:33 And Windows Subsystem for Linux, even though it's in the same OS, it's kind of isolated in certain ways, right?

23:38 There's no UI, right?

23:40 So you can't really, like, type code dot on the command line and have a UI pop up until now.

23:45 Until now.

23:47 Yeah.

23:47 So this is a pretty big deal.

23:48 And, you know, I feel like it addresses one of the things that was, I hear a lot, you know, a lot of people say to me, and it's totally fine, but it's not the way that I see the world.

23:58 But it's the way they say, look, I, a lot of times, am going to be remoted, you know, SSHed into a server, or I'll be dropped into some environment like Docker or whatever.

24:10 Where I don't have, you know, my fancy tools, you know, be that PyCharm or VS Code or whatever, right?

24:17 So my thinking is, I'm going to just work in VI or Emacs because I have it everywhere.

24:22 Yeah, I think SSH development is probably the number one driver of VI usage.

24:28 Yeah, yeah, exactly.

24:29 And, you know, it's a totally valid perspective.

24:32 I find it's not the tradeoff I make, but it's fine.

24:35 But I feel like this feature kind of said, like, look, you can have proper tooling all the time over SSH and other things.

24:43 So maybe tell us a little bit.

24:44 It's, like, really broken into three parts, right?

24:46 You talked about WSL, Windows Subsystem for Linux, Docker and containers, and then remote SSH type of development.

24:53 Let me just take a step back and talk about the concept because a lot of people we showed this to, it takes a little bit for it to click because it's a little bit of a different way of using VS Code.

25:01 So the user interface of VS Code runs on your local machine.

25:04 But then there's a remote server that actually hosts kind of like the back end of VS Code, right?

25:11 Right, like a language server and all that kind of business?

25:14 Not just the language server, but, you know, the Python extension, for example, runs on that remote environment, the C++ extension, like, you know, the file system, source control.

25:21 VS Code was always a client server model between the UI and the back end.

25:26 And so what we did, we just took that server and then moved it off the local machine to the remote environment.

25:30 You made it farther away.

25:31 Farther away, exactly.

25:32 So you get an experience that's just like local development.

25:35 You're typing in, the UI is nice and responsive.

25:38 But as you're typing in, it's literally like editing directly the files in the remote system.

25:42 So you can do debugging.

25:44 You can get your IntelliSense and autocompletions, you know.

25:48 Anything that you have.

25:49 With the Python extension, we didn't even have to really make many changes.

25:53 It just kind of worked.

25:53 All the features that we had in there just lit up in this remote environment.

25:57 That's cool because where it's running is actually where it's interacting, right?

26:01 Like it's on your remote SSH machine.

26:03 And so you didn't have to teach it how to find that thing.

26:06 It's already there, right?

26:07 You just open it and we automatically copy over like the server and start it.

26:11 And then you actually don't need any files locally to use it, right?

26:14 It just sort of, it's like the VI experience.

26:16 But, you know, you get all of the rich.

26:19 With debugging and code navigation and all that.

26:21 Yeah.

26:22 And people ask like, okay, how do I set up remote debugging?

26:24 And we say, well, it's not really remote debugging.

26:26 You know, you're remote editing, but it's local debugging kind of, you know.

26:30 So it takes a little bit for it to click, but it's really powerful and it's really, really cool.

26:34 Yeah.

26:34 I'm definitely looking forward to checking it out.

26:37 Certainly the SSH side of the things is where it's interesting for me.

26:40 You know, the Windows subsystem for Linux, you know, I carry around my fruity laptop, so it doesn't matter that much to me, right?

26:47 But if I worked on Windows, that would be cool.

26:49 Containers.

26:51 I think containers are pretty interesting as well.

26:53 So the thing I'd like to say about containers is that if you think about your developer onboarding guide at your company, right?

26:59 And it's got like this wiki with all these steps.

27:01 And then usually the new developer's first job is to go through the onboarding guide and find all the broken stuff and fix it, right?

27:07 Right.

27:08 Install this database server.

27:09 Oh, you got to set this setting so it works.

27:11 Yeah, install Python in your path, but if you had one, remove that or like, you know, this version of Node or that version of Node.

27:17 And the cool part is that with the container development environment, you can just kind of clone the repo, open it with VS Code, and it's sort of all your developer dependencies are just defined there for you.

27:28 And it just starts them up and you can have that environment that you can just start working with and everyone gets sort of the same, whether they're on Windows or Mac or Linux.

27:37 Yeah, that's pretty cool.

27:38 You definitely get the closer to what you're actually running debugging and development experience.

27:43 Well, there's the closer to production, but also just reproducible so that everyone's got the same thing, right?

27:48 Yeah, it's on big teams, it's always a pain to like figure out why, you know, I did some checking.

27:53 It doesn't work for that person, but it does for this other person.

27:55 And yeah, that's no fun.

27:57 Cool.

27:58 So this is in the insider build, right?

28:01 Like I have VS Code and I heard that announcement and I checked for updates and I didn't get any updates.

28:05 I'm like, oh, oh, well.

28:06 What's the story with the insider build and like, how do I get it?

28:09 When will a normal installs just start to see it?

28:12 VS Code Insiders is our daily developer build of VS Code.

28:15 It updates every day.

28:16 And then once a month, the insider's build gets promoted to the thing that gets released, right?

28:21 The VS Code team uses it themselves for building VS Code.

28:24 So it is relatively stable.

28:25 You know what I mean?

28:25 If it breaks, they fix it quite quickly, sometimes overnight because we have a team in Zurich working on it.

28:30 So yeah, it's a side-by-side install.

28:32 You can go to the code.visualstudio.com slash insiders to get the insider's build.

28:36 So it'll be available in the stable within, you know, the next couple weeks.

28:40 Yeah, and it'll probably come out about the time we actually release this episode.

28:43 Yeah.

28:44 So the magic of time shifting.

28:45 Yeah, so the remote extensions are in the marketplace.

28:47 Today they only install on insiders.

28:48 But very soon you can just go to your extensions tab and install the remote development extensions.

28:53 And you'll get all the features that we're talking about.

28:55 Cool.

28:55 So I want to have this ability on my server.

28:58 It's Ubuntu running in the cloud.

29:00 I SSH to it.

29:01 Like, what do I do?

29:03 If you already have a public-private key set up with that SSH server, VS Code just uses your SSH configuration on the machine.

29:10 So you install the remote SSH extension, go to the SSH panel, and you'll see that server listed.

29:16 And then you just click Open New Window in VS Code.

29:19 And then it'll just start up a new version of VS Code running in that remote context.

29:23 So it'll install some stuff, and then all of a sudden it'll just connect.

29:25 And you can start using VS Code as if you're on that machine.

29:29 Oh, that's pretty cool.

29:30 So I don't need to at least manually go and change my server to make that happen.

29:34 Like, the first run, it goes SSH is in there and goes, well, it looks like you're missing the server sites.

29:40 We'll drop that in and then get it started.

29:42 Yep.

29:42 And then you can just start coding.

29:44 You can open folders on that remote machine, create new files, and just start plugging away.

29:48 And then you can install, usually the one-time step is you actually need to install the extensions you want to use on that remote server.

29:55 So you'd go in and install the Python extension, for example, so that you get Python support.

29:59 I see.

29:59 Okay.

29:59 That's pretty interesting.

30:01 What's the security story?

30:02 Like, SSH often means production or servers that are, like, sensitive.

30:07 You don't want people just to do anything there.

30:09 And I guess, you know, it's already protected with your certificates in SSH, but anything to be aware of?

30:14 Yeah.

30:15 So, I mean, the one thing that has come up is sometimes people have a 2FA prompt or challenge that they need to enter in order to really authenticate with that environment.

30:22 So if you're in that situation, there's a setting you can turn on that will bring up the terminal so you can type in an additional password or key if you need to.

30:29 Then how do I interact with files over there?

30:32 Like, is there a way to, like, explore the file system and find the files I'm looking for?

30:36 Do you have projects?

30:37 Like, what is it?

30:38 Yeah.

30:38 So there's two, like, when you open VS Code, you kind of get the, like, open a new file sort of window, you know, the default experience.

30:45 But then you can open the terminal, and the terminal will be running in there, and you can LS and CD around.

30:48 But you can also open a folder, and then you'll actually get a little browse window to browse the file system over there.

30:53 And then if you pick, like, you know, seed for home slash my project, you'll open that, you'll be able to see in the file explorer in the left-hand side.

31:02 You just have, like, the directory trees.

31:03 Yeah, you'll see the directory tree, all the files in there, and stuff like that.

31:06 So that's kind of a couple ways to explore.

31:08 Yeah, that's pretty cool.

31:08 So you mentioned Windows subsystem for Linux, WSL.

31:12 Maybe people don't know about that, but there's also was a pretty big announcement here, I think, around that as well, right?

31:18 That that's, like, proper Linux, not some kind of emulator or something?

31:22 Yeah, so the way WSL started, it was a Linux kernel or Ubuntu image that you could run, and it was, they sort of shimmed out all the syscall APIs to call into Windows kernel stuff, right?

31:34 I mean, that was pretty neat, but, you know, the file system performance was a little bit poor with that.

31:39 Just, you know, it wasn't, these two things weren't really meant to necessarily talk like that, right?

31:44 So they had built, we've announced a new version of WSL that's more like a very lightweight VM, where it runs a full Linux kernel, and it's, they're saying it's, like, 20 times faster in a lot of cases.

31:57 Oh, that's pretty cool.

31:58 You don't have that, you know, interopting between the two operating systems.

32:01 Yeah, what are some of the use cases people have for using that?

32:03 Like, why would they use it?

32:04 Interestingly, most Python developers, the majority, well, not the majority, roughly 50% of them are on Windows, but a lot of them also deploy to Linux environments, right?

32:13 Right, right.

32:14 Dev on Windows, push to Linux.

32:16 Yeah, like Linux servers, right?

32:18 So a lot of their tool chain is in Linux, right?

32:20 And you want to, you know, LS and Grap and SED and OCK and all that stuff.

32:24 You want to be able to just kind of use that, right?

32:25 So it's really given me a good Bash shell experience where I can apt-get install all the things I need.

32:31 I can, you know, install Python and all that stuff, but still be able to use the UI, the user interface of Windows.

32:37 Okay, yeah, that's pretty cool.

32:39 Steve Dower, one of your co-workers, gave a really cool presentation at PyCon that was entitled something like, Python on Windows is okay, actually.

32:48 Yep.

32:49 And it was a really interesting talk.

32:51 People should definitely go check it out.

32:53 But some of the cool things he talked about was, I guess, you know, 60-ish percent of Python developers are using Windows.

33:02 Like, it's quite a high number of how many people are actually using Windows.

33:06 But he made the point that if you look around the room, like, there's the conference reality and there's real reality of, like, sort of tooling and technology distribution.

33:14 And conference reality says most people have Macs.

33:17 A few of them have Linux.

33:18 And there's a couple people with, like, a Surface or whatever running Windows.

33:23 But generally, it's, you know, the POSIX side of the world.

33:27 But if you actually look at the stats, it's not.

33:29 And he talked about why is that, right?

33:32 Why aren't more of the Windows developers at PyCon and feeling like they're part of the community, not just, you know, using the tooling, but actually, like, part of the Python community.

33:42 And I don't know.

33:43 He had some pretty interesting ideas and solutions he threw out there.

33:46 But what do you think about that?

33:47 I definitely agree with the stats.

33:50 And I was at his talk as well.

33:52 And, you know, there's a lot of maybe hidden people out there who are just, you know, trying to learn Python or trying to get their job done or, you know, and they're all just, you know, struggling to use the tools.

34:04 And, you know, we're doing as much as we can from Microsoft to make Python easy to use on Windows.

34:08 But then, you know, it's up to kind of the package authors to think, hey, it's not just, you know, here's my Mac Linux instructions.

34:16 I need to actually test this on Windows and make sure it works on Windows.

34:19 Because there's a lot of people who maybe can't afford to fly to conferences or who aren't, you know, kind of up in all the high tech kind of stuff that we all live and breathe in every day.

34:30 Right. Well, maybe they didn't choose Python.

34:32 Maybe their job chose Python for them.

34:34 Yeah.

34:35 Right. Like they got a job to work as a Java developer.

34:38 But then somebody said, well, we need you to maintain this Python project because, you know, Sarah, who was working on it, has moved on.

34:46 And now someone's got to take it over.

34:47 So you took it over.

34:48 And they're now in, you know, working with these packages.

34:51 And they didn't necessarily decide, you know, to like start in that place.

34:54 Right. That's a different perspective, I think.

34:56 That's possible.

34:57 And there's also a lot of just think about a lot of people use Python.

35:00 Python for information work.

35:01 Right.

35:02 Like it's sort of, you know, I'm trying to crunch some numbers at my insurance company.

35:06 Right.

35:06 Like, you know, and I'm using Windows desktop to do a lot of that stuff.

35:10 Python might be something that I'm, especially these days, a lot of people are using Python just to get their jobs done.

35:17 Maybe they're not primarily programmers even.

35:19 Right.

35:19 I think that's a really big source of the growth of Python.

35:22 It's not like more websites are being built in Python necessarily.

35:26 It's that Python is becoming the tool that people who are not developers are using.

35:33 I think it's growing in both, right?

35:34 Yeah, yeah.

35:35 I agree.

35:35 It's both becoming a, like, really advanced, capable language for, you know, things like data science and machine learning, as well as still easy to approach for that person who's just trying to get their job done and trying to compute some numbers and, you know, maybe script a few things to make their lives easier.

35:52 Right.

35:52 Absolutely.

35:53 I was talking at a dinner last night with some folks who were not super familiar with Python.

35:57 They've been doing more JavaScript.

35:58 I mean, they knew of Python, but not deeply, right?

36:01 They were asking me, you know, why do you think Python has become the de facto language for data science?

36:07 And maybe I'll throw that question out to you.

36:09 Like, what do you think?

36:10 My simple reaction when I heard it was a popular language for data science was like, well, of course, I mean, you got, like, the maps and the array splices and, like, all that stuff.

36:20 And I just remember with Python, you can, I could always do something with just a few lines of code, maybe, like, 80 lines of code.

36:26 That would take me a thousand lines of code in another language.

36:28 And I'm just like, wow, I can't believe I did all that.

36:30 You know what I mean?

36:31 And when you put that together with something like data science plus the really good notation for manipulating arrays and stuff like that, I think it just makes sense.

36:38 And then you have libraries like Pandas and NumPy that came along and actually made it so you could work with larger data sets relatively efficiently and express a lot of stuff that other languages don't really have.

36:50 And TensorFlow and what?

36:51 And, well, NumPy even that, you know, has the performance of C, basically, right?

36:56 Or GPUs.

36:57 But you don't have to write C directly programming?

36:59 Data scientists aren't necessarily, like, super top programmers either.

37:04 They don't know necessarily all the engineering best practices.

37:07 So having a language that's kind of really approachable, you know, for them, I think, really helps.

37:11 I was thinking, look, it's a language that's simple to get started.

37:13 You can kind of get your stuff going, but you don't run out of speed.

37:16 You've got all these libraries.

37:17 I think it's pretty interesting that it's kind of taken over that space.

37:21 But to think about why that is, I think there's a few things that happen, like the creation of Python notebooks, for example,

37:28 and some of the tooling, but also just the language.

37:30 Before I joined the Python team at Microsoft, there's an instance where we're trying to crunch some data.

37:35 And this guy who just came out of school, like, brought in Jupyter notebooks and pandas and all this stuff.

37:39 And I was like, whoa, Python's changed a lot since I last used it, right?

37:42 Exactly.

37:43 And so that got me really excited about the language again.

37:44 Yeah.

37:45 That's super cool.

37:45 Yeah.

37:46 It's got so many interesting use cases.

37:48 And different people use it so differently, right?

37:51 Like, my first reaction to I need to write some code is not fire up Jupyter and create a notebook.

37:55 And poke around is like, I'm going to create a project with tests and coverage and these files and architecture and layers.

38:03 And it's totally valid.

38:04 It's just different use cases.

38:06 Yeah, I like that acceptance of kind of even if you're not doing Python correctly, it's still fine.

38:10 Yeah.

38:10 Right?

38:10 Like, there's really, to me, there's no correct way of using Python.

38:13 The way to use it is the one that gets your job done as quickly as possible.

38:16 Yeah, yeah, for sure.

38:18 So, there's a couple of other things I want to talk to you about VS Code while you hear that I think is pretty awesome.

38:23 We talked about machine learning and AI.

38:25 So, I guess I'll start with that one.

38:27 So, let's talk about IntelliCode.

38:29 So, we have autocomplete in general.

38:33 We have IntelliSense.

38:34 It's kind of like Microsoft's terminology for this autocomplete idea, right?

38:39 Mm-hmm.

38:40 And then IntelliCode is something different, right?

38:43 Back at the EuroPython conference last year, we launched the IntelliCode extension in VS Code, and it only supported Python.

38:50 So, what IntelliCode is machine learning AI-assisted autocompletions, right?

38:56 So, we scour a bunch of open-source databases.

38:58 We find what are the common code patterns, and then we build this model.

39:03 And then if you install the IntelliCode extension, you get that model.

39:05 And then as you're typing, it will predict based on your current code's context what the most likely autocompletion is.

39:11 That's super cool.

39:12 Like, traditional autocomplete is alphabetical, probably, right?

39:16 Or top five.

39:17 Yeah, yeah.

39:18 I mean, but it doesn't really know, right?

39:20 It just says, well, these are the attributes of this object or this module or whatever.

39:26 Here they are.

39:27 Go, we're going to try to help you, right?

39:29 And maybe substring search, right?

39:30 Like, if you type AE, it'll have, like, argument exception will show up because it puts those together or something.

39:36 But it doesn't say, well, it looks like you're in the context of a with statement.

39:40 And you've opened a file, and this is the file pointer thing.

39:44 So if I say dot now, you probably want to read from it or write from it versus, you know, I don't know, whatever else, right?

39:49 Yeah, exactly.

39:50 That's pretty awesome.

39:51 If you actually look at the IntelliCode extension page, there's an animated GIF, one of the TensorFlow 1.0 getting started examples.

39:57 And then it just predicts every single dot, the right thing to press, and you press enter, and it just works.

40:02 It's kind of magical.

40:03 It's pretty insane.

40:03 So it's kind of like that game you can play.

40:06 Like, if you start to text something on, like, an iPhone or whatever, where they suggest a few words, and if you just keep hitting…

40:11 You just keep pressing it and it writes a sentence out for you.

40:13 Yeah, it's like that.

40:14 Right.

40:15 Honey, I'm going to be late from work, but I'm stopping by the store to get milk.

40:18 It's like, how did that happen, right?

40:19 But whoops, I wrote a TensorFlow program instead.

40:23 Yeah, exactly.

40:23 Okay, so I can just go get that now.

40:25 That's been out for a while?

40:26 Yeah, it's been out.

40:26 And it just… So we first launched that preview of that at Europython, and we just GA'd IntelliCode today.

40:32 And initially for VS Code, it was just Python.

40:34 And now we've added, like, TypeScript, JavaScript, and a few other languages there.

40:39 Yeah, so how does it know?

40:40 You said you went through GitHub and stuff.

40:43 Like, what's the story?

40:44 It analyzes, like, the usage of packages, or what's it do?

40:47 I don't know the specifics of the model.

40:49 That's kind of our data science team figured it out.

40:51 But it looks at the usages around where your current code is.

40:55 So it looks around the surrounding area to see what code is being used around that.

40:59 And then based on patterns it's seen on GitHub, the model's able to infer what comes next.

41:06 It's one of those things where it's just sort of like all these layers and things like that.

41:09 You don't know exactly how it works, right?

41:10 It's AI, right?

41:11 Yeah.

41:11 Tell me what you want, not what you want me to do.

41:13 Exactly.

41:13 Don't ask how I did it.

41:15 I'll just tell you what you need.

41:16 So I think it's interesting, you know, like, even 20 years ago, people were saying,

41:20 oh, no, there's not going to be programmers anymore.

41:22 It's just going to be, like, sort of business people dragging, like, boxes around.

41:26 And maybe the AI stuff is going to come along.

41:28 And I feel like that's absolutely not the case these days, right?

41:32 Like, there's plenty more code to be written.

41:34 But stories like this, or tools like this, where it's, like, assisting.

41:39 It's an accelerator, right?

41:40 It's an accelerator, right?

41:41 I feel like software development has both gotten easier and harder, you know, over the last

41:46 10 or 20 years.

41:47 Like, 20 years ago, the tools were way less good.

41:50 There was no stack overflow.

41:52 The internet was not much help.

41:54 Or, you know, even at some point, it didn't exist, right?

41:57 You had to go for a round or whatever.

41:59 So the types of things we tried to solve with software, right?

42:02 We didn't have the cloud, for example.

42:04 They were smaller.

42:06 It was harder to solve them.

42:07 But we, like, knew they were hard.

42:09 So we attempted smaller problems.

42:10 Now we attempt to solve bigger problems.

42:13 But we have better tools.

42:14 I feel like there's this kind of, like, tension.

42:16 Like, it's sort of about as hard as it used to be.

42:18 But we can do way more.

42:19 What do you think?

42:20 Yeah, I mean, certainly, I think you used to be able to print out a book on programming

42:24 or whatever.

42:25 Like, you know, have that reference guide beside your desk.

42:27 And that's just not possible today, right?

42:29 Right.

42:29 And I actually think about, when I think about the, like, technology becoming harder, I think

42:33 about things like containers, right?

42:35 Like, hey, it allows me to get all these benefits.

42:37 But then, oh my gosh, it's so much harder to work with, right?

42:40 Now I got to know about Docker files.

42:42 And I also got to know about Linux and Windows or Linux and Mac, maybe.

42:45 And things like React, for example, where it's like, wow, it's a super great programming

42:49 model, but like, you got an NPM and Babel and TransPile and JSX.

42:53 And like, what is happening?

42:54 Where's my just, you know, JavaScript source equals or whatever?

42:57 Yeah.

42:58 So, I mean, I think the key is if you can sort of get past the tooling complexity and get

43:02 to that, once you sort of get in that flow of, okay, I've got everything set up and it's

43:06 working, like, we can really do some awesome stuff.

43:09 But then I think it's really hard for beginners to get into that because there's like this learning

43:13 curve.

43:13 I've got to learn the last 20 years of advancement in technology.

43:18 This portion of Talk Python to Me is sponsored by Backlog from NewLab.

43:21 Developers know the importance of organization and efficiency when it comes to collaborating

43:26 on a team.

43:26 And Backlog is the perfect collaborative task management software for your team.

43:31 With Backlog, you can create tasks, track bugs, make changes, give feedback, and have team

43:36 conversations right next to your code.

43:37 You track progress with features like Gantt and burndown charts.

43:41 You document your processes right alongside your wikis.

43:44 You can integrate with the tools used every day like Slack, JIRA, and Google Sheets.

43:48 You can automatically register issues from email or web form submissions.

43:51 Take your work on the go using their top rated mobile apps available on Android and iOS.

43:56 Try Backlog for your team for free for 30 days using our special URL at talkpython.fm slash

44:02 backlog.

44:03 That's talkpython.fm/backlog.

44:07 The last other one that I said I was going to ask you about too, the other one that I

44:10 thought is pretty cool that I've wanted for a long time in editing is something called

44:15 LiveShare, I think.

44:16 I've done a lot of like, hey, let's work on this together.

44:19 So I'm going to set up a Zoom meeting and I'll share my screen or Skype and we'll share

44:23 the screen or who knows how this is going to happen.

44:25 But it probably involves sharing a screen and who's typing right now.

44:28 Oh, I need to type that.

44:29 Let me switch back to your computer and you'd share your screen.

44:32 Or go up two lines there.

44:34 No, one character over.

44:35 One character over.

44:35 No, that one, this one.

44:37 And that's the point where you're like, why are they not showing line numbers in their

44:40 editor?

44:40 Come on.

44:41 Yeah, yeah.

44:41 I could just say line 132 and we'd be done.

44:43 But no, up, up, up.

44:45 Yeah, exactly.

44:45 So this LiveShare stuff is pretty cool and it's kind of like that, right?

44:49 Yes.

44:49 The way it works is somebody can start a LiveShare session.

44:52 So first of all, you install the VS LiveShare extension.

44:55 It works on both Visual Studio and Visual Studio Code.

44:57 You start a collaboration session.

44:59 You invite someone to join.

45:00 And then when they join, they're sort of connected into your development environment.

45:05 They can see all the files you have open.

45:07 They can, you know, if they start typing, they'll get IntelliSense.

45:10 They can collaboratively debug with you.

45:13 You can choose to follow each other or go explore the code base kind of on your own and come back.

45:17 You can sort of like click a follow button and things like that.

45:19 Is that a VS Code only thing or does it work with other stuff?

45:22 It works with Visual Studio as well.

45:24 The full Visual Studio.

45:25 So I get this question all the time.

45:26 You know, can I collaborate?

45:27 Can I have a Windows machine and have a Mac join that?

45:29 Yes, you can collaborate across platforms and machines and stuff like that.

45:33 So, I mean, the cool thing, it really helps you if you can have someone come in and look at the code and then they can just type in the code that they want to write.

45:40 You know what I mean?

45:40 And you can have multiple people joining in on that.

45:43 So it's really cool.

45:44 I just used it the other day with a coworker when we're building our demos for PyCon and Build.

45:48 And I was just like, wow, this.

45:50 Yeah, that sounds pretty cool.

45:51 Can you do it?

45:52 Is it like pretty useful for a code review?

45:54 Something like that?

45:54 Yeah.

45:55 Yeah.

45:56 Do you want to kind of explore around?

45:57 Okay.

45:57 Yeah.

45:58 That sounds like a pretty cool feature.

46:00 Definitely.

46:01 So we're getting pretty short on time.

46:03 So I guess let me just ask you a few sort of closing out questions.

46:06 One of the things that was cool at PyCon, and I think would be cool to see if it's showing up over here at this conference, is the sprints.

46:16 Right?

46:16 At the end of the last couple days of PyCon, there's a few other days where folks who are maybe working on Flask or SQLAlchemy, they stick around and collaboratively.

46:26 Jam on it.

46:27 Jam on it, right?

46:28 Jam on it.

46:28 Maybe learn even how to become a contributor to that project or whatever.

46:32 It'd be cool if you guys did something like that here.

46:34 That's the first time someone's brought it up.

46:35 I actually think you're right.

46:36 It's a cool idea.

46:37 I'll recommend it.

46:38 Yeah.

46:39 But one thing, to give you guys props, one thing that was really cool here is out on the expo floor, there's like maybe, I don't know, 20, 30, 40.

46:46 It's like maybe computers.

46:47 And it said, this section is reserved for students.

46:49 And any student that walked by could sit down and start working on some projects using the computers there for, I think there was some IoT or robotic stuff going on.

46:58 But I feel like that's super cool and other conferences should adopt that.

47:01 Like at PyCon, there's some stuff like that.

47:03 But it's usually in a back room, closed off, and you had to know about it in advance and sign up for it.

47:08 It's not like it was happening in public and all the other students would happen upon it, right?

47:13 Yeah.

47:13 I mean, they started doing the mentored sprints this year at PyCon to start bringing more people in.

47:17 The students thing was new this year.

47:19 And I just love it.

47:20 I think it's a great idea.

47:20 And anything we could do to get people learning programming at a younger age helps us all move forward quicker.

47:29 But also, I think it does a lot to increase the diversity.

47:32 Yeah.

47:32 Yeah.

47:33 People can kind of stumble upon it when they're young and go, oh, this is cool.

47:35 I like this.

47:36 You know?

47:36 Yeah.

47:36 It's super cool.

47:37 And programming is usually pretty easy with like a few little sharp edges.

47:42 And you're like, why does this not work?

47:43 Why can't I get over this?

47:44 And if someone's there, just go like the mentored sprints.

47:46 Just click this button there.

47:47 Yeah.

47:47 Like, oh, you've got to run this command first.

47:49 Oh, you didn't activate your virtual environment or whatever, right?

47:51 Like then it'll be smooth, right?

47:53 Just a little bit of initial help, I think, would be great.

47:56 Yeah.

47:56 Yeah.

47:56 Pretty cool.

47:57 So what's your favorite thing here, Bill?

47:59 Your favorite announcement or thing that came out around the conference?

48:03 I think the WSL 2 was definitely a highlight.

48:05 Good file system performance, things like that.

48:07 The new Windows terminal, right?

48:09 Yeah.

48:10 And we haven't talked about that.

48:11 And I haven't had a chance to look at it.

48:12 But tell us about it.

48:13 It sounds like Command Prompt got better.

48:15 And it's actually, they put the code up on GitHub.

48:17 It's open source.

48:18 But it's like tabbed.

48:19 It looks a lot nicer.

48:21 It's got full Unicode support.

48:23 And you can kind of switch between a WSL or a Windows command prompt.

48:27 Right.

48:28 So this is not PowerShell, not a separate PowerShell, like blue window.

48:32 But like the traditional CMD one is now better.

48:35 Is that what it is?

48:36 Yes.

48:36 It might support PowerShell too.

48:38 I haven't caught up on all I built just yet to be honest.

48:40 But the one thing, we also announced a cloud hosted developer environments where it's a

48:44 preview right now.

48:45 You have to sign up for it.

48:46 But I'm really excited to see where that goes.

48:48 What does that mean?

48:48 You get like a remote terminal or is it this VS Code?

48:53 Well, think about it, the VS Code remote.

48:54 But then somebody also spins up a server for you as well that you can just click a button

48:59 and get your environment pre-created, pre-provisioned for you in the cloud and just start working

49:03 away on it.

49:03 So I'm really excited to see where that goes.

49:04 So if that sounds interesting to anyone, definitely sign up for the preview and check it out.

49:08 That's cool.

49:09 Does it work in a web browser or does it require something like VS Code?

49:11 Both.

49:12 Yeah.

49:12 Okay, cool.

49:13 So VS Code, I mean, there's so many things that we've announced here.

49:15 The browser-based offering as well.

49:17 Okay.

49:17 Yeah, that's pretty cool.

49:18 So the reason I ask is a lot of times people are trying to teach classes or run stuff,

49:23 especially around schools and students, and they just have a Chromebook.

49:26 And it's like, can you do Python on a Chromebook?

49:29 How do you do that, right?

49:30 Yeah.

49:30 These sorts of remote environments that work in the browser are really awesome because

49:35 then it makes it possible for all these kids to do programming.

49:37 Yeah.

49:37 I love that from the getting started angle as well as, say, I've got a super big, powerful

49:42 development environment and I've got to spin up a bunch of them all the time and I just

49:47 want to move from this one to that one to this one to that one.

49:49 So at a really large scale at some of the larger companies, that's another area where that's

49:53 really interesting.

49:53 Okay.

49:54 Yeah.

49:54 Super cool.

49:54 Super cool.

49:55 All right.

49:55 Well, I think that might use it up all our time, but not all the questions I had for

49:59 you.

49:59 So I'll ask you the final two questions before we wrap it up.

50:03 Kind of know the answer to the first one, I'm guessing, but I'll ask it just for, I think

50:08 it's always true.

50:08 If you're going to write some Python code, what editor do you use?

50:11 Obviously Visual Studio Code.

50:12 Yeah.

50:12 Right on.

50:13 Okay.

50:13 And notable PyPI package.

50:16 So I just started playing with this today.

50:18 I have a build talk later today, but I just started using TextBlob for doing sentiment analysis.

50:22 Oh yeah.

50:22 TextBlob is cool.

50:23 Yeah.

50:24 I just came across it as well.

50:25 Yeah.

50:25 And cause I was like, how do, it's the easiest way to do sentiment analysis.

50:27 And I came across TextBlob and I'm like, wow, this code fits in one tweet.

50:31 I can build a Flask API that returns, you know, positive or negative within, you know, a few

50:36 lines of code.

50:37 This is pretty awesome.

50:37 Yeah.

50:38 That's cool.

50:38 Like, so people who don't know, TextBlob is like a simplified layer on top of NLTK and

50:44 you can do all sorts of cool stuff.

50:46 Like here's document and ask it for the sentences, ask it for the nouns, ask it for the sentiment of

50:51 phrases, the number, like the unique words, a lot of cool, like, things that are real simple though, right?

50:56 Yeah, exactly.

50:57 I just started playing with it and it's pretty fun.

50:59 Right on.

51:00 All right.

51:00 Well, final call to action.

51:02 People maybe want to check out some of the things you talked about, like the insider remote

51:06 Visual Studio Code stuff, something like that.

51:08 How do they get started?

51:09 So check out our Python blog, aka.ms slash Python blog.

51:12 So we post, you know, all of our updates there, our monthly releases about the VS Code remote

51:17 stuff.

51:18 So if you just want to keep up to date with what we're doing, check that out.

51:20 All right.

51:21 Right on.

51:21 Well, Dan, thanks for being on the show.

51:23 It's great to chat with you.

51:23 My pleasure.

51:23 Great chat.

51:24 You've got in person even.

51:25 Yeah.

51:26 This is awesome.

51:26 Thanks.

51:27 Yep.

51:27 See you.

51:28 This has been another episode of Talk Python to Me.

51:31 Our guest on this episode was Dan Taylor, and it's been brought to you by Linode and Backlog.

51:36 Linode is your go-to hosting for whatever you're building with Python.

51:40 Get four months free at talkpython.fm/Linode.

51:44 That's L-I-N-O-D-E.

51:46 With Backlog, you can create tasks, track bugs, make changes, give feedback, and have team conversations

51:52 right next to your code.

51:54 Try Backlog for your team for free for 30 days using the special URL talkpython.fm slash

52:00 Backlog.

52:00 Want to level up your Python?

52:03 If you're just getting started, try my Python Jumpstart by Building 10 Apps course.

52:08 Or if you're looking for something more advanced, check out our new async course that digs into

52:13 all the different types of async programming you can do in Python.

52:16 And of course, if you're interested in more than one of these, be sure to check out our

52:20 Everything Bundle.

52:21 It's like a subscription that never expires.

52:23 Be sure to subscribe to the show.

52:25 Open your favorite podcatcher and search for Python.

52:27 We should be right at the top.

52:28 You can also find the iTunes feed at /itunes, the Google Play feed at /play,

52:33 and the direct RSS feed at /rss on talkpython.fm.

52:37 This is your host, Michael Kennedy.

52:39 Thanks so much for listening.

52:41 I really appreciate it.

52:42 Now get out there and write some Python code.

52:44 I'll see you next time.

Back to show page
Talk Python's Mastodon Michael Kennedy's Mastodon