The hottest topics of Moscow Python Conf ++ were asynchronous development, as well as the comparison of Python, its best practices and tools with counterparts from other languages, and its place in the landscape of modern development. Plus we invited Benjamin Peterson, one of the CPython developers, Grigory Bakunov from Yandex and many other very interesting people to speak.

The fourth and the second, arranged jointly with our team, Moscow Python Conf ++ has noticeably transformed. What happened at the event, how it stood out among the industry-specific IT forums, what profit and pleasure the participants brought - in our short photo session from the site.
')

The conference gathered over 460 guests at the venue itself, as well as dozens of online participants. We have parallelized the program of 24 reports into three streams. The conference headliners were evenly spaced along the grid in order to avoid "gravitational anomalies": so that the top figures did not pull all the attention to themselves. This year we also refused to continue the experiment with the two-day format, and this is against the background of an increase in the flow of applications, so there was no shortage of strong experts. Did the high concentration of speakers with strong reports make it difficult for me to choose whom and where to go? Yes and no.
Grigory Petrov, Head of the Moscow Python Conf ++ Program Committee:
“Developers almost always have a specialization (who has machine learning, who has data science), and in most cases everyone searches in the program and visits those reports that match his profile. So the task of the program committee is to prevent situations where in parallel streams we would have speeches on similar topics and people would rush as restless between the halls ”.
Of course, Moscow Python Conf ++ 2019 had headliners, however, for the practical use of the material they prepared (as well as case histories, etc.), they did not contrast strongly with the general composition of the speakers. Without detracting from the merits of the remaining 20 speakers, we will describe in more detail the four central topics that we have selected according to subjective criteria and partly according to the media weight of experts.

Benjamin Peterson: Python Governance

Benjamin Peterson, one of the leading developers of CPython and PyPy, became the top speaker, but not the only superstar of the conference. In addition, Benjamin works in Dropbox in San Francisco with Guido van Rossum, the founding father of the language. Last year, he dismissed himself from the post of Python’s “benevolent dictator for life, or BDFL”, a life-long dictator for life, and therefore required a “substitute”. As such, a five-member committee was formed on an electoral basis - the Steering Council, which, by the way, includes van Rossum himself. Benjamin himself, by his own admission, did not enter this structure: “I took the sixth place on the ballot”.
With all the stardom of the speaker and proximity to the heart of Python (literally - to the core), his report was, perhaps, the least technically oriented, rather conceptual, with the leitmotif "What awaits us in the post-Guido era". Meanwhile, it was not for nothing that the organizing committee pointed out that as anyone who uses Python for their work, as the target audience in the announcement of his speech. It was about the most important thing for the community.
In the report, Peterson noted what transformations the CPython development model underwent, and what evolution paths were possible for him. He then shared his view on the future of Python: how language releases, support, standard library, etc. (with all the relevant PEPs indicated) will change - outlined what this means for a wide range of pythonists and how they can influence the fate of the language and ecosystem . In general, I marked with neat strokes how the community will live now. It was not without details: for example, it is declared that discussions about the development of the language will be better moderated, and from now on it is supposed to use GitHub to work with bugs.
After the conference, Benjamin gladly admitted that on the sidelines a mass of practical suggestions for the development of Python had fallen on him.
Grigory Bakunov: "What to do if your Python code slows down"

Let
bobuk prefer to certify himself as an “unreal programmer” - “It takes me only 2–2.5 hours a day to program” - and sincere in this self-determination, but he had more to share about the sorrows and joys of Python with the audience. Tips of both productive and unproductive ways to speed up the execution of the Python code were raining off the stage. Crumbled - and fit well in the head: the theses of Gregory are traditionally packed with extreme ergonomics; on his reports sometimes it seems that in your head ideas are playing Tetris.
Apparently, a large part of those same two hours per day devoted to the development, the director of the dissemination of technology "Yandex" still spends on Python Exercises. Otherwise, how can he know that numba is very selective for speeding up Python - mainly for scientific applications, and Grumpy, the google Python code translator to Go, is hardly a working, utilitarian solution in real infrastructure.
Along the way, Gregory openly confessed his love for “nim and the prophet and nimpy,” and also walked through Cython's “clever twists” that could potentially prevent the code from being played briskly. He summarized his twenty minutes with lousy punchlines:
- Sometimes PyPy is enough (if possible).
- Optimizing simple code is also important.
- The toolkit must be stable.
- Do not be afraid of esotericism, it's fun.
- An old friend is better than two new ones.
After the report and the Q & A block, which seemed to have surpassed the report in terms of duration, about 30 pythonists surrounded the “unreal programmer” and did not release it for a long, long time.
Vitaly Levchenko: Python vs Go

Widely known as the organizer of Go and Reliability-mitapov in St. Petersburg, Vitaly Levchenko entitled his speech deliberately provocative. And no less provocatively opened it: they say, please, the answer is on the surface - in Go web benchmarks Go is much faster than Python (in rps), showing in some cases more than fivefold superiority. However, such a visit was only a reason to evaluate the advantages and disadvantages of Go in comparison with Python. And the main thing is to show where something is more effective. Of course, as an adherent of Go, he could not help but focus on its advantages — simplicity, absence of problems with updates, a small number of dependencies on external libraries, etc.
At the end of his constructive "monobattle" Vitaly shared a history from the development practice in which the transition to Go increased productivity tenfold. Given how widespread the Python + Go bundle is today in production, many ingrained pythonists had a clear overview of the comparison in order to expand their knowledge of the scope of Go and its place in the backend of modern online services.
But Python, according to the ambassador from the Go-camp, is reasonable to give preference if:
- speed of application bootstrapping is important;
- need to solve data science problems;
- heart lies to async / await.
Maxim Lapshin: “Elixir as a development goal for Python async”

The winner of the HighLoad ++ 2018 award, the founder of the video streaming product erlyvideo, the organizers called it with a twofold intent - to take a look at how distributed asynchronous systems are built on Python and how they can be built not on it. The erlyvideo foundation was written in Erlang, however, part of the solution was created in Python, so that, by his own admission, Maxim was able to feel the pain with the functioning of the network mechanisms "in Python style".
Expanding the subtitle of the presentation - “How to manage sockets, execution threads and data together” (and who doesn’t want!), Maxim reviewed the existing concepts of parallel computing, in particular, how they are implemented in Erlang and Elixir. Its main task was to show by examples how the wider context of languages ​​and technologies influenced and influenced the implementation of network mechanisms in Python and in what direction its “asynchronism” would evolve. Stressing all the advantages of parallel computing on Erlang / Elixir, Maxim also outlined their costs (including non-optimal performance and "overhead" for copying data between processes).
Who by python
Judging by the migrations of the public on the site and the occupancy of the halls, each speaker “smiled” with his audience, and we will mention a few.
The resonance was caused by the report by Alexander Koshelev about how the development of Python in Yandex evolved (spoiler: dramatically). And Kirill Borisov’s experience and recommendations from Booking.com - he talked about testing the legacy-code refactoring - definitely came to the request of a fair number of those who gathered to listen: they didn’t want to let him go for a long time.
Another foreign conference guest, Alibaba's senior cloud engineer, Qin Xue (Qin Xuye), was also successful in presenting a comprehensive open source tensor-based Python framework for large-scale computing. Igor Kitsenko from HH.ru told an interesting machine learning case: ML-service job recommendation written in Python and - the highlight of the report - integrated with the search engine in Java.
Grigory Petrov:
The program committee gathered speakers, with whom the participants of the event would like to talk the most. Indeed, from our point of view, the conference is not a place where people come to learn something seriously. Nor is it a place where something radically new is found. This is the place where they come to talk with colleagues who are working on real projects, especially behind closed doors. Yes, even if open, but many still do not write about their work on Habré or Stackoverflow - often solely because of the frenzied employment.
One of our internal empirical criteria for the selection of a speaker is that we should be interested in talking with him over beer about the urgent issues of language and technology, as well as meticulously asking about his work. The same Benjamin Peterson is by no means a wedding general. He is an outstanding programmer and a generally diversified person (he plays the piano at the same time) and, in particular, he deals with all CI in Dropbox. When I had a free minute, we talked with him about how they organized the testing of Python code on huge clusters in the company, and they started to do it even before GitLab. Other speakers from Moscow Python Conf ++ 2019 are also quite consistent with this criterion. In any case, in our opinion.

For all the diversity of the Moscow Python Conf ++ agenda, its most pressing topics were asynchronous development (it was out of competition), as well as comparison of Python, its best practices and tools with analogues from other languages ​​and its place in the landscape of modern development. Which, as can be seen from the topics of the reports, was part of the program committee’s intention.
And talk?
Besides the communication between speakers and conference participants, increased attention was paid to the main content program, we made efforts to ensure networking within the community throughout the day throughout Moscow Python Conf ++.

First of all, in the foyer there were discussion zones equipped with fripcharts. They included preliminary topics for disputes, to which everyone could and should have joined: “Do you need asynchrony in Python?”, “Is it okay to go from jun to team lead in a year or ten years?” And so on in the same holivarnom spirit.
“Packed socialization for introverts” - this is how half jokingly one of the organizers characterized this communication format.
However, it was difficult to suspect introverts in those who flowed into the discussion areas: the participants of the debates were too hot (but friendly). Well, after dinner, all the "Infospace" seems to have turned into one continuous discussion zone.
Valentin Dombrovsky, co-founder of the MoscowPython community:
The dual stand Moscow Python + Pyladies Moscow and the joint stand of regional communities worked perfectly. At the second there was a meeting devoted to how local parties of pythonists are organized. In the course of it, the participants agreed on a collaboration: it is hoped that we will eventually develop a metasocommunity - a community of communities. After all, Python is a language created by the community.
But in general, the conference turned out to be all-Russian - they gathered people from various parts of the country, except for the capital, including from St. Petersburg, Kazan, Krasnodar, Omsk, Ufa, Chelyabinsk, Ivanov, Lipetsk, Novosibirsk. Some people came from Estonia and Azerbaijan. So, perhaps, even wider than the All-Russian.
At the partners' stands, Iponweb and Evrone, in contrast to how often it happens at technology conferences, the Eicharas or seizles who were serving the duty did not get bored, but the movement was unfolding. Raffle prizes, competitions, the same professional discussions, quizzes - there was something to do. To “IT-crocodile”, to whom a master class on Arduino.

Either being delayed due to intrigue in the program grid, or due to the fact that the bet on communication justified itself, or for both reasons, more than half of all those who came to the conference left on the afterparty. The party continued the general line of Moscow Python Conf ++, and beer, a variety of snacks and a share of healthy intoxication became additional fuel for networking.


Grigory Petrov: The community is getting older and more professional. I see more and more programmers from banks and IT giants at the conference. In such companies, they are increasingly using Python, and they strive to develop their HR brand and expertise with the community. Now you can fully discuss the industrial approaches to development and the complex problems that arise when solving business problems. Not only architecture issues, but also, let's say, how to properly organize the work of the team, so that it could get large-scale cool products, such as voice assistants, telemedicine platforms, fundamentally new financial services, software for unmanned vehicles.
What's next?
In the PC, following the first results of the conference, plans for the next year began to form. Here are a few ideas that are planned to be implemented:
- To ensure the arrival of Guido Van Rossum - as a maximum task. If not next year, then surely in the future.
- Call more core developers and authors of popular libraries.
- To invite cool speakers on topics that were not covered at the last conference, primarily on information security.
- To involve as participants more timblids, testers, analysts, - all those who, not being a developer in the strict sense of the word, constantly use Python in their work.
- It is possible to spend a separate day of workshops and introduce new formats of activity, including involving people from the community of other languages.
- Murch, which participants have been asking for so long.


PS Friends, for those who failed to take part in our conference, we would like to recommend subscribing to
our YouTube channel , where we will begin to upload videos of performances towards the end of summer. Now there is also something to look at, since we downloaded almost all the reports from the autumn conference.