Python makes extensive use of modules, and expects developers to make extensive use of them, too. But how do modules work? In this talk, David Beazley walks us through the ways in which modules and packages are created and handled in Python 3.
Python makes extensive use of modules, and expects developers to make extensive use of them, too. But how do modules work? In this talk, David Beazley walks us through the ways in which modules and packages are created and handled in Python 3.
Metaprogramming is a powerful technique in which we write code that then writes code. What tools does Python provide for metaprogramming? And how/when should we use such techniques? In this talk, Andrea Crotti walks us through metaprogramming in Python, showing such techniques as decorators and metaclasses. If you’re an intermediate Python developer looking to improve your code, this talk should give you many new ideas.
Python 3 has been out for a while, but many companies haven’t yet found a compelling reason to move from Python 2. One feature which has been getting a growing amount of attention, and which is encouraging people to move to Python 3, is asyncio — a part of the standard library as of Python 3.4, which allows for asynchronous I/O. But what does “asynchronous I/O” mean, how does it relate to Python, and why would I want to use it? Moreover, how can I use it? In this talk, Anton Caceres introduces us to asynchronous Web development in Python, which is based on Python’s generators, and which offers a new way to think about Web applications.
Jython is a version of Python that runs on the JVM. The Jython project recently celebrated release 2.7, which is compatible with Python 2.7. What are the aims of the Jython project, and who uses it? What obstacles did the Jython developers have to deal with on the way to this release? And what new features does the new version include? In this talk, Jython committer Jim Baker helps to answer these questions, describing how Jython is good for the Python and Java development communities.
How do you debug your Python programs? There are a variety of techniques, but even the strongest advocates of using “print” statements eventually need to use a debugger. In this talk, Matt Boehm demonstrates why and when you want to use a debugger — and the variety of debuggers that exist within the Python world.
“Machine learning” sounds like the basis for a new (and possibly bad) science fiction movie. But in fact, it’s the idea that we can ask the computer to identify patterns in large data sets — patterns that we would otherwise miss. Now, machine learning isn’t new, but it has become increasingly important, given the rise of big data, and the need for businesses to understand their customers better. Python has become an increasingly popular tool for implementing machine learning, thanks in part to scikit-learn, a Python package built on top of NumPy and SciPy. In this talk, Kyle Kastner introduces scikit-learn, and describes what we can do it with, as well as how to do so.
What happens when you execute a line of Python code? Experienced Python developers know that it’s turned into bytecodes, which are then executed. But how does that happen, and how can we describe the process? In this talk, Allison Kaptur goes through the workings of the Python virtual machine, describing byte codes and the ways in which they’re used. If you’re a Python developer, then this is likely going to reveal a great deal of useful under-the-hood information that can help to inform your development work.
Every programming language has its surprises and dark corners. Even Python, which prides itself on regular syntax and consistent behavior, has them. This talk, by Amy Hanlon, not only points to some of Python’s odder behaviors, but explains why these things happen. The talk is both funny and interesting, and helps us to understand how programming languages are implemented, not just used. The talk’s title refers to Gary Bernhardt’s famous “Wat” talk, in which he points to oddities in Ruby and JavaScript.
Since it was first introduced in 1992, Python has been a dynamically typed language. In other words, any variable can point to any object in Python; there’s no such thing as an “integer variable” or a “string variable.” On the one hand, proponents of dynamic typing say that it’s a great thing — but on the other hand, many people working on large projects have pointed to the drawbacks of dynamic typing, and have long wanted at least some type-checking to come to Python. At this year’s PyCon, Python BDFL Guido van Rossum announced a new direction for Python, which signals a move, slowly and cautiously, in the direction of type checking for Python. What does this mean for existing code? What does it mean for the future of Python? If you’re a Python developer — or even if you’re using another dynamic language — it’s worth hearing from Guido has to say on this topic.
Generators are all the rage. Python has had them for a while, and is now moving rapidly to incorporate them even further, thanks to the Tulip project. JavaScript is getting them in ES6. But why do we care so much about generators? What can do they do for our programs, and for our understanding of how to write and improve those programs? In this talk James Powell shows us just how useful generators can be, and why they’re an important addition to your programming toolbox — in Python, but also in other languages.