I’ve been to many conferences in my life, but this was my first time attending a PyCon.
To me, what separates this conference from the others I’ve been to is the sense that people are there not so much to sell their products, but are just genuinely interested to hear how other people are using Python in many different industries. I also felt that nobody judged other people based on their proficiency or experience with Python. A beginner programmer like myself was as welcome in a discussion as a more veteran programmer. People were just generally nice and including!
The fact that this conference was in Japan naturally meant that most talks were in Japanese. Since my Japanese still isn’t that good, it helped simplify the selection process for which talk I’d like to listen to. There were a lot of interesting talks so it was hard to decide which ones to write about, but here is a little bit about a few of them.
Keynote day 1 – Why Python is eating the world
By: Cory Althoff – YouTube
Cory Althoff, the author of a best-selling book called The self-taught programmer, talked about why Python is as popular as it is these days.
Here are a few of the reasons he pointed out:
- Easy to get started with
- Good readability, easy to write syntax
- For example, let’s compare how to output a simple “Hello world” in Java and Python.
Java:class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello world");
}
}
Python:print("Hello world")
- Usable for many different career paths
- Data analysis
- Web development
- DevOps / System administration
- Web scraping
- Machine learning
- Software testing
- Software prototyping
- Great community
- Good salaries
Python is the fastest-growing programming language and the demand for Python programmers is high. Because of this, almost half of the people using Python have 2 years or less experience. After also seeing what’s possible with Python during my time at PyCon JP 2019, I can honestly say that it’s an exciting time to be a Pythonista!
Keynote day 2 – Agriculture & Python
“I don’t learn to try something new, I try something new to learn.”
By: Makoto Koike – YouTube (Japanese)
Makoto Koike is a former embedded engineer involved in development using C language but has in the last few years embraced both Python and farming. He’s running a farm that grows cucumbers with his family and has developed a way for Python to assist in grading and sorting the cucumbers, which saves him about 30% of daily sorting time.
The average age of Japanese farmers is now 67 years old. That combined with the fact that the younger population shows little interest in being farmers themselves, could mean trouble for Japan in the future.
Koike thinks that gathering data, using machine learning and creating automated systems to assist humans in farming could be a way to avoid that a lot of the valuable knowledge and know-how that the older farmers possess gets lost.
Another thing he mentioned in regards to machine learning and automation in farming and production was that it’s not necessarily the goal to increase accuracy but to remove inconsistencies created by our own subjective opinions.
If you’re interested to learn more, you can read more about this at Google Cloud.
Modern development environments for Pythonistas
It’s 2019! Don’t let your development environment get stuck in 2009.
By: Dustin Ingram – YouTube
Dustin Ingram is a developer advocate working at Google and he talked about the benefits of using Docker containers with Docker-compose. As opposed to virtual environments, which are also good, Docker containers are unaffected by other globally installed software that might affect your code. It’s a great way to make sure that your code always gives the same results no matter where it’s run.
Use Docker-compose to mirror production locally. As Docker containers are static, you can, for example, use environment variables to differentiate external resources during development and in production. Docker-compose also allows you to run true integration tests against a fresh copy of a database container.
He also recommended some tools:
- pip-tools –
pip install pip-tools
.
It’s a set of tools that are built on top of pip that gives you a command calledpip-compile
. So for example instead of usingpip freeze
, create a file called requirements.in and write the dependencies you need in it. Then runpip-compile requirements.in
. This will create a requirements.txt file for you, but with better information about which dependencies the subdependencies come from. - Dependanbot in GitHub helps keep your dependencies upgraded. It integrates with multiple programming languages and will automatically make a pull request with the changes needed if a dependency has a new release. Neat!
- For linting and autoformatting – “just use Black“.
Wireless network
I had the pleasure of talking to the team behind PyCon JP 2019’s wireless network.
From other attendees, I kept hearing that the wireless network here was really good and that it’s not necessarily the case in other conferences. Maybe that had to do with the fact that the NOC (Network Operation Center) was staffed by a total of 21 people, and that they kept a close eye on any unwanted developments with their monitoring systems.
YouTube ~5-minute lightning talk (Japanese)
Food and robots
Summary
I’ve heard a lot of interesting talks that each gave me useful viewpoints and/or recommendations for libraries or best practices. I’ve met many interesting and nice people from all over the world working on all sorts of projects. I’ve enjoyed good food and drinks in a nice venue with a rock-stable wireless network.
I left the conference with a feeling of wanting to come back and experience this great community again and with curiosity to explore and learn more about what I’d heard.
Thank you PyCon JP 2019 for a great conference, and thank you Niteo for letting me attend!