Armin Ronacher - A Python for Future Generations
EuroPython Conference4 HN recommenders · recommended in 3 months, 2017–2020
talk · advanced · evergreen · 2017–2020 on HN
Armin Ronacher's EuroPython 2017 keynote examining how the CPython interpreter's leaky abstractions affect language design and how Python could evolve, drawing on JavaScript and Rust experience.
Recommended for explaining why Python is hard to optimize and the limits of making it fast.
Up next
16 mo on HNHow Python was Shaped by leaky Internals, Armin Ronacher, Flask framework
Видео с мероприятий {speach!
15 HN recommender · 2017–2025
11 mo on HNPrinciples for Dealing with the Changing World Order by Ray Dalio
Principles by Ray Dalio
10 HN recommender · 2022–2025
3 mo on HNJohn Carmack Tech Talk with UMKC-SCE
UMKC School of Science and Engineering
3 HN recommender · 2017–2023
4 mo on HN"Data Driven UIs, Incrementally" by Yaron Minsky
Strange Loop Conference
4 HN recommender · 2018–2022
11 mo on HNMaybe Not - Rich Hickey
ClojureTV
14 HN recommender · 2018–2025
6 mo on HNThe Clean Architecture in Python
Next Day Video
5 HN recommender · 2017–2021
3 mo on HNGopherCon 2016: The Design of the Go Assembler - Rob Pike
Gopher Academy
3 HN recommender · 2017–2025
2 mo on HNRustConf 2017 - Closing Keynote: Safe Systems Software and the Future of Computing by Joe Duffy
Confreaks
2 HN recommender · 2017–2025
18 mo on HNRuby Conf 12 - Y Not- Adventures in Functional Programming by Jim Weirich
Confreaks
17 HN recommender · 2013–2026
16 mo on HNThe spelled-out intro to neural networks and backpropagation: building micrograd
Andrej Karpathy
17 HN recommender · 2022–2025
15 mo on HNRailsConf 2014 - All the Little Things by Sandi Metz
Confreaks
15 HN recommender · 2015–2025
14 mo on HNWhat the heck is the event loop anyway? | Philip Roberts | JSConf EU
JSConf
16 HN recommender · 2015–2025
4 comments from Hacker News
As the OP states: > mutable interpreter frames, global interpreter locks, shared global state, type slots On top of this, Python is extremely dynamic and nothing can be assured without running through the code. So this leads to needing JITs to improve performance which then give a slow start up time and increased complexity. Even with JIT, Python is just not fast thanks to the above issues and it's overall dynamism. It can be optimised and for sure there's some impressive attempts at doing so. However I don't think pure Python will ever be considered "fast" as these things necessarily get in the way. I highly recommend the two videos posted here that go into more detail as to why there are limits to how far optimisation can go: link ▶ this video
I found the following talks by Armin Romacher very informative on these topics (C API, why python is more difficult to speed up than JS). link ▶ this video I wish these were the things Python 3 addressed, rather than Unicode. I guess it's much more obvious in hindsight than back when Python 3 was designed.
Python's success is richly deserved. The fact that it has been a long time coming (Python is almost 30 years old!) is an indication of the amount of sheer effort involved, and should give heart for all those working on building up the next generation of languages. Since this forum is likely to have some folks looking towards the future, I found interesting a couple of talks by Python veteran Armin Ronacher [1, 2]. Watching that presentation makes me wonder whether I should think of this in the context of "Worse is better". That said, Python's runtime introspection is such a killer feature that it's difficult to explain how empowering it feels for someone who is relatively new to programming. [1]: How Python was Shaped by leaky Internals -- link [2]: A Python for Future Generations -- ▶ this video
As far as I understand, one important difference is that JavaScript doesn't have __getattr__ or __setattr__ (or at least earlier versions didn't). You might not use those hooks a lot in your application code, but it seems that web frameworks and the like do a lot of reflection, which makes the code difficult/impossible to optimize (even at runtime with a JIT). Python also has __add__ (operator overloading) and JavaScript doesn't. This is a good talk about how subtle or crufty the semantics of something like "a+b" is in Python: ▶ this video The PyPy developers had to copy a lot of the implementation details of CPython, which doesn't always result in the fastest code.