Python Bytes - #156 All the programming LOLs

Episode Date: November 15, 2019

Topics covered in this episode: * Why You Should Use* python -m pip Visual Studio Online: Web-Based IDE & Collaborative Code Editor Black 19.10b0 Released — stable release coming soon Extras ...Joke See the full show notes for this episode on the website at pythonbytes.fm/156

Transcript
Discussion (0)
Starting point is 00:00:00 Hello and welcome to Python Bytes, where we deliver Python news and headlines directly to your earbuds. This is episode 156, recorded November 6, 2019. And we're recording from a special place here at Microsoft Ignite in Florida, live. Maybe you might be able to hear some background noise, and that's because it's right here. And Brian is not here because he couldn't get away. He should have come to the conference. So I have not one but two special guests. Dan Bader. Hey, Dan. Hey, how's it going, Mike? Great to have you here. And Cecil Phillip. Hey, what's going on, everybody? Hey, welcome back, both of you. Been on independently now together, very quite close together in this little corner area we put
Starting point is 00:00:36 together. Cecil and I were sharing a mic, so we get to like snuggle up here on the couch. You guys will be fast friends after this. Yeah, we're getting some intimate time together while we record this podcast. Alright, awesome. Well, let's start by thanking DigitalOcean for sponsoring the show. Check them out at pythonbytes.fm slash DigitalOcean. More on that later. Dan, there's a lot
Starting point is 00:00:56 of debate about how you create a virtual environment. I know both of you guys are fans of virtual environment, but there's VE&V, there's virtual environment, there's poetry, there's all these things. You've got a recommendation for us, huh? Yeah, so I wanted to call out or
Starting point is 00:01:10 showcase an article that Brett Cannon published recently. Basically, it's about a best practice you can apply when you're running commands like pip install. What Brett recommends in his article is instead of running pip space install in whatever library we want to install instead you can run python dash m space pip and then run whatever command you want to run because brett likes to type a lot or what
Starting point is 00:01:36 because he enjoys typing so much and uh that's probably why why we should all use that um now so the the reason is that uh if you use this other form, like dash m will basically load a module and execute it, you know exactly which Python environment this will affect. So if you just go pip install, it would be possible that pip actually points to a different environment,
Starting point is 00:01:58 maybe not the one that you think it does point to. So maybe you're accidentally installing something into your Python 2 environment, but you want it to go into your Python 2 environment, but you wanted to go into your Python 3 environment. That happened to me when I was new. I'm like, why is request not here? I don't understand what is going on. So frustrating. But like, yeah, I think I typed pip instead of pip 3 or something
Starting point is 00:02:14 silly. I was new and young. I didn't know what I was doing. I just really like this article because it gave some pretty clear recommendations, and I'm pretty much on board with all of them. And if you follow this format whenever you run pip install, you will always just be 100% sure that you're actually installing stuff into the right environment. Because if you hit the wrong environment, you have to go and
Starting point is 00:02:35 uninstall stuff. Maybe you end up upgrading something that you didn't want to upgrade and it can get messy. And so I just felt like, yeah, that's a good recommendation there. And an article worth reading because bread goes into a lot of the backstory and like why this is a good idea. That's really cool. My first thought is like, I need to alias this so that pip just means Python 3-mpip. Cecil, I know that you are a fan of virtual environments. Do you do anything special or do you just run Python 3? Do you pip directly or do you do something like Poetry or something else like that?
Starting point is 00:03:06 I'm actually a big fan of pipenv actually. So we do this live stream randomly and we actually showed that off on our last episode how you could use pyenv and pipenv. For our students it was really important for us to have that background information but then
Starting point is 00:03:21 now they know how these little bits and pieces go together and having one command line tool that'll be able to like orchestrate all of that stuff for us like just is is like a game changer yeah that's awesome so you're doing with blank brian clark you're doing a twitch live stream programming series which is really fun we're going to talk about on talk python yeah further down the road like pretty much in real time close but in release time far apart sort of thing. But yeah, so it seems like there's a lot of beginners in that world. And so this is probably a tricky concept for them. Yeah, it totally is. And so using something like it was
Starting point is 00:03:55 so much less for them to worry about in terms of like installing and setting up and like, what's the right combination of commands I need to use? What order I need to run them in? If I made a mistake, like how do I back out of it and like restart over? That one command, it just kind of allows us to manage environments and manage packages and it just makes it so much easier. Super cool. Well, we are here at Microsoft Ignite, which is, I had no sense of the scale of this place until I came here. 29,000 people. Yep. Ignite is massive, man. I don't know. Because Ignite is so much more than just a developer audience. It's developers, it's IT folks, it's CTOs, and all these different types of folks, all at one conference. So when you bring all those people together, you get a pretty massive
Starting point is 00:04:35 turnout. And you get a lot of steps in. You get a lot of steps in, man. So as you can imagine, a conference center is humongous. And so there's sessions all across the conference center, there's sessions across the street and down the street. So, I mean, sometimes you got to do a little bit of walking. That's right. The reason I bring all this up
Starting point is 00:04:50 is there was a pretty big announcement here that's quite close to Visual Studio Code, which is one of the most popular Python code editors these days. So, you know, tell us about it. Yeah, yeah. So, like you said, like Visual Studio Code
Starting point is 00:05:03 that runs on our desktop runs on Linux, Mac, Windows. And then the Python extension has something like, I don't know, like 24 million. Yeah, I know. It's got a mini, mini, mini. It's tons of millions of downloads. It's by 2x the most popular thing for Visual Studio Code. Way over C Sharp, way over C++.
Starting point is 00:05:18 It's massive. Right, definitely. And so the Python extension is easily like the most popular extension for Visual Studio Code by leaps and bounds. But one of the big things that we had announced this week was our new Visual Studio Online environment. And this is the real Visual Studio Online and not the old one. And when I say that, I mean, we used to have a product called Visual Studio Online, but that was essentially what turned into Azure DevOps. The Visual Studio Online used to be our CICD.
Starting point is 00:05:45 Yeah, it was hardly even Visual Studio. It was like the continuous integration story and like TFS. Right, right, right. And all the source control bits. It was source control. It was ticket management. It was bills and those types of things. That name was hijacked.
Starting point is 00:05:55 Yeah. And so, you know, now we're repurposing the name. And now Visual Studio Online is exactly what you think it is, right? It's Visual Studio Online. More specifically, it's Visual Studio Code Online. Right. Which is so interesting because Visual Studio Code is an Electron JS app. So it's got like this front end and this back end already on your machine, like got Node and then Chrome like packaged into one thing. But now you just put like lots of distance and stuck part of it in the cloud, right? Yeah, totally. And so the background of it is a
Starting point is 00:06:23 little bit of, so we had Visual Studio Code and we also have some extensions that allow you to do what we call remote sessions and remote debugging into different environments. So for instance, I could have Visual Studio Code in my machine and I could debug into a Docker container. I can debug into a Linux machine. I could debug into a workspace that's not on my local machine. But then not only can I do that, I can have my environment-specific settings and tools I have installed, extensions and those types of things on that environment and not on my machine.
Starting point is 00:06:52 So all that happens is that when I start to remotely connect to that machine, I'll just have all those additional things just added to my currently working workspace. So we're like, okay, well, if we can do that, what if we just created a completely online experience for that? Kind of like what you said, Visual Studio Code is built on web technology.
Starting point is 00:07:12 It's JavaScript and CSS and those types of things. Essentially, they took the editor and they took all the tooling and they put it in a web browser. Yeah, it's so cool. It's really a nice experience. You get basically an Ubuntu machine and you get a little Docker. Is it Docker or just straight VM or what? Honestly, I have no idea what type of machine is running on. But you get some machine with a terminal that like your stuff lives on, right? Yeah, you get a machine with a terminal. So essentially what you do is you go in and you could like create a new environment or if you have an already existing Git repo, there's some markup that you could add to your markdown file
Starting point is 00:07:41 that'll add like a button in your markdown. is it like like the launch binder for notebooks but instead you like launch nvs code right like you know you see launch binder or if you might have seen the thing that says um like build succeeded or something like that like those little tabs those little buttons you can add into your git repo so you can add one of those that just says create environment and what will happen is per person right like you'll get a individualized environment for yourself right so if i have my github repo and you know dan can click the button and you can click the button i can click the button but we'll have three different environments pointing to the same repository i see so it's like spin up a little dev machine but it links back to the source control
Starting point is 00:08:18 just right which is great right because when you think about companies that have situations where it takes really long time for us to do setup, and I got to install dependencies, and there's multiple things that need to happen before I can even start to become productive. I got to install this OSS thing, and I got to install SSL, and stuff has to happen before work can actually happen. Now we could have these predefined environments where I could just be like, hey, let's just create this environment for this particular code project, and now we can just get to work. And it's running on the browser. I don't have to install anything on my machine if I don't want to,
Starting point is 00:08:51 and I have everything I want right there, just running inside of the cloud. That's super cool. You could use it from an iPad. You could use it from a Chromebook, other places where it's hard to run code, right? I've had teammates that have run it from iPads, from their cell phones, from all over the place.
Starting point is 00:09:04 Hey, Siri, refactor this. What was really cool, if you remember the keynote, Amanda Silva was telling us a story about how she ran it from inside the airplane. Like she was debugging the demo that she showed using the project for the demo on the airplane,
Starting point is 00:09:20 which is an airplane Wi-Fi. And if anybody's used airplane Wi-Fi, we know that's not like the most... Yeah, that's sipping through a straw. The most high bandwidth situation. That's cool, man. But it was super cool.
Starting point is 00:09:29 So people can try this now, right? And the link is in the show notes. Yeah, people can definitely try it out now. Let us know what you think about it. I ran it myself personally just the other day. The Ubuntu machine
Starting point is 00:09:38 that it comes with comes with Python 3.8 by default, which is great. So I didn't have to install it or do anything with it. And I think that's also really cool because Python 3.8 is like, what, great, so I didn't have to install it or do anything with it. And I think that's also really cool because Python 3.8 is like, what, like
Starting point is 00:09:47 two or three weeks old as of today? Yeah, it's brand new. Yeah, it still has that new Python smell. These are brand new, fresh, you know, machines and images that you get to run your code on, so I think this is really cool. That's a great one. Thanks for sharing that. Now, before we get on to another one, let me tell you about DigitalOcean and their sponsoring
Starting point is 00:10:04 the show. All of our infrastructure runs on DigitalOcean. Super, super happy. We ship like 15 terabytes of data through there. We have millions of requests and just love, love using it. So if you want some like we got going on here, check them out at pythonbytes.fm slash DigitalOcean. Now, this last one, speaking of Python 3.8 and 3.9, the next version of Python should come a lot quicker because we've now switched from an 18-month release cycle to a 12-month release cycle. This is a project that LucasLing has been working on for a long time, trying to make this happen,
Starting point is 00:10:36 now that he's in charge of the release management. And so Brett Cannon, speaking of Brett Cannon from earlier, he sent out a message from, officially from the steering council, which is a cool way to announce thing, that after a long discussion on changing the cycle, we've decided to accept HEP 602. And it's now yearly, which I think is great because it's just weird to have like alternating times of the year or like this. It just seemed one really long and two kind of weird. Like, what do you guys think about this i think this is a is a good change because it kind of puts everything on a very
Starting point is 00:11:09 regular cadence in the year so you know when you think about when python is pycon is happening in the year i guess if you have the sort of 18 month release cycle you're always kind of in a different phase of development and preparing that release but if it's on a 12 month fixed cycle then you can always say okay you know we're going to get ready to, I don't know, finalize, we're in this phase, getting ready to beta version or whatever, during that time, which I think makes planning
Starting point is 00:11:33 a lot easier for everyone. And, yeah, I can understand the rationale for that, going to a 12-month cycle. Makes sense to me. I'm actually pretty happy to see this. I think what I hope to see out of this is just we'll be able to see new features faster,
Starting point is 00:11:49 try them out faster, and you won't have to wait until those official releases come out on that longer cadence. I think it's the same with most development environments. Unless it's an official release, most people really don't play around with the betas and the alphas as much. It's only when the official releases come out where you get most of
Starting point is 00:12:07 the developers and companies really jumping on new features. So I think with this shorter cadence now we should be able to get more feedback and I guess people to be able to iterate faster on some of these new cool things that are coming out in the language. Yeah, we don't have to have as much patience. We can get right to the cool new features that are coming out. Yeah, exactly. Yeah, so I'm really excited about this. I actually linked not to the official announcement directly, but to a Reddit thread, because the Reddit thread has a bunch of feedback, and I would say it's pretty mixed. It's like 50-50 positive, negative.
Starting point is 00:12:36 It's an interesting look, and it's just side of what people are thinking intersected with the weirdo Reddit world. So that's pretty cool. But people are saying, well, it's going to be shorter, so there's not as much time for testing. So I'm concerned about quality. But there was a lot of pressure on that 16th and 17th month to get your feature in, because if you don't get it, it's a year and a half. You got to wait if you miss that deadline. So you're going to scramble to get that in. Now it takes the pressure off a little bit. So I think it's actually a pretty positive thing. Dan, you want to tell us about this next one another uh release
Starting point is 00:13:08 story yeah sure so i feel like this is the the brett cannon and lukash langa episode of python so yeah i've got another cool announcement so black which is the uncompromising code formatter for for python code just had a new, so this version is called 1910 beta 0 or B0. And the way I understand it, or the way I interpret Lukasz's Twitter feed, they're actually getting ready for releasing a
Starting point is 00:13:36 stable version or stable release of Black. The first actual stable release for Black Friday this year, which is kind of a beautiful thing, how the naming scheme is working out there. And so maybe if you're listening, you don't know what Black, the uncompromising code formatter is.
Starting point is 00:13:53 So it is essentially a tool that enforces a certain Python formatting standard or like a style guide. So it will reformat your code to be PEP8 compliant. And it, well, just the great thing is it will reformat your code to be PEP8 compliant. And the great thing is it will reformat your code, and it would also call you out on anything that's misformatted or not following the standards. So it's a really great way to establish a consistent code style
Starting point is 00:14:17 in a large code base, and then put that in place on a CI system, continuous integration, and it just makes sure that you never have to argue about code formatting in a pull request again, ever again. If there's ever a problem, you just run black again, and it's great. Honestly, it's one of my favorite tools. I put it
Starting point is 00:14:34 into every Python code base that I work with. It's been super stable, even though it is still in beta, technically, but I've been running it in production, if you will, very happily, pretty much since it came out. And if you just want to try it out, there's also a interactive playground on the web at black.now.sh.
Starting point is 00:14:51 That's really cool. I didn't know about that. Yeah, it's pretty cool. Like you can just copy and paste a bunch of code there or just enter code and it will show you what Black would do to the code and how it would reformat it. And yeah, I highly recommend it.
Starting point is 00:15:02 It's honestly one of my favorite, most favorite tools there. Yeah, super cool. It'd be great to one of my favorite, most favorite tools there. Yeah, super cool. It'd be great to have that come out and be basically totally stable. Cecil, do you guys use that on your live stream? I think by default, we use this thing called AutoPep8. So when I say by default, we use Visual Studio Code, as you can imagine. And the extension, when you save it, auto formats it, you know, based on if you have that setting turned on or not. And if you don't have like a formatter installed, it'll
Starting point is 00:15:26 ask you at the bottom which one you want to use, and then it'll install one. So it's black as an option. I think there's one called YAPF. YAPF? I'm not quite sure how you pronounce that one, but there's that one. Get another formatter or something. Right, right, right. And then I think the default
Starting point is 00:15:42 one that it uses is AutoPep8. So if you just click OK, it'll just use AutoPep 8. Or you could select one of the other options as well. But I'm kind of interested to try this out. I want to kind of see what does the configuration look like and how can you tweak the settings and those types of things. Yeah, cool. I think it takes away a lot of the debate.
Starting point is 00:15:58 My understanding is it's kind of like a Model T. You can have it in color as long as you want it in black. So there's not a lot of debate about the format. It's just like it does what it does. Exactly. So speaking of formatting options, there's basically none, which is kind of cool
Starting point is 00:16:13 because it prevents any arguments that you otherwise might have with a team about preferences. So yeah, it's like a philosophical choice there that you're making with this tool, I guess. Pretty cool. Cecil, you also talked, when you talked about Visual Studio Code that you're making with this tool, I guess. Pretty cool. Cecil, you also talked, when you talked about Visual Studio Code,
Starting point is 00:16:28 you just start by pointing to GitHub repo. Yeah. And you can like, once you load it up, you can navigate around within Visual Studio Code, right? Yep. So I mean, I think everything that we do as developers, like at one point in time, like touches GitHub. Like I think it's almost impossible today to write code
Starting point is 00:16:43 that wasn't on GitHub or touched GitHub or used something that was associated with GitHub at some point. If it wasn't for the weekends, imagine the streaks. Right, exactly. So GitHub is obviously a super important tool for us, for our industry. And they've been releasing tons of cool features over the past couple of months.
Starting point is 00:17:00 And one of the features I want to highlight today is their code navigation. So inside of it, what you could do now is, you know, if you go to their, if you click on a file and you go to like a code view, you could essentially like, you know, click on functions and you could see things like where was it referenced and where the definition of the function was. And so you can imagine if I had like one super huge code file that I have open
Starting point is 00:17:22 and I'm just looking at it in the default browser inside of github.comcom it makes it so much easier now for me to like jump and see where was that defined and whatever the case is and so now navigation within the browser is super easy that click and go to definition is so cool because yeah otherwise it'll even go cross file I think within a repo it's it's pretty killer it's really cool and not only it supports python obviously but it supports tons of other languages like I think it supports go, it supports JavaScript, Ruby, PHP. Again, there's tons of language support, right? But obviously, we're going to be a little bit biased, and we're going to make sure we try out the Python support in Cyclic.
Starting point is 00:17:55 Yeah, that's right. We tried it out. I even linked to a file where we know that it works from one of my courses. So this last one I want to talk about, it's going to sound like a joke, but I really mean it as a legitimate thing. I got a shot of you with your webcam and then it'll generate like a meme looking picture with your commit message on there so it will give you like this crazy you know like you could make a face like you're happy or sad did it work out did it not why you know are you fixing a bug is it a fun new feature and so you can do this really cool like sort of meme looking picture here and then you can get plugins for like slack and twitter
Starting point is 00:18:48 and stuff and like you to like post these pictures back up to like say your team slack so someone not just knows there's a commit but they can see how you felt about it they can see the message what do you guys think about this i don't know how i'd never heard about this until you mentioned it but this is like the coolest thing ever this This is going to make like committing code so much fun. I know. I'm going to pay so much attention to the commit message now. You're just going to be committing like all day, every day. And I'm like, I got to get this committed. I got to get this committed. But I think this is super cool, man. I definitely want to try this out. Yeah, it looks pretty fun. It's very understated. Like, you know, it describes itself as being like the single most useful piece of software known to
Starting point is 00:19:25 mankind and stuff but no in all seriousness it's fun it talks about like a lol repository where you commit these or like you can create animated gifs of like your commits over time and like all sorts of weirdness so it's it's pretty fun i just thought you know maybe this will like make working in teams a little more fun dan what do you think i think this is awesome like just looking at the website there you apparently can have apparently you can write your own plugins or there's different filter options so you can get a unique style for your commits.
Starting point is 00:19:51 I'm wondering how frustrating this could be if you're accidentally maybe lull committing something where, I don't know, you're waking up in the middle of the night and just got to get some code out and maybe sitting there not really dressed yet or whatever. Oh no, I forgot about the log. Okay.
Starting point is 00:20:07 I'm not going to go into details of how I like to work. Awesome. This is great. Yeah, yeah. It's pretty funny. But, yeah, it seems like it actually could foster a little bit of team humor, but also connection. Oh, yeah. Right?
Starting point is 00:20:19 Rather than just adult commit logs. Looks fun. That's it for our main items. Dan, anything else you want to just throw out there quick? I would love to, you know, speaking of the latest release of Python 3.8, which just happened two weeks ago, I think. So at RealPython, we've just released an article highlighting all the new features in Python 3.8 and kind of going over the, you know, all the nice and interesting new features that are in there, like the walrus assignment expressions and also
Starting point is 00:20:43 stuff like the syntax warning that's going to, you know, it's a new type of warning that's going to tell you about maybe some cases where you're using the is comparison instead of the double equals sign and stuff like that, where previously you would need a linter to highlight that. Now, actually, Python is going to call you out on that stuff, which is pretty cool. And yeah, that's something we just published on Unreal Python. Gerard Niha did a fantastic job there. And I found that personally also very helpful just getting up to speed with the latest changes.
Starting point is 00:21:07 Yeah, awesome. Your articles are great. Bookicles, like we got to give them like a proper name. They're a little bit longer than ours. Bookicle, yeah, I like that. Yeah, of course too.
Starting point is 00:21:15 That's great. So very nice there. Cecil, anything for you? What are you up to these days? Sure. I definitely want to call out the weekly stream that we do. Me and my buddy,
Starting point is 00:21:24 Brian Clark, do a very introductory learning Python stream every Wednesday. It's at 11 a.m. Eastern Standard Time. And essentially, we've just been going from the very bare bones all the way up to, you know, covering different features of Python and things like, you know, what's a function and what's a for loop and like, you know, some of those types of things. Again, we just try to be very beginner-friendly, try to be just open to everyone. It's a really fun time, right? Because it's not just me and Brian going back and forth, talking to each other about Python, but we get tons of questions from the community, tons of questions from folks inside of the stream.
Starting point is 00:21:57 Yeah, it's super interactive, like way more than even webcast or something like that. It's really cool. Yeah, super interactive. It's really cool when they ask a question like, oh, hey, what if I change this to this thing? Or what if I remove this line?
Starting point is 00:22:08 Or what if we try to do things a different way? You know, we could do all of that on stream. It gets recorded. And then now not only are they learning from us teaching them, but we're also learning too, because now there's just all of these different perspectives and scenarios that we're trying on live. Have you heard about this library? It does it all together or whatever.
Starting point is 00:22:24 Yeah, exactly. Awesome. Yeah. So I'll definitely throw a link to that in the show notes. Alright, last for me, the Python Software Foundation yearly survey is out. So this is the biggest survey that gives us a look inside the trends and it's in partnership probably with JetBrains.
Starting point is 00:22:37 It was last year. I don't know if it is this year, but I'm guessing that's the case. They just do a super good analysis and yeah, please go fill it out because it lets us know you know what the world's up to we already did ours so uh it's your turn now and be sure to get get to that and also i want to announce a new course on anvil i don't know if you all are familiar with anvil anvil is a web framework but it's not like flask or django you know some people think should i do anvil should i do a flask django this is really different like
Starting point is 00:23:04 if you've ever tried to build web apps and you're like, I don't want to do JavaScript, CSS is like a nightmare, I don't really want to work with databases, all this deployment is a challenge, all that kind of stuff, you're like, I just want to do Python, maybe for an internal app or something cool like that for your company.
Starting point is 00:23:19 This is a framework that will run in the cloud, it will let you write server-side Python code, design the UI with a drag-and-drop widget-y type thing, very much like ASP.NET Web Forms. That's actually way back in the day. And the big deal is the front end runs Python in the browser super well. It is ridiculously cool.
Starting point is 00:23:40 You build a spa, a single-page app in Python, which is actually kind of a dream. So check it out at talkpython.fm. The course is free. You can a spa, a single page app in Python, which is actually kind of a dream. So check it out at talkpython.fm slash anvil. The course is free. You can play around with it. I thought I'd just put this one out here for people to get exposure to the courses. That actually sounds pretty cool. Do you know if it's doing like a web assembly thing or is it like translating Python? I had a Meredith, the guy behind the show and another guy on the show, I'm so sorry, I forgot his name, to talk Python, to talk about Sculpt. They're using Sculpt, which is a JavaScript implementation of the interpreter.
Starting point is 00:24:09 So it doesn't compile it to JavaScript. It has like a JavaScript runtime that is like CPython, I believe. But it's not using WebAssembly. The reason it's not using WebAssembly is the interaction between the DOM and WebAssembly is actually very slow. And this is like a super chatty communication between the DOM and WebAssembly is actually very slow, and this is like a super chatty communication between the Python bits and the WebUI, and it's actually slower in WebAssembly
Starting point is 00:24:30 until they can improve that cross WebAssembly DOM story. But it's primed for a good WebAssembly story, isn't it? It kind of feels like that's what it would be. But I guess I completely understand, right, because you'd go from Python to JavaScript, and then JavaScript to WebAssembly.
Starting point is 00:24:46 There's this whole interpreter on top of an interpreter on top of an interpreter thing that's going on. Yeah, yeah. And so if you have like a fire and forget, like something happens at WebAssembly, it's fast and good. But if you're like doing super quick back and forth between the DOM, apparently that's slow. Alright, so last thing. Time for a joke. Now, I told you
Starting point is 00:25:01 my lol commits was legit. I got another lol for you, lolcode. So lolcode is this official language specification. Last time I checked, it was on level 2. 1.2 was, no, no, hold on, I think it's at a different level now. Anyway, it's an official language based on lolcode. So this meme is passing a little bit in time, but there's the lolc cats with all the weird,
Starting point is 00:25:26 like cat speak on the images with like a funny cat, like high world with HAI world, you know, and like weird stuff. So this is like a programming language derived out of that. And it's a joke, but you can literally run it. Like there's a commands for getting started.
Starting point is 00:25:41 You get clone the repository, you see, make it, and then you're ready to lolat it, locode it. So I just want to call out a few things of the language features here because they're pretty incredible. Yeah, we're on the spec 1.2 right now for the language. So if you have like a comment, you'd have something like I has a var.
Starting point is 00:25:58 And then if you want to have a comment, you say BTW, by the way, var is null and untyped, things like that. It has some really funny error handling. So you have try, catch, but you don't say try and catch. You do the good part, and then the good part is awesome, thanks. And then the catch part or the accept part is no, oh no. Let's see, the ifs statements are pretty awesome like oh really yeah really and then else if is maybe and then the else is no way but the best i think really has got to be the switch statement so maybe a little not safe work but it's just letters so i'll just say them out so
Starting point is 00:26:40 if you want to like do a switch statement where maybe you have R or Y or G or B as colors, like as strings, you could say color WTF question mark. Oh, my God. Quote R. And then you have your block. Oh, my God. Quote Y. You have your block of code. And then the default case is OMG WTF.
Starting point is 00:26:59 That's the default in the switch. So this is just such a crazy language. But the thing that's even more crazy is somebody built an interpreter or a compiler for it i think what's even crazier is that there's a spec here and and as we're looking at this spec we're literally like scrolling and scrolling and scrolling like there is 507 lines of specification here that defines how this language even works i think i gotta try this out man like this is crazy it's a joke but you could it's probably turning complete as well yeah apparently this got started in 2007 and it's the latest update to the spec is from 2014 so it's super cool that this has been maintained and updated since then so how about that a practical
Starting point is 00:27:36 joke for you all yeah is there just in time compiler for that oh yeah i don't know i actually don't even know what the performance like looks for for low code but yeah it's probably pretty funny are you gonna port uh talk python.fm to looks for a low code, but it's probably pretty funny. Are you going to port talkpython.fm to that, the low code? Yeah, I'm thinking about rewriting the websites, and this is a real strong contender right now. Nice, nice. Because I just be laughing every day.
Starting point is 00:27:54 I'm like, it's a bug, but it's hilarious. Look at it. All right, guys. Well, thank you so much for being on the show. It's been really good to have you both here. It's been great. Thank you. Yeah, thank you, man.
Starting point is 00:28:01 This has been awesome. Yeah, bye, guys. Thank you for listening to Python Bytes. Follow the show on Twitter via at Python Bytes. That's Python Bytes as in B-Y-T-E-S. And get the full show notes at pythonbytes.fm. If you have a news item you want featured, just visit pythonbytes.fm and send it our way. We're always on the lookout for sharing something cool. On behalf of myself and Brian Ocken, this is Michael Kennedy. Thank you for listening and sharing this podcast with your friends and colleagues.

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