HN Theater @HNTheaterMonth

The best talks and videos of Hacker News.

Hacker News Comments on
Guido van Rossum: Python and the Future of Programming | Lex Fridman Podcast #341

Lex Fridman · Youtube · 90 HN points · 0 HN comments
HN Theater has aggregated all Hacker News stories and comments that mention Lex Fridman's video "Guido van Rossum: Python and the Future of Programming | Lex Fridman Podcast #341".
Youtube Summary
Guido van Rossum is the creator of Python programming language. Please support this podcast by checking out our sponsors:
- GiveDirectly: https://givedirectly.org/lex to get gift matched up to $1000
- Eight Sleep: https://www.eightsleep.com/lex to get special savings
- Fundrise: https://fundrise.com/lex
- InsideTracker: https://insidetracker.com/lex to get 20% off
- Athletic Greens: https://athleticgreens.com/lex to get 1 month of fish oil

EPISODE LINKS:
Guido's Twitter: https://twitter.com/gvanrossum
Guido's Website: https://gvanrossum.github.io/
Python's Website: https://python.org

PODCAST INFO:
Podcast website: https://lexfridman.com/podcast
Apple Podcasts: https://apple.co/2lwqZIr
Spotify: https://spoti.fi/2nEwCF8
RSS: https://lexfridman.com/feed/podcast/
Full episodes playlist: https://www.youtube.com/playlist?list=PLrAXtmErZgOdP_8GztsuKi9nrraNbKKp4
Clips playlist: https://www.youtube.com/playlist?list=PLrAXtmErZgOeciFP3CBCIEElOJeitOr41

OUTLINE:
0:00 - Introduction
0:48 - CPython
6:01 - Code readability
10:22 - Indentation
26:58 - Bugs
38:26 - Programming fads
53:37 - Speed of Python 3.11
1:18:31 - Type hinting
1:23:49 - mypy
1:29:05 - TypeScript vs JavaScript
1:45:05 - Best IDE for Python
1:55:05 - Parallelism
2:12:58 - Global Interpreter Lock (GIL)
2:22:36 - Python 4.0
2:34:53 - Machine learning
2:44:35 - Benevolent Dictator for Life (BDFL)
2:56:11 - Advice for beginners
3:02:43 - GitHub Copilot
3:06:10 - Future of Python

SOCIAL:
- Twitter: https://twitter.com/lexfridman
- LinkedIn: https://www.linkedin.com/in/lexfridman
- Facebook: https://www.facebook.com/lexfridman
- Instagram: https://www.instagram.com/lexfridman
- Medium: https://medium.com/@lexfridman
- Reddit: https://reddit.com/r/lexfridman
- Support on Patreon: https://www.patreon.com/lexfridman
HN Theater Rankings
  • Ranked #2 this this week · view
  • Ranked #16 this month (mar/apr) · view

Hacker News Stories and Comments

All the comments and stories posted to Hacker News that reference this video.
Nov 26, 2022 · 90 points, 42 comments · submitted by Steven-Clarke
revskill
Yes, due to the "there is only one obvious way to do things", all Python programmers i know in my country don't know anything about function programming (they use global variables and mutation everywhere), no interface design, the code is almost unreadable (lenghthly mutated code everywhere), inheritance everywhere (there's no way to track back the parent call without debugging), no need for unit test, don't even say about Typing,...

I don't blame Python for such issues, i know it's human error. But why no such issues happen in other languages ?

More beginners into programming is a good thing. But the worst things happen when they don't know a better way to do things. Because "There's only one Python way to do things".

That's the reason i avoid Python at all cost to teach programming to newscomers.

roflyear
Of course you have these issues in other languages lol.
revskill
No, i've not seen such issues in other languages. Because in other languages, there's always better way to do things !
roflyear
Homie, I've seen it in JavaScript, C#, C, Haskell...

You can create dumb code in any language.

isitmadeofglass
I have never seen a blue whale yet I know they exist because others have seen them.

You obviously haven’t looked through code bases in other languages if you never seen these issues outside of python. Personally I have observed them in C, C++, Java, Haskell, R, Python, PHP, JavaScript , Matlab, Maple, Mathematica, Rust, heck even in lab view. And the same type of problems even translate to poorly developed excel sheets.

The only plausible explanation for you never having seen any such issues outside of python is that you have never looked.

cercatrova
Would be interesting to see what he'd say about Nim, which is Python-like but compiled rather than interpreted and has a great static type system.
Steven-Clarke
Guido van Rossum is the creator of Python programming language.
skullone
I think that's a pretty established fact.
clarents
I was surprised to hear that he uses GitHub Copilot. I'd assumed that with his understanding of the language that it would be easier/faster to just type what he wanted, but he said that 1) he's not a very good typist and so it can safe him some time and 2) Copilot can help fill in code for concepts that he's learned but would need to look up as a refresher.
MuffinFlavored
anybody got a tl;dw?
timonoko
"I am not interested in these academic issues. I am just a mechanic making a tool." -- I remember he said this already 25 years go.
ivan_ah
Some nice historical context for many of the recent developments (e.g. why py3.11 is 30% faster), and other general topics (e.g. why certain languages denote variables using dollar signs).

You can look at the topic-shortcuts on the video timeline to see if any of these topics are of interest to you.

signaru
I'd normally just listen to the podcast version, while doing something else. I finished through Lex's interview with John Carmack in several installments.
yakubin
I’ve watched half of it and there was nothing insightful, to be honest.
nnoitra
None
bmitc
Does Python or van Rossum really have anything interesting to say on the future of programming? Python has libraries and lots of users and hype, and those are really its only outstanding "features". Python really does nothing interesting when I think of pushing the boundaries of programming.
williamstein
And yet it is one of the top 10 most popular languages. There might be something to learn from the discipline and balance of not pushing the boundaries of programming too hard?
bmitc
I don't think that conclusion follows. Yes, it's popular. No, Python is not disciplined nor balanced. Popularity is really more about social dynamics than anything.
camdenreslink
I don’t know about social dynamics unless you mean most programs in the world aren’t written by senior software engineers. Python is easy to understand to write a script or small web service. Scala or Haskell can never be the most popular for that exact reason.
marcelr
As someone who tries to design & implements languages on my own time I’ve learned 1 really important thing.

Features don’t make a language good or important. Its the invisible broth the features live in that make them useful. The cohesive nature of python is something few languages can touch. The features in python though not always innovative by themselves work together like magic.

Most people stuck in the initial hype phase of FP often miss these things, but python is special & shouldn’t be discarded because its lack of hyped features of the day.

bmitc
> The cohesive nature of python is something few languages can touch.

I am not sure I follow that at all. I have not known Python to be cohesive, like at all. Just look at how to do async/concurrency in Python. (a) you can't really, and (b) there are several ways to do with all sorts of quirks.

> Most people stuck in the initial hype phase of FP often miss these things, but python is special & shouldn’t be discarded because its lack of hyped features of the day.

People saying this usually just equate functional programming with Haskell. I know van Rossum does because he has said so himself. Functional-first programming, on the other hand, is a totally different ballgame. There isn't a hype phase there because such languages, like F# sit, in about the sweetest spot you can for programming languages. Also, the features Python lacks were around for at least a decade before it. It's not like they're just now the soup of the day.

Lutzb
Somewhere I read a quote that has stuck with me: Python is not the number one language in any aspect, but it is often the second best language.

This sums it up very nicely, I think. Without switching a language I can automate deployments, do machine learning tasks, implement ideas quickly, create backends, interface with most C libs easily and query apis.

jtode
Yep - I had some issues on the last network I was responsible for which ended up being trivial to solve thanks to Python. In a world without it... there would be a language with the same features and a different name by now. It opens up the world to mediocre programmers.
neilmock
Python did introduce more love, kindness, and empathy into the world.
remram
Did it? At this point what it's famous for is the 2-to-3 drama and the 20 competing packaging tools and standards.
europeanguy
Maybe the person you're responding to were taking a sarcastic shot at lex's schtick of making everything about love and empathy.
gjvc
While affecting the most miserable demeanor possible. Very odd.
Qem
I think just by inertia we will end with future languages copying Python syntax and spreading its influence, just like lots of languages copied C syntax after it got popular.
sholladay
Do you believe that AI / machine learning will play an increasingly important role in future technology? Because if so, Python is the go-to language for such work. Sure, some of that is due to human factors and not just language features, but Python makes AI and scientific computing easy and that work will influence Python’s development and vice versa.

Personally, as long as I have a good linter, I prefer JavaScript for general purpose programming but there are some areas where other languages just dominate.

doix
It's worth pointing out that Python is 30ish years old at this point.

It's "outstanding features" were creating a syntax that a lot of people can quickly grok (not just programmers) and the way they allowed for extensions to be written in C.

I believe it also popularized the concept of "there should be one obvious way of doing things", in stark contrast with Perl; "there's more than one way to skin a cat".

It's easy to look at this now and say that it's nothing interesting, because it already pushed the boundaries.

tcmb
> I believe it also popularized the concept of "there should be one obvious way of doing things"

It's one of the principles from the Zen of Python: https://en.wikipedia.org/wiki/Zen_of_Python#Principles

I agree with your comment, all of these taken together were a medium-sized revolution at the time. It's not for nothing that Python is the most popular language for teaching programming nowadays.

philippejara
I'm not sure they did to be honest. If I had to choose something to attribute the success of python to the general non-programmers i'd say jupyter notebooks are an order of magnitude more important than any of those things mentioned.

Especially when the idea of there being one obvious way of doing things is contradicted in probably the most used package of pandas, and even built in things like list comprehensions vs loops vs itertools, then couple that with the way it does variable passing.

Can't really agree that it is easier to read for laymen than other c-like languages of its day either, with the use of underscores for class methods and indentation defining scope.

Honestly if I wanted to really know why python was successful interviews with the authors of the notebook, pandas and the AI libraries would be my targets, cause in my view they're the ones that made the language a success.

bmitc
> If I had to choose something to attribute the success of python to the general non-programmers i'd say jupyter notebooks are an order of magnitude more important than any of those things mentioned.

Even then, Elixir notebooks with Livebook and F# notebooks with .NET Interactive (which are actually polyglot notebooks with several languages that can share data) are ahead of plain old Python notebooks.

roflyear
practicality beats purity
imiric
The Zen of Python is not much more than a meme. As a nearby comment pointed out, Python doesn't follow it in many ways (explicit vs. implicit comes to mind), and it contradicts itself in several places.

"Readability counts" might be the one exception, at least early on in the language's lifetime. Nowadays it could be argued that even that is diminishing.

But readability is often overlooked by most programming languages, which is a mistake. Programmers (should) spend more time reading than writing code, so it's very important. It's also very difficult to get right, being so subjective, but GvR has a good eye for it, and he made good design choices to balance it with expressiveness.

Readability is also crucial for a language being welcoming to newcomers, and new programmers in general. I think that Python is still the best first language for people learning to program. This is likely the biggest reason for its adoption and popularity today.

roflyear
practicality beats purity
bmitc
Python is not a practical language. It is sloppy. There are both pragmatic and pure languages.
roflyear
I don't think Python is sloppy.
lhuser123
> creating a syntax that a lot of people can quickly grok (not just programmers)

This. We tend to underestimate what it takes to create something easy to use.

valcron1000
Haskell is also a 30 year old language and I think it has a lot more to say about the future of programming than Python
roflyear
What is that?
valcron1000
From the top of my head:

  - First class functions (pretty much all languages)
  - First class null values through Option/Maybe (several languages use nullable types like Typescript but it's an approximation to the real thing)
  - Unit type instead of hacks like 'void' (Kotlin, Rust)
  - Expressions over statements (ex. if..then..else is an expression, and you don't rely on hacks like ternary expressions) (Kotlin, Rust, Scala)
  - Statically typed with full type inference (Kotlin, Rust, Scala)
  - Pattern matching (Java and C# are continuously extending this feature)
  - Green threads as default (Go, soon Java)
  - Decouple data from interfaces through Type Classes/Traits (Rust, C#'s static virtual members in interfaces is a start)
  - Generic programming. Do not confuse this with parametric polymorphism (I think Rust has an approximation through macros)
  - Effects (like IO) as first class values (Scala's ecosystem tries to mimic this)
Haskell was released in 1990 and feels more modern than most "modern" languages.
bmitc
Python doesn't really even follow that maxim itself. Also, even at the time of Python's creation, it ignored the influence of more disciplined languages (i.e., MLs, Smalltalks, Lisps, Schemes) and refused to adopt such influence over its lifetime. Guido van Rossum famously stated that `functools` is where he put things he didn't (doesn't) care about. I don't think that even now he understands functional-first programming.

All that being said, Python's age is irrelevant when discussing the future of programming.

HN Theater is an independent project and is not operated by Y Combinator or any of the video hosting platforms linked to on this site.
~ yaj@
;laksdfhjdhksalkfj more things
yahnd.com ~ Privacy Policy ~
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.