Full podcast episode: ruclips.net/video/-DVyjdw4t9I/видео.html Lex Fridman podcast channel: ruclips.net/user/lexfridman Guest bio: Guido van Rossum is the creator of Python programming language.
Basically I think you're going over scope of each block here by talking about how each block is spaced? Python has been more powerful than I gave it credit for. I've been using it as my shell script language as well with some old school shell and sed thrown in. It's a very useful language.
I have to say I had an amazing experience learning programming at first through python and then learning C for a more in depth understanding. it genuinely didn't feel that difficult to learn this way. he created something pretty amazing and really hit the mark in that aspect.
Funny you say that! I had a harder time switching from C++ to Py😂😂 The reason was because python is so high level that there almost always exist functions to do your job for you. To switch from a very low level structure with great access to memory to complete freedom, not having to define data types, everything is automatic. It felt like I was cheating my way through.
@@vedkorla300 I started out on BASIC as a hobbyist. I started my professional career as a games coder. I worked originally in 100% assembly. Only went to C++ with the PS1. It was actually a leap to get my head around - going more high level. But then when I learned Python it seemed a piece of cake and I picked it up fast and enjoy coding in it (apart from the slow speed of execution course so I still use C++). Perhaps I already went through the transition of low to high when I learned C++ that then going to Python was just a continuation of that. Also Python is a lot like BASIC in many ways whereas C++ is complex with classes, libs etc.
It's encouraging to hear your comment. I did terribly in college with C++, then went the networking route. Now I'm getting interested in programming, a noob far from knowing even a basic level of programming. I'm hopeful that Python will help me grow and allow me to understand C++ at some point.
@@vedkorla300I think for someone like me who had 0 programming or computet science knowledge, python was a great first language to learn in order to learn the very basics of what computer code is. I've been focusing more on c# recently, and now I'm finding it difficult at times to write what I feel is solid code in python. I'm still very much trying to get a grip on all the various features that c# has to offer, but I do feel there is a genuine benefit to the extra features of c# that python doesn't have.
After "retiring" from being a software engineer since 1980, I was pleasantly surprised on how Python picked the best features from other languages that I used in the past. I just picked up a copy of "Learning Python" and after plowing through the first half of the book I started using Python with Matplotlib. (..and then later on with numpy and tkinter, threads and multiprocessing...)
Another reason that indentation is good (besides better readability, and less physical typing) is that; if there are 3 or more levels of indentation, it is time to consider breaking the code block into a function of its own. This makes the code more readable, and easier to maintain.
# A playful Python function to remember the usefulness of learning Python def remember_the_benefits_of_learning_python(): """ A simple function to encapsulate the sentiment of gratitude and the anticipation of the usefulness of learning Python. """ gratitude = "Thanks!" current_status = "Learning Python now" memory_commitment = "will always remember this" future_confidence = "It for sure will help me :)" # Printing out the sentiments print(gratitude) print(f"{current_status} and {memory_commitment}.") print(future_confidence) # Let's call the function to express our Python learning journey! remember_the_benefits_of_learning_python()
I don't think I've ever listened to a podcast with more interesting guests and topics as Lex is able to present. This video might just be about Python, but if you are even just a little bit interested in science, engineering, philosophy, intelligence, technology, or history--please take a deep dive into his channel. I promise you will find something that is highly intriguing.
I don’t know anyone else doing interviews like this, of such depth and insight with such important figures while still being entertaining. Love your work Lex.
I'm a programmer with 35 years of experiece, I've got so far as to having to maintain RPG code (which is THE nightmare of indentation having semantic value). I've used all the languages mentioned in the video, and several others like AWK, COBOL, Logo, Lisp, Prolog, Smalltalk, Icon/Unicon and some others I've forgotten. As a software enginner my main insterest was to compare analysis, design and programming paradigms from the stand point of how well they suit to express different kind of ideas, and the outcome as a communication tool between peers. In the '90s I coordinated a Logo public worshop with 30k attendants over 4 years, and driven by Seymour Pappert's notion of sintonicity and his idea of the computer screen as a reflection of the way we see and think of our world as a genetic epistemplugy tool, nowadays I have a inference engine with its own proprietary programming language devised to be used and understood by companie's managers to implement businesses policies without the mediation of programmers and as a communication tool on how they understand their bussiness and their own way to think about them, so I totally feel and agree 100% with Mr. Van Rossum goals and criteria... however, providing semantic value to indentation doesn't seem to me the best way to achieve the goal (moreover when you may implement indentation policies at an IDE level, without affecting the program outcome), and on some cases it may even become the source of problems. It reminds me of COBOL idea of using periods to finish blocks just because we finish sentences with a period, then you erased a period by accident, the program behavior changed for bad and you had to spend hours finding the problem. The sole idea of the same happening because of an untintended extra or missing space gives me the creeps. But then, I've used indentation in many other ways: to align complex logical expressions with subexpressions (and escaping the end of the line brings a new problem as the price for solving another), to be able to tell appart different aspects addresed in the same block of code (e.g critical mission code from coding servicing non functional requirements), ot single use of auxiliary functions from main or repeatedly used ones, and so forth. For as long that the "creative" use of indentation gets docummented, it is a valuable communication tool thay may (and should) be allowed as such, even more when people already got used to having this tool. This isn't the same than imposing the use of a colon, or strict typing, for it's not about effort, but about the chances to improve communication for humans within the code, in ways not not foreseen when the language was devised. For me, it's an over required artificial limitation that really annoys me, for which there's no way to toggle it off (even if just for a code section in which a different indentation criteria would come handy).
Guido - Helped build a programming language utilized by millions around the world, actually contributes to society Shapiro - Gets mad because liberals with crazy hair colors have some opinions To suggest these two are anywhere near comparable is laughable
Having a background in computer engineering, I always wondered about who built said programming languages. Thanks for showing another brilliant mind on the podcast, big fan!
Interesting point, makes me think how people in Russia & China recently have been able to make statements simply by holding up a blank piece of paper to signify their protest. The human mind is pretty amazing in its ability to express complex ideas even when language is restricted.
Ambiguity is a large portion of human misinterpretation, which leads to ignorance, misinformation, aggression, confusion etc... I think, our speech language, in an effort to find efficiency in a low bandwidth serial link... creates an environment for information to become corrupted on the other end... Humanity has suffered greatly because of it. I would prefer us to develop habits in speech language to sacrifice efficiency, for less data corruption on the other end... Or we will continue to cause much unnecessary suffering... I think we should look to programming languages for inspiration, to try to minimise the ambiguity..
@@jkjkjkkjkjk Without ambiguity there would be no double entendres, lyrics wouldn't have the same depth, and metaphors wouldn't exist. If you want an example of precise unambiguous use of language, just look at air traffic communication and military protocol. These are situations where accurate information is key, and there are strict rules as to how language should be used. I personally don't think ambiguity is the main cause of suffering in this world, I would attribute it more to the lack of empathy, and/or an inability to see how our own actions cause suffering, whether that be for others or ourselves.
@@AB-wf8ekYes, there would be less of those things you talk about... But at the gain of less suffering... Which i think is a worthy sacrifice .... And some things can be replaced... Metaphors for example can easily be substituted for similes..... Also, you bring up empathy... Let me ask, do u personally believe you have empathy? I think "the lack of empathy" is a smokescreen... People have empathy for many things.. except fot things they don't understand, or can't relate to.. this could be mediated by giving understanding... Understanding can be achieved through less corrupted data.. Understanding leads to better empathy outcomes...
@@Shellll ChatGPT is a machine learning construct, Python is a High-Level coding language. The Lower Level the coding language, the closer it is to machine code and thus the more "advanced" it is. High level languages are fundamentally less advanced, that's not an insult. You clearly have no idea what you're talking about and I actually have worked on some of the repositories on some OpenAI projects. Saying a language is not "Advanced" is not an insult, high level and low level languages all have their place. It's just a fundamental fact in computer science that lower level languages are more advanced since they have faster runtimes and are able to utilize more functionalities than higher-level languages. Please inform yourself before commenting on anything before your intelligence embarrasses you.
I'm glad they dwelled on the issue of indentation in Python, because in all my past programming I enjoyed arriving at my own style, crystal clear to me. Now, I am having to reprogram my brain to deal with all sorts of (to me) bizarre requirements of Python, indentation being one. I'm used to just concentrating on my IDEAS, and coding until the problem is solved mathematically. Now, I'm assaulted by a huge host of other requirements and understandings in order to get even the simplest program to work.
For me, having had to fix python scripts that have failed because the indentation got out of whack, it's the worst and unnecessary "feature". The first thing we learnt in programming free form languages is how to indent for readability. It should be a matter of style, not syntax. The compiler should not care if it's invented or not.
Having a continuous topic in an English conversation is impossible for some people. At the same time, people like to talk when there is nothing to say or think aloud. That ambiguity is like the space between conversations, where one can easily change the subject on a whim. Some like to withdraw into this space, like operating socially but avoiding people. It can realy ruin a fruitful conversation or convey disrespect sometimes, though. When busy, it is important to stay shallow and focused.
By the way, as a chinese speaker, the difference in pronunciation of 'L' sounds and 'R' sounds in words are less than 1cm of tongue movement when it is pressed to the tip of the mouth. For 'L' sounds in Chinese, the tongue is pressed towards the front of the mouth, almost touching the backs of the front upper teeth, whilst 'R' sounds are made by the tongue rolled slight back towards the centre of the roof of the mouth.
On the last question, about whether learners will still pay attention to detail: *_All_* users, whether learners or veterans, benefit in exactly the same way from the reduced cognitive load of a more usable syntax. Effort is *_always_* freed up for the job at hand, not mentally parsing text, no matter how long you have practiced. A bad hammer handle will always be a bad hammer handle: we can only adapt to its idiosyncrasies. Guido actually comes from a design and typography background and so he has some instincts about the visual aspects that most tech types don't seem to exhibit, in my experience. Although he can't easily articulate the advantages of spaces vs. braces, no semicolons, and fewer abstract symbols, he is on to something and we should investigate what it is.
I started my career coding in C/C++/C# and now do primarily python. I have to say that the dynamic types and lack of interfaces and other useful OOP structures seems to result in a lot of lazy coding practices. Also I prefer brackets, it just seems cleaner to me and helps to keep track of scope.
@@ashmoe_bangs7986 Yup it's a great language. I just get tired of trying to explain to young whipper snappers why naming your variables properly, not repeating yourself, or building coherent abstractions is important. Not really language specific but Python lets programmers get away with a lot.
Python allows me to be as lazy, or strict, as I prefer. The advantage, of just being able to type out an idea, to get the ball rolling is priceless. Later, if the product starts increasing in size, good programming practices can be introduced on revisions. Python does provide all the tools of OOP. So the sky is the limit. You can even make the mistake of using Data Object Models, instead of Dictionaries if you want to. So conventions, and protocols are really left up to the programmer, or team of programmers, and not enforced by the language. With Python, just like PHP, don't go walking around carrying a fully loaded M16 with the safety off. You might end up missing a few toes.
@@ashmoe_bangs7986For a beginning coder, is Mac preferable over Microsoft systems. Basic question I know, but I’m buying one or the other this week to begin my journey. So, any tips would be appreciated. Thanks
I understand enforcing indentation for readability in python. Coming from a Matlab background, I hate that loops, conditionals …etc aren’t formally closed with an end statement. The indentation and no close designs, means that having the wrong indentation can cause invisible bugs to happen. And in large projects, it’s a nightmare to debug those. I know it’s easier to not having to close loops but I think indentation should be for readability not accuracy, especially if it’s a language meant to be beginner friendly.
2:25 actually he nailed it, although R in Chinese is a very peculiar sound (so is in english), in south China and Taiwan there's many people that pronounce L and R like L, when learning english they probably project that when seen written. Also many have trouble slapping the palate with the tongue.
Guido says at end semicolon not write at end of line in script, but its not restricted, example if write two command in one line "print(a); a=b" it allowed use between commands, but not at end.
I once quipped to a fellow IT consultant or contractor that "really, computer software is written by people, for other people, and the fact that computers execute a side-effect is incidental!" I still think that is true.
Lex you need keep bring people like Guido. These are people we need if we rely on AI only for learning our society may be in the brink of doom day of learning.
i've spent entire weeks devtoolin soundcloud, spotify and ytmusic sites and looking at george, it feels like it's really a sort of similar experience lmao
Chinese does distinguish /l/ and /r/ at least in word initial positions. It is Japanese speakers that characteristically have a harder time differentiating /l/ and /r/ as both sounds are mere allophones of the same phoneme in Japanese. Americans *are* familiar with /zh/ (e.g. the words "azure" and "beige"), although it does not appear as the initial sound of any word as far as I know. What Americans *do* find difficult about Russian pronunciation is the distinction between palatized and non-palatized consonants.
It's a regional thing for Chinese. I worked in China for 4 years teaching English and had Chinese colleagues who just couldn't tell the difference between the sounds even in their own language, while others could. One woman was from a certain province (can't remember the name now) and even the other Chinese staff were baffled that she pronounced Ls and Rs in exactly the same way. So I guess it came from her regional accent.
oriental 'l' vs 'r' might be similar to the Spanish (Latin) comparison of 'b' vs 'v', in some South American countries one cannot tell the difference, as an English speaker
Python is rough. Many cyber security tools are written in it and having to have every version installed just so I can attempt to successfully run the script in the version it was built on is cumbersome.
I really appreciate the founder of Python had readability in mind. That is key. If people can't understand what they're looking at, the programming language fails at what it's supposed to do. People designed software from the ground up. Everything about it was designed by people, so it's insane to me that we haven't made it easier to work with. Things get complicated in code and there is certainly a balance between simplicity and abstraction, but there is no excuse for std::cout
Lex did his best to derail the info Guido was trying to drop by going off on tangents to analyze the metaphors Guido was using to get his python related answers across to a broad audience instead of engaging with what he actually asked him. I sometimes think Lex does his best to appear intellectual/thoughtful about everything, forgetting where it is appropriate and that for the sake of good clear communication, can sometimes be a hindrance. We get it, you're thoughtful. Really messed up the clarity of the valuable information/explanations of Guido that could have been very valuable to some people.
Linting and prettifying solve most of people formatting problems. It’s not something people should be distracting themselves with for ego reasons, just get on the same page.
@@fistan5447 Actually you can search online for it. And just talk about the facts, don't judge others' backgrounds especially when you really know nothing about a person online.
If anyone know's how to contact Guido tell him there's a chapter in the book "The Mind and the Brain" that addresses the R and L problem with Asian non native English speakers.
For someone who is not a linguist but have had a chance to speak multiple languages then interact with linguists, sounds that are not familiar to the ear are very difficult speak. I can vaguely tell the difference and my tongue won't just go in weird posisions it's never being. Same logic applies to tongue twisters. If you try to say a certain order or words that the tongue would find physically possible, you will fail.
It's not just about brain training though. It's the actual tongue being able to reach the top of the mouth, to pronounce "R". I have had a folded tongue to it was impossible to control it to touch the top of the mouth.
people mix up V and W, and sometimes V and B also.. western speakers are tone deaf to all sorts of phonemes but have a monopoly on standardised mouth noises
I love watching Lex and Guido . It's so exciting to find all this about Python and making this easy to und erstand😢😮🎉😂❤😅😊🎉🎉🎉 Love, Ashirah , Wendy Lex , Fridman, your wifey ❤💕
I wouldnt wtite a long living app in python. Java obviously preferred for long living apps due to garbage collection, memory constraints, etc. python good for ad hoc use stuff i guess
It is still mind boggling to me how people every time compare a compiler based language with a interpreted language. 30 years ago we would call these a programming language vs a scripting language. Somehow that knowledge has been lost and these days it seems normal to compare apples with oranges.
@@gmcenroe Not joking. In a dev team environment with a large code base, an errant change to indentation may slip thru to prod. An indentation change can result in code that compiles successfully but exhibits incorrect behavior. Learned this lesson the hard way back when I was a greenhorn developer. Plus as a now well seasoned engineer/architect, I highly value code that reads fluently with semantics that make it easy to understand how the logic is put together. To that end, hard to beat braces for scoping control logic and semicolons to clearly indicate the end of a statement. Python, for lacking both, dooms itself to the minor leagues of programming languages. Lots will use it, I'm sure, but only the foolish will endeavor to uses it for BIG codebase projects
I can't speak for Chinese (Mandarin or Cantonese), but I've studied Japanese for about 4 years, so I feel like I can comment on Guido's theory with some level of familiarity, however I don't claim to be an expert on the topic. Japanese doesn't have an "R" or "L" sound, instead they have a sound that sort of fits in between the two. The hiragana characters らりるれろ and katakana ラリルレロ, although romanized to "ra, ri, ru, re, ro", are not actual western "R" sounds; nor are they "L" sounds. I wish I could cite a source for this, but what I've learned about language acquisition is that during the learning/acquiring process, your brain quite literally filters out sounds that aren't useful to it in understanding meaning. This is most apparent in your native language. So native Japanese speakers literally cannot hear the difference in western "R" and "L" sounds. One friend of mine who is a native Japanese speaker told me that the English words "Clutch" and "Crutch" sound identical to them. It's also interesting to me to be on the other side of this and learn Japanese pitch accent, which is a trait that does not exist in English - I find it very difficult to hear the differences in some words and expressions at first, and only after I intentionally listen for it, am I able to notice the differences. Cool stuff, if you're into that sort of thing lol
Indent and no ; is alright. What's nasty is that a comma at the end of line like a = 1, generates a tuple which screws up your code and is hard to find out.
Depends on how high you want to go- you can get a starter job with online courses but if you wanna become an AI lead at Tesla or Apple they're gonna wanna see at least a bachelor's if not a masters.
@@cgnomazoid I agree, so many times I think to myself wow I don’t need school I could just self learn better than some of these professors I’ve had. But at the end of the day you sometimes need someone to hold your hand to learn dense topics you might not be motivated enough to learn on your own. So of course the answer stands at what level you want to reach, how motivated you are and what interests you.
It depends. Self-taught programmers (supposedly) have better programming skills as they've had to learn and internalize everything the hard way. But formal education teaches you other things like teamwork, project management, common industry practices and so forth. At least where I live both are perfectly viable options, but it may depend on the company or where in the world they're located.
A degree isn’t necessary. Once you have a few years or experience under your belt, it becomes less and less relevant. Employers care about experience. But all things being equal, having a degree is better than not. You need to be a helluva self-taught programmer to compete.
@Sergei O'Sullivan It's much easier to be thought programming in courses than to tezch yourself. And on the market, that's an important proof you probably need. But you get a deaper understanding as self-taught. But you don't become a programmer from just a course. You need to do real programming for that. My advice it to get as much formal courses as possible. Then learn real programming at work. To become really good at it you must continue to educate yourself in the way a self-taught programmer does. But you get there faster by letting others teach you the basics first,
Delimiting with whitespace in python was a mistake, but its one that i can live with.......it has become a really great language, especially the latest versions.
It's interesting that he doesn't mention that it's simply less work to write blocks without curly braces, provided you are using significant indentation. It's effectively a reduction in the amount of boilerplate. As for ambiguity, it's one of the most absolutely blursed things I can think of.
The braces sugar can be distracting for me. I personally prefer Python's way, seems simple and elegant, pure It also reminds me a BASIC where I learned to code. There really is a big split on this though. But despite all the debate it gets - it's not that much of a big deal either way.
until you realize you forgot something in the middle of a 300 line block of code and then spend the next 6 hours making sure everything is indented correctly so your program doesn't corrupt the data store, absolutely horrific design decision and the main reason why I will never use Python for any serious project unless I absolutely have to.
Full podcast episode: ruclips.net/video/-DVyjdw4t9I/видео.html
Lex Fridman podcast channel: ruclips.net/user/lexfridman
Guest bio: Guido van Rossum is the creator of Python programming language.
Basically I think you're going over scope of each block here by talking about how each block is spaced? Python has been more powerful than I gave it credit for. I've been using it as my shell script language as well with some old school shell and sed thrown in. It's a very useful language.
I have to say I had an amazing experience learning programming at first through python and then learning C for a more in depth understanding. it genuinely didn't feel that difficult to learn this way. he created something pretty amazing and really hit the mark in that aspect.
Funny you say that! I had a harder time switching from C++ to Py😂😂
The reason was because python is so high level that there almost always exist functions to do your job for you. To switch from a very low level structure with great access to memory to complete freedom, not having to define data types, everything is automatic.
It felt like I was cheating my way through.
@@vedkorla300 I started out on BASIC as a hobbyist. I started my professional career as a games coder. I worked originally in 100% assembly. Only went to C++ with the PS1. It was actually a leap to get my head around - going more high level. But then when I learned Python it seemed a piece of cake and I picked it up fast and enjoy coding in it (apart from the slow speed of execution course so I still use C++). Perhaps I already went through the transition of low to high when I learned C++ that then going to Python was just a continuation of that. Also Python is a lot like BASIC in many ways whereas C++ is complex with classes, libs etc.
It's encouraging to hear your comment. I did terribly in college with C++, then went the networking route. Now I'm getting interested in programming, a noob far from knowing even a basic level of programming. I'm hopeful that Python will help me grow and allow me to understand C++ at some point.
@@vedkorla300I think for someone like me who had 0 programming or computet science knowledge, python was a great first language to learn in order to learn the very basics of what computer code is. I've been focusing more on c# recently, and now I'm finding it difficult at times to write what I feel is solid code in python. I'm still very much trying to get a grip on all the various features that c# has to offer, but I do feel there is a genuine benefit to the extra features of c# that python doesn't have.
After "retiring" from being a software engineer since 1980, I was pleasantly surprised on how Python picked the best features from other languages that I used in the past. I just picked up a copy of "Learning Python" and after plowing through the first half of the book I started using Python with Matplotlib. (..and then later on with numpy and tkinter, threads and multiprocessing...)
The user interfaces with Tkinter looks rather ugly and outdated, but there are bindings for other modern toolkits such as GTK and Qt.
Another reason that indentation is good (besides better readability, and less physical typing) is that; if there are 3 or more levels of indentation, it is time to consider breaking the code block into a function of its own. This makes the code more readable, and easier to maintain.
# A playful Python function to remember the usefulness of learning Python
def remember_the_benefits_of_learning_python():
"""
A simple function to encapsulate the sentiment of gratitude
and the anticipation of the usefulness of learning Python.
"""
gratitude = "Thanks!"
current_status = "Learning Python now"
memory_commitment = "will always remember this"
future_confidence = "It for sure will help me :)"
# Printing out the sentiments
print(gratitude)
print(f"{current_status} and {memory_commitment}.")
print(future_confidence)
# Let's call the function to express our Python learning journey!
remember_the_benefits_of_learning_python()
so besides better readability it makes your code more readable. alright
This was very amusing to listen to for a retired software engineer.
These two are bright people!
I don't think I've ever listened to a podcast with more interesting guests and topics as Lex is able to present. This video might just be about Python, but if you are even just a little bit interested in science, engineering, philosophy, intelligence, technology, or history--please take a deep dive into his channel. I promise you will find something that is highly intriguing.
I don’t know anyone else doing interviews like this, of such depth and insight with such important figures while still being entertaining. Love your work Lex.
I'm a programmer with 35 years of experiece, I've got so far as to having to maintain RPG code (which is THE nightmare of indentation having semantic value). I've used all the languages mentioned in the video, and several others like AWK, COBOL, Logo, Lisp, Prolog, Smalltalk, Icon/Unicon and some others I've forgotten. As a software enginner my main insterest was to compare analysis, design and programming paradigms from the stand point of how well they suit to express different kind of ideas, and the outcome as a communication tool between peers.
In the '90s I coordinated a Logo public worshop with 30k attendants over 4 years, and driven by Seymour Pappert's notion of sintonicity and his idea of the computer screen as a reflection of the way we see and think of our world as a genetic epistemplugy tool, nowadays I have a inference engine with its own proprietary programming language devised to be used and understood by companie's managers to implement businesses policies without the mediation of programmers and as a communication tool on how they understand their bussiness and their own way to think about them, so I totally feel and agree 100% with Mr. Van Rossum goals and criteria... however, providing semantic value to indentation doesn't seem to me the best way to achieve the goal (moreover when you may implement indentation policies at an IDE level, without affecting the program outcome), and on some cases it may even become the source of problems.
It reminds me of COBOL idea of using periods to finish blocks just because we finish sentences with a period, then you erased a period by accident, the program behavior changed for bad and you had to spend hours finding the problem. The sole idea of the same happening because of an untintended extra or missing space gives me the creeps.
But then, I've used indentation in many other ways: to align complex logical expressions with subexpressions (and escaping the end of the line brings a new problem as the price for solving another), to be able to tell appart different aspects addresed in the same block of code (e.g critical mission code from coding servicing non functional requirements), ot single use of auxiliary functions from main or repeatedly used ones, and so forth. For as long that the "creative" use of indentation gets docummented, it is a valuable communication tool thay may (and should) be allowed as such, even more when people already got used to having this tool. This isn't the same than imposing the use of a colon, or strict typing, for it's not about effort, but about the chances to improve communication for humans within the code, in ways not not foreseen when the language was devised.
For me, it's an over required artificial limitation that really annoys me, for which there's no way to toggle it off (even if just for a code section in which a different indentation criteria would come handy).
Exactly, 100% agree ;
I love these conversations from Lex. More Guido, less Ben Shapiro.
Difference between engineering and pseudo intelligence
nah, needs both to keep it interesting.
Guido - Helped build a programming language utilized by millions around the world, actually contributes to society
Shapiro - Gets mad because liberals with crazy hair colors have some opinions
To suggest these two are anywhere near comparable is laughable
rent free
Ben Shapiro speaks quickly though. Doesnt that make him smart?
I'm on a boat right now... but I'm actually programming in Python.
I love the way lex thinks and delivers his message and his way of understanding and making his talks understandable. Very informative and interesting.
As a Python dev, this is really amazing to listen to.
“I’m going to please the guy who knows how to fish”. That’s people like me
Having a background in computer engineering, I always wondered about who built said programming languages. Thanks for showing another brilliant mind on the podcast, big fan!
Ambiguity is the feature which allows compressed data transmission over a low-bandwidth serial link, i.e. human speech
Interesting point, makes me think how people in Russia & China recently have been able to make statements simply by holding up a blank piece of paper to signify their protest. The human mind is pretty amazing in its ability to express complex ideas even when language is restricted.
Ambiguity is a large portion of human misinterpretation, which leads to ignorance, misinformation, aggression, confusion etc... I think, our speech language, in an effort to find efficiency in a low bandwidth serial link... creates an environment for information to become corrupted on the other end... Humanity has suffered greatly because of it. I would prefer us to develop habits in speech language to sacrifice efficiency, for less data corruption on the other end... Or we will continue to cause much unnecessary suffering... I think we should look to programming languages for inspiration, to try to minimise the ambiguity..
@@jkjkjkkjkjk Without ambiguity there would be no double entendres, lyrics wouldn't have the same depth, and metaphors wouldn't exist.
If you want an example of precise unambiguous use of language, just look at air traffic communication and military protocol. These are situations where accurate information is key, and there are strict rules as to how language should be used.
I personally don't think ambiguity is the main cause of suffering in this world, I would attribute it more to the lack of empathy, and/or an inability to see how our own actions cause suffering, whether that be for others or ourselves.
@@AB-wf8ekYes, there would be less of those things you talk about... But at the gain of less suffering... Which i think is a worthy sacrifice .... And some things can be replaced... Metaphors for example can easily be substituted for similes..... Also, you bring up empathy... Let me ask, do u personally believe you have empathy?
I think "the lack of empathy" is a smokescreen... People have empathy for many things.. except fot things they don't understand, or can't relate to.. this could be mediated by giving understanding... Understanding can be achieved through less corrupted data.. Understanding leads to better empathy outcomes...
@@AB-wf8ek I'm pretty sure plenty of people are aware of the damage or harm they do, they just don't care about anyone but themselves
This man right here invented the most beginner friendly and advanced programming languages,it's an insane opportunity to hear him talk
definitely beginner friendly, but I wouldn't say it's advanced
@@PickAPocky ok
@@PickAPockygo make chatgpt then if its not "advanced"
@@Shellll ChatGPT is a machine learning construct, Python is a High-Level coding language. The Lower Level the coding language, the closer it is to machine code and thus the more "advanced" it is. High level languages are fundamentally less advanced, that's not an insult. You clearly have no idea what you're talking about and I actually have worked on some of the repositories on some OpenAI projects.
Saying a language is not "Advanced" is not an insult, high level and low level languages all have their place. It's just a fundamental fact in computer science that lower level languages are more advanced since they have faster runtimes and are able to utilize more functionalities than higher-level languages.
Please inform yourself before commenting on anything before your intelligence embarrasses you.
@PickAPocky so... you saying you cant make chatgpt? Means you must not be advanced I guess
there is interchangeability between L and R in Indian Languages as well
I love the open source concept. Where people can benefit and improve the coding.
Way to bring the king of Python down to junior / beginner interview.
I'm glad they dwelled on the issue of indentation in Python, because in all my past programming I enjoyed arriving at my own style, crystal clear to me. Now, I am having to reprogram my brain to deal with all sorts of (to me) bizarre requirements of Python, indentation being one. I'm used to just concentrating on my IDEAS, and coding until the problem is solved mathematically. Now, I'm assaulted by a huge host of other requirements and understandings in order to get even the simplest program to work.
Indentations are one of the best things about python. It looks CLEAN.
He made the right choice.
Yup, absolute heaven. That and dot notation were 2 MAJOR improvements for me coming from R.
For me, having had to fix python scripts that have failed because the indentation got out of whack, it's the worst and unnecessary "feature". The first thing we learnt in programming free form languages is how to indent for readability. It should be a matter of style, not syntax. The compiler should not care if it's invented or not.
whitespace as syntax is one of the worst design choices of all time. One of the reasons I refuse to use Python.
@@cottawalla agree, the worst
this clip talks about more than just computer science and python! Bravo!
Having a continuous topic in an English conversation is impossible for some people. At the same time, people like to talk when there is nothing to say or think aloud. That ambiguity is like the space between conversations, where one can easily change the subject on a whim. Some like to withdraw into this space, like operating socially but avoiding people. It can realy ruin a fruitful conversation or convey disrespect sometimes, though. When busy, it is important to stay shallow and focused.
By the way, as a chinese speaker, the difference in pronunciation of 'L' sounds and 'R' sounds in words are less than 1cm of tongue movement when it is pressed to the tip of the mouth. For 'L' sounds in Chinese, the tongue is pressed towards the front of the mouth, almost touching the backs of the front upper teeth, whilst 'R' sounds are made by the tongue rolled slight back towards the centre of the roof of the mouth.
On the last question, about whether learners will still pay attention to detail: *_All_* users, whether learners or veterans, benefit in exactly the same way from the reduced cognitive load of a more usable syntax. Effort is *_always_* freed up for the job at hand, not mentally parsing text, no matter how long you have practiced. A bad hammer handle will always be a bad hammer handle: we can only adapt to its idiosyncrasies. Guido actually comes from a design and typography background and so he has some instincts about the visual aspects that most tech types don't seem to exhibit, in my experience. Although he can't easily articulate the advantages of spaces vs. braces, no semicolons, and fewer abstract symbols, he is on to something and we should investigate what it is.
I started my career coding in C/C++/C# and now do primarily python. I have to say that the dynamic types and lack of interfaces and other useful OOP structures seems to result in a lot of lazy coding practices. Also I prefer brackets, it just seems cleaner to me and helps to keep track of scope.
I have to agree. If you are use to C/C++/Java…….. Python is not fun. But it’s powerful and dynamic.
@@ashmoe_bangs7986 Yup it's a great language. I just get tired of trying to explain to young whipper snappers why naming your variables properly, not repeating yourself, or building coherent abstractions is important. Not really language specific but Python lets programmers get away with a lot.
Python allows me to be as lazy, or strict, as I prefer. The advantage, of just being able to type out an idea, to get the ball rolling is priceless. Later, if the product starts increasing in size, good programming practices can be introduced on revisions. Python does provide all the tools of OOP. So the sky is the limit. You can even make the mistake of using Data Object Models, instead of Dictionaries if you want to. So conventions, and protocols are really left up to the programmer, or team of programmers, and not enforced by the language. With Python, just like PHP, don't go walking around carrying a fully loaded M16 with the safety off. You might end up missing a few toes.
the dynamic types actually deterred me from using Python more in the past, but once they added _typing_ in 3.5, I've been using it tons more
@@ashmoe_bangs7986For a beginning coder, is Mac preferable over Microsoft systems. Basic question I know, but I’m buying one or the other this week to begin my journey. So, any tips would be appreciated. Thanks
I understand enforcing indentation for readability in python. Coming from a Matlab background, I hate that loops, conditionals …etc aren’t formally closed with an end statement. The indentation and no close designs, means that having the wrong indentation can cause invisible bugs to happen. And in large projects, it’s a nightmare to debug those. I know it’s easier to not having to close loops but I think indentation should be for readability not accuracy, especially if it’s a language meant to be beginner friendly.
Feels like this interview was more about cooking rather than programming😂
2:25 actually he nailed it, although R in Chinese is a very peculiar sound (so is in english), in south China and Taiwan there's many people that pronounce L and R like L, when learning english they probably project that when seen written. Also many have trouble slapping the palate with the tongue.
Guido says at end semicolon not write at end of line in script, but its not restricted, example if write two command in one line "print(a); a=b" it allowed use between commands, but not at end.
Impressive to ask who the audience for the topic is, and impressive to know too that degree but also not surprising.
I love Python. It is so dynamic.
Complexities of ambiguity can be hugely advantageous to AGI
I once quipped to a fellow IT consultant or contractor that "really, computer software is written by people, for other people, and the fact that computers execute a side-effect is incidental!" I still think that is true.
Getting serious cravings to play with some python
Get it!
A more apt analogy of the difficulty Chinese people have with L and R is the distinction that English people have between the Russian letters ш and щ
Lex you need keep bring people like Guido. These are people we need if we rely on AI only for learning our society may be in the brink of doom day of learning.
You can see that deep inside, he still regrets choosing to use the semantically significant indentation.
lol exactly. Basically it's too late to change it now.
i've spent entire weeks devtoolin soundcloud, spotify and ytmusic sites and looking at george, it feels like it's really a sort of similar experience lmao
0:50 what was that analogy… imagine a boat lol.
Chinese does distinguish /l/ and /r/ at least in word initial positions. It is Japanese speakers that characteristically have a harder time differentiating /l/ and /r/ as both sounds are mere allophones of the same phoneme in Japanese.
Americans *are* familiar with /zh/ (e.g. the words "azure" and "beige"), although it does not appear as the initial sound of any word as far as I know. What Americans *do* find difficult about Russian pronunciation is the distinction between palatized and non-palatized consonants.
It's a regional thing for Chinese. I worked in China for 4 years teaching English and had Chinese colleagues who just couldn't tell the difference between the sounds even in their own language, while others could. One woman was from a certain province (can't remember the name now) and even the other Chinese staff were baffled that she pronounced Ls and Rs in exactly the same way. So I guess it came from her regional accent.
oriental 'l' vs 'r' might be similar to the Spanish (Latin) comparison of 'b' vs 'v', in some South American countries one cannot tell the difference, as an English speaker
Python is rough. Many cyber security tools are written in it and having to have every version installed just so I can attempt to successfully run the script in the version it was built on is cumbersome.
I really appreciate the founder of Python had readability in mind. That is key. If people can't understand what they're looking at, the programming language fails at what it's supposed to do. People designed software from the ground up. Everything about it was designed by people, so it's insane to me that we haven't made it easier to work with. Things get complicated in code and there is certainly a balance between simplicity and abstraction, but there is no excuse for
std::cout
You're just calling c functions
also the syntax for cout is disgusting
the question is different difination it's broke my head. I'm sorry but I try to do my best .
past is past I focus my present.
I built a complex desktop application for my business. Took 9 months. Couldn't run my business without it now. Visual Basic
I’m into fishing and interested in programming
Lex did his best to derail the info Guido was trying to drop by going off on tangents to analyze the metaphors Guido was using to get his python related answers across to a broad audience instead of engaging with what he actually asked him. I sometimes think Lex does his best to appear intellectual/thoughtful about everything, forgetting where it is appropriate and that for the sake of good clear communication, can sometimes be a hindrance. We get it, you're thoughtful. Really messed up the clarity of the valuable information/explanations of Guido that could have been very valuable to some people.
Exactly, the lower the level of the language the more explicit you have to be with your instructions. 👍
I get the indentation idea in theory in practice it's a nightmare because of the "indentation error" hell
Watching this after staring at lines 187 and 189 for 5 hours is depressing me.
D R AND L ARE THE SOUNDS THAT DIVIDE OUR TONGUES
Lex is a legend, the content you create is in a different league
Linting and prettifying solve most of people formatting problems. It’s not something people should be distracting themselves with for ego reasons, just get on the same page.
Scala 3 also uses indentation.
I suspect at least one, possibly both, of your audience members went fishing when the discussion turned to indention vs curly braces.
Lex is hilarious.... "Imagine a boat with three people..." 🤣
The legend himself
2:10 I do not know about chinese, but for japanese there is no L sound in their language so they approximate it by saying R.
Actually it's quite the opposite
@@chingchou9907 dude i took japanese for 2 years. There ARE "Ra Re Ri Ru Ro" syllables in hiragana/katakana. Literally nothing with L.
@@fistan5447 They write Ra Ri Ru Re Ro, but read La Li Lu Le Lo. You can take Ramen as an example, it's actually Lamen.
@@chingchou9907 Ok, now i know you never took any Japanese. So anyone else reading this, just ignore what he said. He doesnt know anything.
@@fistan5447 Actually you can search online for it. And just talk about the facts, don't judge others' backgrounds especially when you really know nothing about a person online.
I am definitely going to make a GvR sandwich: mustard and jelly.
If anyone know's how to contact Guido tell him there's a chapter in the book "The Mind and the Brain" that addresses the R and L problem with Asian non native English speakers.
For someone who is not a linguist but have had a chance to speak multiple languages then interact with linguists, sounds that are not familiar to the ear are very difficult speak. I can vaguely tell the difference and my tongue won't just go in weird posisions it's never being.
Same logic applies to tongue twisters. If you try to say a certain order or words that the tongue would find physically possible, you will fail.
The thing about Ls and Rs seems to be correct. You can however train your brain to distinguish them and then learn to reproduce them
It's not just about brain training though. It's the actual tongue being able to reach the top of the mouth, to pronounce "R".
I have had a folded tongue to it was impossible to control it to touch the top of the mouth.
people mix up V and W, and sometimes V and B also..
western speakers are tone deaf to all sorts of phonemes but have a monopoly on standardised mouth noises
@@dickheadrecs Didn't quite understand the "monopoly" part. 😁
@@anujmchitale not saying that’s a good thing
@@dickheadrecs Oh it was sarcasm. Ok.
L and R indifferenciation is Japanese more than Mandarin.
I love watching Lex and Guido . It's so exciting to find all this about Python and making this easy to und erstand😢😮🎉😂❤😅😊🎉🎉🎉
Love, Ashirah , Wendy Lex , Fridman, your wifey ❤💕
I wouldnt wtite a long living app in python. Java obviously preferred for long living apps due to garbage collection, memory constraints, etc. python good for ad hoc use stuff i guess
Mustard and jelly? WRITE THAT DOWN WRITE THAT DOWN
It is still mind boggling to me how people every time compare a compiler based language with a interpreted language.
30 years ago we would call these a programming language vs a scripting language.
Somehow that knowledge has been lost and these days it seems normal to compare apples with oranges.
Pls discuss python vs go
go is faster but syntax is crap also .
python needs brackets and then its okay
I'm the guy that knows how to fish. This is awesome.
Get Hadley Wickham on
I am into fishing and programming tho..
But do you program whilst fishing?
Throwing shade at tabs.... Damn, cuh
@6:05 Have to remind myself of this constantly
I hate the python indentation junk. Let me indent as I want and give me brackets
lex you gotta fire your barber after he let you walk out the shop with that cut
Actually the L and R mispronunciation thing is with Japanese and Koreans. Mandarin Chinese has both sounds.
If I ever meet Guido, we’re slicing onions.
I think this should have been named Python indentation, not sure why Lex was so fixated on this question.
Because it is a BIG deal and a fatal flaw of the language.
@@clocksun You're joking right?
@@gmcenroe Not joking. In a dev team environment with a large code base, an errant change to indentation may slip thru to prod. An indentation change can result in code that compiles successfully but exhibits incorrect behavior. Learned this lesson the hard way back when I was a greenhorn developer.
Plus as a now well seasoned engineer/architect, I highly value code that reads fluently with semantics that make it easy to understand how the logic is put together. To that end, hard to beat braces for scoping control logic and semicolons to clearly indicate the end of a statement.
Python, for lacking both, dooms itself to the minor leagues of programming languages. Lots will use it, I'm sure, but only the foolish will endeavor to uses it for BIG codebase projects
as a good slav i will teach you some word to describe the *djjj* sound
Жужума
I can't speak for Chinese (Mandarin or Cantonese), but I've studied Japanese for about 4 years, so I feel like I can comment on Guido's theory with some level of familiarity, however I don't claim to be an expert on the topic. Japanese doesn't have an "R" or "L" sound, instead they have a sound that sort of fits in between the two. The hiragana characters らりるれろ and katakana ラリルレロ, although romanized to "ra, ri, ru, re, ro", are not actual western "R" sounds; nor are they "L" sounds.
I wish I could cite a source for this, but what I've learned about language acquisition is that during the learning/acquiring process, your brain quite literally filters out sounds that aren't useful to it in understanding meaning. This is most apparent in your native language. So native Japanese speakers literally cannot hear the difference in western "R" and "L" sounds. One friend of mine who is a native Japanese speaker told me that the English words "Clutch" and "Crutch" sound identical to them.
It's also interesting to me to be on the other side of this and learn Japanese pitch accent, which is a trait that does not exist in English - I find it very difficult to hear the differences in some words and expressions at first, and only after I intentionally listen for it, am I able to notice the differences. Cool stuff, if you're into that sort of thing lol
Indent and no ; is alright. What's nasty is that a comma at the end of line like a = 1, generates a tuple which screws up your code and is hard to find out.
Can you still self learn programming to eventually enter the field? Or is schooling becoming more required as competition increases
Depends on how high you want to go- you can get a starter job with online courses but if you wanna become an AI lead at Tesla or Apple they're gonna wanna see at least a bachelor's if not a masters.
@@cgnomazoid I agree, so many times I think to myself wow I don’t need school I could just self learn better than some of these professors I’ve had. But at the end of the day you sometimes need someone to hold your hand to learn dense topics you might not be motivated enough to learn on your own. So of course the answer stands at what level you want to reach, how motivated you are and what interests you.
It depends. Self-taught programmers (supposedly) have better programming skills as they've had to learn and internalize everything the hard way. But formal education teaches you other things like teamwork, project management, common industry practices and so forth. At least where I live both are perfectly viable options, but it may depend on the company or where in the world they're located.
A degree isn’t necessary. Once you have a few years or experience under your belt, it becomes less and less relevant. Employers care about experience. But all things being equal, having a degree is better than not. You need to be a helluva self-taught programmer to compete.
@Sergei O'Sullivan
It's much easier to be thought programming in courses than to tezch yourself.
And on the market, that's an important proof you probably need.
But you get a deaper understanding as self-taught.
But you don't become a programmer from just a course. You need to do real programming for that.
My advice it to get as much formal courses as possible. Then learn real programming at work.
To become really good at it you must continue to educate yourself in the way a self-taught programmer does. But you get there faster by letting others teach you the basics first,
I’m here to also highlight the very interesting sandwich recipe: mustard and jelly? 😂
Guido van Rossum is a cool dude.
Ah the legend himself
Delimiting with whitespace in python was a mistake, but its one that i can live with.......it has become a really great language, especially the latest versions.
Mustard and jelly sandwhich?
The programmer in the boat, does he know much about fishing?
It's interesting that he doesn't mention that it's simply less work to write blocks without curly braces, provided you are using significant indentation. It's effectively a reduction in the amount of boilerplate.
As for ambiguity, it's one of the most absolutely blursed things I can think of.
The braces sugar can be distracting for me. I personally prefer Python's way, seems simple and elegant, pure It also reminds me a BASIC where I learned to code. There really is a big split on this though. But despite all the debate it gets - it's not that much of a big deal either way.
until you realize you forgot something in the middle of a 300 line block of code and then spend the next 6 hours making sure everything is indented correctly so your program doesn't corrupt the data store, absolutely horrific design decision and the main reason why I will never use Python for any serious project unless I absolutely have to.
@@bobtony6036 "absolutely horrific design" is "a 300 line block of code" %)
I didn’t like the indentation rules when I tried Python. Totally put me off. May as well write COBOL.
Ah the famous Silicon Valley debate of spaces vs tabs continue
I love python so much guys
Felt like they took forever to get to the point. Though maybe that's because I'm not a fisherman.
to the founder of python,
thank you for python
from
Data scientist
This is the greatest sitdown ever
I keep getting lost in Guido's metaphors.
i think he did too 😂
But programming IS 0's and 1's. Why don't we talk about it? (May delet this comment tomorrow since I'm high)
You were too high, you forgot to delete it 😢
Love this. 😍
the boat is his audience lol