YouSaid · the spoken record
Guido van Rossum
- lines on the record
- 185
- first
- 2022-11-26
- most recent
- 2022-11-26
- sittings or episodes
- 1
- sources
- podcast
Every line below is reproduced as it was said and linked to the record it came from. Nothing here is summarised or generated. Directory · Search · Corrections
“That depends on the language in Python, it will not. In sort of modern compilers are usually pretty good at catching that”
2022-11-26 · Lex Fridman Podcast · #341 – Guido van Rossum: Python and the Future of Programming · IDENTIFIED FROM THE TRANSCRIPT · source
“I don't know what your definition of bug is arguably mistyping a word and then correcting it immediately is not a bug on the other hand you already Do sort of lose time. And every once in a while there's sort of a typo that you don't get in that process. And now you've typed like 10 lines of code. And somewhere in the middle of it, you don't know where yet is a typo or maybe a thinko where you forgot that you had to initialize a variable or something.”
2022-11-26 · Lex Fridman Podcast · #341 – Guido van Rossum: Python and the Future of Programming · IDENTIFIED FROM THE TRANSCRIPT · source
“Watch anyone give you a little coding demonstration, they'll have to produce like four lines of code. Now see how many times they use the backspace key. Because they made a mistake. And some people, especially when someone else is looking Will backspace over 20, 30, 40 characters to fix a typo earlier in a line. You're slightly more experienced, of course, you use your arrow buttons to go or your mouse where the mouse is usually slower than the arrows. But a lot of people, when they type a 20 character word, which is not unusual, And they realized they made a mistake at the start of the word. They backspace over the whole thing and then retype it. And sometimes it takes three, four times to get it right.”
2022-11-26 · Lex Fridman Podcast · #341 – Guido van Rossum: Python and the Future of Programming · IDENTIFIED FROM THE TRANSCRIPT · source
“Well, the development process is extremely iterative. Typically, you don't make a plan for what software you're going to release a year from now. And work out all the details because actually all the details themselves consist Sort of compose a program And Being a program, all your plans will have bugs in them too. An inaccuracies. But what you actually do is. Do a bunch of typing, and I'm actually really in a really bad typist. Just I've never learned to type with 10 fingers. How many do you need? Well, I use all 10 of them, but not very well. But I never took a type in class and I never sort of corrected that. So the first time I, I seriously learned, I had to learn the layout of a CRERDI keyboard, was actually in college in my first programming classes where we used punch cards. And so with my two fingers, I sort of pecked out my code.”
2022-11-26 · Lex Fridman Podcast · #341 – Guido van Rossum: Python and the Future of Programming · IDENTIFIED FROM THE TRANSCRIPT · source
“And I imagine this is marketing literature for someone who claims to have a golden bullet or a silver bullet that makes all that investment in fixing bugs go away. Not going to, that's not going to happen.”
2022-11-26 · Lex Fridman Podcast · #341 – Guido van Rossum: Python and the Future of Programming · IDENTIFIED FROM THE TRANSCRIPT · source
“That depends on whether you've ever read about research that's been done in this area before. The last time I saw some research like that, it was probably in the 90s and the research might have been done in the 80s. But the conclusion was across a wide range of different software, different languages, different companies, different development styles. The number of bugs is always, I think it's in the order of about one bug per thousand lines in sort of mature software that is considered. As good as it gets.”
2022-11-26 · Lex Fridman Podcast · #341 – Guido van Rossum: Python and the Future of Programming · IDENTIFIED FROM THE TRANSCRIPT · source
“In the end, the user who sort of is told, well, you got to reboot your PC. Is part of that system and a slightly less drastic thing is reload the page, which we all know how to do without thinking about it when something weird happens. You try to reload a few times before you say, oh, there's something really weird.”
2022-11-26 · Lex Fridman Podcast · #341 – Guido van Rossum: Python and the Future of Programming · IDENTIFIED FROM THE TRANSCRIPT · source
“You'd be surprised how much resilience modern code has. I mean, if you look at the number of bugs per line of code Even in very well tested Code that in practice works just fine. They are actually lots of things that don't work fine. And there are error correcting or self-correcting mechanisms at many levels.”
2022-11-26 · Lex Fridman Podcast · #341 – Guido van Rossum: Python and the Future of Programming · IDENTIFIED FROM THE TRANSCRIPT · source
“Just like biological systems, right? I mean, the sort of the inner workings of DNA. Have been stable for, well, I don't know how long it was like 300 million years, half a billion years. There are all sorts of weird quirks there that don't make a lot of sense if you were to design a system like self-replicating molecules from scratch.”
2022-11-26 · Lex Fridman Podcast · #341 – Guido van Rossum: Python and the Future of Programming · IDENTIFIED FROM THE TRANSCRIPT · source
“Clever way to make parsing of things that contain both variable and fixed parts very easy in a very simple script processor. It also helps, even then, it also helps the human author and the human reader of the Script to quickly see oh twenty lines down in the script I see a reference to XYZ Oh it has a dollar in front of it so now we know that XYZ must be one of the parameters of the script”
2022-11-26 · Lex Fridman Podcast · #341 – Guido van Rossum: Python and the Future of Programming · IDENTIFIED FROM THE TRANSCRIPT · source
“Here is an X that is not actually the name of a file which you just pass through to the program you're running. Here is an X that is the name of a variable. And when you're writing a script processor, you try to keep it as simple as possible. Because certainly in the 50s and 60s, the thing that interprets the script was itself had to be a very small program because it had to fit in a very small part of memory. And so saying, oh, just look at each character. And if you see a dollar sign, you jump to another section of the code and then you gobble up characters, say until the next space or something, and you say that's the variable name. And so it was sort of invented as.”
2022-11-26 · Lex Fridman Podcast · #341 – Guido van Rossum: Python and the Future of Programming · IDENTIFIED FROM THE TRANSCRIPT · source
“But now you have a problem because you can't just say the parameters are x, y, and z. And so now we call, say let's say x is the input file and y is the output file and let's forget about z for now. I have my program and I write program x y. Well, that already has a meaning because that presumably means X itself is the file. A file name, it's not a variable name. And so the inventors of things like the unique shell and I'm sure job command language at IBM before that. Had to use something that made it clear to the script processor.”
2022-11-26 · Lex Fridman Podcast · #341 – Guido van Rossum: Python and the Future of Programming · IDENTIFIED FROM THE TRANSCRIPT · source
“And so a script is just a few lines of text where each line of text is a command that is read by a very primitive command processor that then sort of takes the first word on the line as the name of a program and passes all the rest of the line as text into the program for the program to figure out what to do with as arguments. And so by the time scripting was slightly more mature than the very first script, there was a convention that just like the first word on the line is the name of the program, the following words could be names of files. Input dot text output.html things like that. Next thing that happens is oh, it would actually be really nice if we could have variables and especially parameters for scripts. Parameters are usually what starts this process”
2022-11-26 · Lex Fridman Podcast · #341 – Guido van Rossum: Python and the Future of Programming · IDENTIFIED FROM THE TRANSCRIPT · source
“That is a historical thing. There is a whole lineage of programming languages, PHP, Is one Pearl was one on the unique shell is one of the oldest or all the different shells. The dollar was invented for that purpose because the very earliest shells had a notion of scripting, but they did not have a notion of parameterizing the scripting.”
2022-11-26 · Lex Fridman Podcast · #341 – Guido van Rossum: Python and the Future of Programming · IDENTIFIED FROM THE TRANSCRIPT · source
“Of utter details that they have to pay attention to, so I think they'll. They'll still get the message about paying attention to detail.”
2022-11-26 · Lex Fridman Podcast · #341 – Guido van Rossum: Python and the Future of Programming · IDENTIFIED FROM THE TRANSCRIPT · source
“Learning to program from scratch, you have to cover algorithms, you have to cover data structures, you have to cover syntax, you have to cover variables, loops, functions, recursion, classes. Expressions, operators, there are so many concepts. If you sort of Can spend a little less time Having to worry about the syntax. The classic example was often The compiler complains every time I put a semicolon in the wrong place or I forget to put a semicolon. Python doesn't have semicolons in that sense. So you can't forget them. And you are also not sort of misled into putting them where they don't belong because you don't learn about them in the first place.”
2022-11-26 · Lex Fridman Podcast · #341 – Guido van Rossum: Python and the Future of Programming · IDENTIFIED FROM THE TRANSCRIPT · source
“Well, it frees up a pair of matched brackets of which there are never enough in the world for other purposes really makes the language slightly Sort of easier to grasp for people who don't already know another programming language. Because one of the things, and I mostly got this from my mentors who taught me programming language design in the earlier 80s, when you're teaching programming, For the total newbie who has Coded before not in any other language, a whole bunch of concepts in programming are very alien or Sort of new and maybe very interesting, but also distracting and confusing. And there are many different things you have to learn. You have to sort of In a typical 13-week programming course, you have to, if it's really...”
2022-11-26 · Lex Fridman Podcast · #341 – Guido van Rossum: Python and the Future of Programming · IDENTIFIED FROM THE TRANSCRIPT · source
“Because context is not the whole story. History, in a sense, provides more context. So for Python, There is no chance that we can switch. Python is using curly braces for something else, dictionaries mostly. Would get in trouble if we wanted to switch just like you couldn't redefine C to use indentation even if you agree that indentation sort of in a greenfield environment would be better. You can't change that kind of thing in a language. It's hard enough to reach agreement over much more minor details. Maybe, I mean, in the past in Python, we did have a big debate about taps for such spaces and four spaces versus fewer or more. And we sort of came up with a recommended standard and sort of options for people who want to be different.”
2022-11-26 · Lex Fridman Podcast · #341 – Guido van Rossum: Python and the Future of Programming · IDENTIFIED FROM THE TRANSCRIPT · source
“For a long time, I was actually convinced that the indentation was just better Without context, I would still claim that indentation is better. It reduces clutter. However, as I started to say earlier, context is almost everything. And in the context of coding. Most programmers are familiar with multiple languages, even if they're only good at one or two. And apart from Python and maybe Fortran, I don't know how that's written these days anymore, but all the other languages, Java, Rust, C++, JavaScript, TypeScript, Perl are all using curly braces to sort of indicate blocks. And so Python is the odd one out.”
2022-11-26 · Lex Fridman Podcast · #341 – Guido van Rossum: Python and the Future of Programming · IDENTIFIED FROM THE TRANSCRIPT · source
“Suggest the proper indentation for you, like in C, you type a few words and then you type a curly brace, which there is their notion of sort of begin an indented block. Then you hit return and then it automatically indents four or eight spaces depending on your style preferences or how your editor is configured.”
2022-11-26 · Lex Fridman Podcast · #341 – Guido van Rossum: Python and the Future of Programming · IDENTIFIED FROM THE TRANSCRIPT · source
“Don't have to be four spaces, so you can code Python with two spaces per block or six spaces or 12 if you really want to go wild. Sort of everything that belongs to the same block needs to be indented the same way. In practice in most other languages, people recommend doing that anyway. If you look at Sea or rust or Cold's languages Java don't have a requirement of indentation, but except in extreme cases, they're just as anal about having their code properly indented.”
2022-11-26 · Lex Fridman Podcast · #341 – Guido van Rossum: Python and the Future of Programming · IDENTIFIED FROM THE TRANSCRIPT · source
“We came up with sort of force basis as a compromise. I mean, there are groups, there are large groups of people who code with two spaces per indent level. For example, the Google style guide, all the Google Python code, and I think also all the Google C++ code is indented with only two spaces per block. If you're not used to that, it's harder to, at a glance. Understand the code because the sort of the high level structure is determined by the indentation. On the other hand, there are other programming languages where the indentation is eight spaces or a whole tap stop in sort of classic Unix. And to me, that looks weird because you sort of have to three indent levels, you've got no room left”
2022-11-26 · Lex Fridman Podcast · #341 – Guido van Rossum: Python and the Future of Programming · IDENTIFIED FROM THE TRANSCRIPT · source
“Because indentation, sort of taking a block of text and then having inside that block of text a smaller block of text that is indented further as sort of a group. It's like you have a bulleted list. In a complex business document, an inside some of the bullets are other bulleted lists, you will indent those too. If each bulleted list is indented several inches, then at two levels deep there's no space left on the page to put any of the words of the text. So you can't indent too far. On the other hand, if you don't indent at all, you can't tell whether something is a top level bullet or a second level bullet or a third level bullet. So you have to have some compromise and based on ancient conventions and the sort of the typical width of a computer screen in the 80s. And all sorts of things sort of.”
2022-11-26 · Lex Fridman Podcast · #341 – Guido van Rossum: Python and the Future of Programming · IDENTIFIED FROM THE TRANSCRIPT · source
“On the other hand, what the typical cookbook does if the paper is not too expensive, each recipe starts on its own page. Maybe there's a picture next to it. The list of ingredients comes first. There's a standard notation. There's shortcuts so that you don't have to sort of write two sentences on how you have to cut the onion because there are only three ways that people ever cut onions in a kitchen. Small, medium, and in slices or something like that. None of my examples make any sense to real cooks, of course, but.”
2022-11-26 · Lex Fridman Podcast · #341 – Guido van Rossum: Python and the Future of Programming · IDENTIFIED FROM THE TRANSCRIPT · source
“Spaces are important for readability of any kind of text. If you take a cookbook recipe and you remove all the sort of The bullets and other markup, and you just crunch all the text together. Maybe you leave the spaces between the words, but that's all you leave. When you're in the kitchen trying to figure out oh, what are the ingredients and what are the steps and where does this step end and the next step begin, you're going to have a hard time if it's just one solid block of text”
2022-11-26 · Lex Fridman Podcast · #341 – Guido van Rossum: Python and the Future of Programming · IDENTIFIED FROM THE TRANSCRIPT · source
“But you're in a group of people improving that recipe. Or the mad scientist is improving the recipe that he created a year ago and making it better. Or adding something. He decides that he wants a, I don't know, he wants some decoration on his pie or icing or.”
2022-11-26 · Lex Fridman Podcast · #341 – Guido van Rossum: Python and the Future of Programming · IDENTIFIED FROM THE TRANSCRIPT · source
“It could be anything Yeah, it could be anything from a typo to a wrong choice of algorithm to building something that does what you tell it to do, but that's not useful.”
2022-11-26 · Lex Fridman Podcast · #341 – Guido van Rossum: Python and the Future of Programming · IDENTIFIED FROM THE TRANSCRIPT · source
“When you're writing a computer program, you have two audiences at once. It needs to Tell the computer what to do But it also is useful if that program is readable by other programmers because computer software, unlike the typical recipe for a cherry pie, is so complex. That you don't get all of it right at once. You end up with the activity of debugging and you end up with the activity of, so debugging is. Trying to figure out why your code doesn't run the way you thought it should run.”
2022-11-26 · Lex Fridman Podcast · #341 – Guido van Rossum: Python and the Future of Programming · IDENTIFIED FROM THE TRANSCRIPT · source
“Software is developed by teams of people. Even the mad scientist sitting alone in his lab can type fast enough to produce enough code so that by the time he's done with his coding, he still remembers what the first few lines he wrote mean. So even the mad scientist coding alone in his lab would be sort of wise to adopt conventions on how to format the instructions that he gives to the computer so that the thing is there is a difference between a cookbook recipe and a computer program. The cookbook recipe, the author of the cookbook writes it once and then it's printed in 100,000 copies and then lots of people in their kitchens try to recreate that recipe. Particular pie or dish from the recipe. And so there the The goal of the cookbook author is to make it clear to the human reader of the recipe, the human amateur chef in most cases.”
2022-11-26 · Lex Fridman Podcast · #341 – Guido van Rossum: Python and the Future of Programming · IDENTIFIED FROM THE TRANSCRIPT · source
“That's a thing between programmers. Because on the one hand, we always explain the concept of programming language as computers need instructions, and computers are very dumb and they need very precise instructions because they don't have much context. In fact, they have lots of context, but their context is very different. But what we've seen emerge during the development of software starting in probably in the late 40s. Is that software is a very social activity. A software developer is not a mad scientist who sits alone in his lab writing brilliant code.”
2022-11-26 · Lex Fridman Podcast · #341 – Guido van Rossum: Python and the Future of Programming · IDENTIFIED FROM THE TRANSCRIPT · source
“Well, for lawyers, ambiguity certainly is a feature. For plenty of other cases, the ambiguity is not much of a feature, but we work around it, of course. What's more important is context.”
2022-11-26 · Lex Fridman Podcast · #341 – Guido van Rossum: Python and the Future of Programming · IDENTIFIED FROM THE TRANSCRIPT · source
“Similarly, we're not going into the ones and zeros or machine language. I would say a programming language is a list of instructions like a cookbook recipe. That sort of tells you how to do a certain thing, like make a sandwich. Well, acquire a loaf of bread, cut it in slices, take two slices, put mustard on one, put the jelly on the other or something, then add the meat, then add the cheese. I've heard that science teachers can actually do great stuff with recipes like that and trying to interpret their students' instructions incorrectly until the students are completely unambiguous about it.”
2022-11-26 · Lex Fridman Podcast · #341 – Guido van Rossum: Python and the Future of Programming · IDENTIFIED FROM THE TRANSCRIPT · source
“Oh, yeah, we don't talk about these really low levels because those just confuse people. I mean, when we're talking about human language, we're not usually talking about vocal tracts and how you position your tongue. I was talking yesterday about how when you have a Chinese person and they speak English, this is a bit of a stereotype. They often don't know, or they can't seem to make the difference well between an L and an R. And I have a theory about that, and I've never checked this with linguists. That it probably has to do with the fact that in Chinese there is not really a difference. And it could be that there are regional variations in how native Chinese speakers pronounce that one sound that sounds to L to some like L to some of them like R to others”
2022-11-26 · Lex Fridman Podcast · #341 – Guido van Rossum: Python and the Future of Programming · IDENTIFIED FROM THE TRANSCRIPT · source
“I'm sure he has a cell phone, so he's probably very suspicious about what goes on in that cell phone, but he must have heard that inside a cell phone is a tiny computer. And a programming language is computer code that tells the computer what to do.”
2022-11-26 · Lex Fridman Podcast · #341 – Guido van Rossum: Python and the Future of Programming · IDENTIFIED FROM THE TRANSCRIPT · source
“Python is the last Python implementation standing, also the first one that was ever created. The original Python implementation that I started over 30 years.”
2022-11-26 · Lex Fridman Podcast · #341 – Guido van Rossum: Python and the Future of Programming · IDENTIFIED FROM THE TRANSCRIPT · source