My takes from EuroPython 2023 in Prague
Wednesday, 19th July, 2023
Kindnesses & Promises
Personal experience of a community organiser Petr Viktorin. It felt a bit out of scope for me because Petr spoke about his path through life (we all have some) and emphasized the importance of community in Python. Community is not the most important thing for me in Python - the actual engineering part of Python is. From the members of the Python community (people who know each other and meet often at meetup) it seems that it is a necessity or essential progress, but I think that a lot of people can be part of Python, contribute to it and not be part of this community.
How we are making CPython faster. Past, present and future. 👍
Great talk from Mark Shannon about performance improvements in Python. Neatly summarised and well put. If only we could have more time (or more technical part) to go into details.
Rust for Python data engineers
The gist of the talk was that Rust gives you more compile time checks which makes maintainability of the project easier in the long run. We’ve got one short example how rust can be called from Python. I was expecting more data science related tools presented rather than talking generally about Rust vs. Python.
HPy: The Future of Python Native Extensions
HPy is trying to create a layer between native extension and Python C ABI, mostly because of needs of GraalPython. Until the overt openness of Python ABI has defined some strict interface every new Python interpreter or compiler will suffer because C extensions packages won’t be able to run on this. I do encourage this effort to open doors for other Python implementations. However, I’m not sure whether rewriting the whole numpy at once and then asking numpy maintainers to include the changes is the right approach. Something more incremental would have higher chance of success.
CPython Core Developer Panel 👍
Panel with a people who has a thing or two to say.
My takes:
- CPython Core developers are C developers and there are a bit isolated to a python packages developers
- People keep repeating that “There should be one obvious way to do things” as a counterargument to having
.format()
and f-strings in a language. This is quite unfair because we cannot deprecate something that people uses and we want new better things.
Dynamically generated methods with a non-generic signature
Nicely described piece of code that autogenerates methods and signatures using descriptors. It was easy to follow the process. But as my friend, Viliam, noted this works only in notebook not in IDE.
The State of Production Machine Learning in 2023 👍
Very nice overview of what is happening in machine learning world. I intend to go through https://github.com/EthicalML/awesome-production-machine-learning and check more details. Do recommend.
Large Language Models: From Prototype to Production
A talk about LLM and NLP cooperation. According to the speaker they can support each other.
Thursday, 20th July, 2023
The Future of Microprocessors 👍
Great talk about microprocessors and where we are reaching the physical limits of further development in the current direction (increasing frequency, adding cores, transistor size reduction). Because of Amdahl’s Law (number of cores), wavelength of light (size of transistors), need to cool down (frequency) we’re getting out of ideas how to improve performance of microprocessors. This will lead to bigger need for parallel computation and we, as developers, will need to react - Mojo is IMHO a nice response to this problem.
What polars does for you 👍
A great talk by polars author. Explaining that polars is not just pandas clone but a novel approach that is much more performant because user enters operations in form of a query which is first optimized in a query planner before executed. Polars even can work out-of-core - meaning that we don’t need to load the whole dataframe in memory. In the future it wants to expand to even more machines.
The CPU in your browser: WebAssembly demystified
Introduction to WebAssembly. Sounds cool, another attempt to a universal VM that can run everywhere. Great enabler.
Learning the ropes: understanding Python generics 👍
Great explanation of generics, Liskov substitution principle and co/contra/invariance in types. Very helpful because it is hard to understand from Python documentation.
Quantify Self
A nice talk from a lady who likes to measure herself. Mostly about biases there are. Some basic example of processing in a notebook. She also share some insights she found about herself.
The challenges of doing Infra-As-Code without “the cloud”
Just a general talk with a simple diagram and no code.
How well do we understand our Universe? Let’s Python it out!
How Python is used in checking of simulation of galaxies growth.
Music information retrieval with Python
Nice overview about new projects in music analysis and generation.
Games of Life: generative art in Python
Lukasz Langa’s playing with Python and the visual it can produce. I do share his interest in emergent properties. I’d like to generate something along as well.
Welcome to Your World
How journalist learned to code and how he sees engineer. Probably interesting but quite long sometimes it was hard to understand. Or maybe I was just tired.
Friday, 21st July, 2023
DevOps vs AGI
The lady explained why regulation is important and useful. Talked about regulating AI. She talked also about biases that they are not inherently wrong but actually carries some knowledge of the external world (example with assigning female to dancing while male to sports).
Friday, 21st July, 2023
Subclassing, Composition, Python, and You 👍
A great talk by Hynek Schlawack, which is also covered in this article. I appreciated his balanced arguments for composition over inheritance. He also described the Repository pattern from the book Architecture Patterns in Python (link).
Designing an HTTP client
This was a high-level look at how httpx was designed. I liked the design principles discussed, including the separation of low and high-level interface layers. The team at Encode is working on several interesting projects. You can find their work on their Github page.
Python interoperability: building a Python-first, petabyte-scale database
This was a good talk, but felt more targeted towards C++ developers than Python developers. Still, it provided some nice insights into how Python and C++ can work together. While the possibility of working with C++ seemed intriguing, I believe I would still prefer learning Rust.
Conclusion
Overall it was a very nice event with varying level of talks (as always). Note for the future conferences: choose talks by speaker not by the topic.
Since it was in Prague there were many of my former colleagues which was the best part of the conference.