Les sujets les plus chauds de Moscou Python Conf ++ se sont avérés être le développement asynchrone, ainsi qu'une comparaison de Python, de ses meilleures pratiques et outils avec des analogues d'autres langues, et de sa place dans le paysage du développement moderne. De plus, nous avons invité Benjamin Peterson, l'un des développeurs de CPython, Grigory Bakunov de Yandex, et de nombreuses autres personnes très intéressantes à prendre la parole.

Le quatrième et le second, organisés conjointement avec notre équipe, Moscow Python Conf ++ se sont sensiblement transformés. Ce qui s'est passé lors de l'événement, comment il s'est distingué sur les forums informatiques de l'industrie, quel profit et quel plaisir les participants ont apporté - dans notre court croquis photo du site.

La conférence a réuni plus de 460 invités sur le site lui-même, ainsi que des dizaines de participants en ligne. Nous avons mis en parallèle le programme de 24 rapports en trois volets. Les têtes d'affiche de la conférence étaient régulièrement espacées le long de la grille - afin d'éviter les «anomalies gravitationnelles»: afin que les figures du haut n'attirent pas toute l'attention sur elles. Cette année, nous avons également refusé de poursuivre l'expérience avec un format de deux jours, et ce dans le contexte d'une augmentation du flux de candidatures, donc il ne manquait pas de bons experts. La forte concentration de locuteurs ayant des rapports solides a-t-elle rendu difficile le choix de qui et où aller écouter? Oui et non.
Grigory Petrov, directeur de programme, Moscow Python Conf ++:
«Les développeurs ont presque toujours une spécialisation (qui a l'apprentissage automatique, qui a la science des données), et dans la plupart des cas, tout le monde recherche le programme et visite les rapports qui correspondent à son profil. La tâche du comité de programme est donc d'empêcher une situation où, dans des flux parallèles, nous aurions eu des discours sur des sujets similaires et les gens se précipiteraient comme agités entre les salles. »
Bien sûr, Moscow Python Conf ++ 2019 avait des têtes d'affiche, cependant, en termes d'utilité pratique du matériel qu'ils ont préparé (ainsi que de l'histoire des histoires, etc.), ils ne contrastaient pas fortement avec la composition générale des intervenants. Sans porter atteinte aux mérites des 20 orateurs restants, nous décrirons plus en détail les quatre sujets centraux que nous avons sélectionnés sur la base de critères subjectifs et en partie sur le poids médiatique des experts.

Benjamin Peterson: Gouvernance Python

Benjamin Peterson, l'un des principaux développeurs de CPython et PyPy, est devenu le principal orateur, mais pas la seule superstar de la conférence. Entre autres choses, Benjamin travaille à Dropbox à San Francisco avec Guido van Rossum, le père fondateur de la langue. L'année dernière, il s'est licencié du poste de "généreux dictateur à vie" Python (dictateur bienveillant à vie, ou BDFL), et a donc eu besoin d'un "substitut". En tant que tel, un comité de cinq personnes a été formé sur une base élective - le Conseil directeur, qui, soit dit en passant, comprend van Rossum lui-même. Benjamin lui-même, selon son aveu, n'est pas entré dans cette structure: "Il a pris la sixième place au vote".
Malgré la célébrité du locuteur et la proximité avec le cœur de Python (littéralement - au cœur), son rapport était peut-être le moins orienté techniquement, plutôt conceptuel, avec le leitmotiv «Ce qui nous attend dans l'ère post-Guido». Pendant ce temps, ce n'est pas pour rien que le comité d'organisation a indiqué que quiconque utilise Python pour son travail, comme le public cible dans l'annonce de son discours. C'était la chose la plus importante pour la communauté.
Dans le rapport, Peterson a noté quelles transformations le modèle de développement CPython a subi, quelles voies d'évolution étaient possibles pour lui. Il a ensuite partagé ses points de vue sur l'avenir de Python: comment les versions linguistiques, le support, la bibliothèque standard, etc. (avec tous les PEP pertinents) changeront - décrit ce que cela signifie pour un large éventail de pythonistes et comment ils peuvent influencer le sort du langage et de l'écosystème . En général, il a décrit avec des traits nets comment la communauté va maintenant vivre. Cela n'est pas allé sans détails: par exemple, il est déclaré que les discussions sur le développement du langage seront mieux modérées, et maintenant il est censé utiliser GitHub pour travailler avec les bugs.
Après la conférence, Benjamin a admis avec plaisir que de nombreuses suggestions judicieuses sur le développement de Python lui étaient tombées en marge.
Grigory Bakunov: «Que faire si votre code Python ralentit»
Même si Bobuk préfère se certifier en tant que «faux programmeur» - «Cela ne me prend que 2 à 2,5 heures par jour pour programmer» - et sincère dans une telle autodétermination, il avait quelque chose à partager avec le public au sujet des peines et des joies de Python. Des conseils à la fois sur les moyens productifs et, comment pas, improductifs, d'accélérer l'exécution du code Python se déversaient de la scène. Émietté - et rentre bien dans leur tête: les thèses de Grégoire sont traditionnellement emballées avec une ergonomie extrême; sur ses rapports, il semble parfois que dans votre tête, ils jouent avec des idées dans Tetris.
Apparemment, une partie considérable de ces deux heures par jour consacrées au développement, le directeur de la diffusion de la technologie "Yandex" passe encore sur les exercices Python. Sinon, comment devrait-il savoir que numba pour l'accélération Python convient très bien de manière sélective - principalement en ce qui concerne les applications scientifiques, et Grumpy, le traducteur de Google du code Python dans Go, n'est guère une solution utilitaire fonctionnelle dans une infrastructure réelle.
En chemin, Gregory a ouvertement avoué son amour à «Nim et le prophète et nimpy», et a également traversé le «délicat» Cython, potentiellement capable d'empêcher l'exécution rapide du code. Il a résumé ses coups de fouet de vingt minutes:
- Parfois, PyPy suffit (si possible).
- L'optimisation du code simple est également importante.
- La boîte à outils doit être stable.
- N'ayez pas peur de l'ésotérisme, c'est amusant.
- Un vieil ami vaut mieux que les deux nouveaux.
Après le reportage et le bloc Q&R qui, en terme de durée, semblait dépasser le reportage, une trentaine de pythonistes ont entouré le «faux programmeur» et ne l'ont pas laissé partir très, très longtemps.
Vitaliy Levchenko: Python vs Go

Largement connu comme l'organisateur des rassemblements Go et fiabilité à Saint-Pétersbourg, Vitaly Levchenko a intitulé son discours délibérément provocateur. Et il l'a ouvert de façon non moins provocante: ils disent, s'il vous plaît, la réponse est à la surface - dans les benchmarks Web Go, c'est beaucoup plus rapide que Python (en rps), montrant dans certains cas plus de cinq fois la supériorité. Cependant, cette approche n'était qu'une excuse pour évaluer soigneusement les avantages et les inconvénients de Go par rapport à Python. Et l'essentiel est de montrer où est le plus efficace. Bien sûr, en tant que disciple de Go, il ne pouvait s'empêcher de se concentrer sur ses avantages - simplicité, absence de problèmes avec les mises à jour, un petit nombre de dépendances sur les bibliothèques externes, etc.
À la fin de sa «monobuttle» constructive, Vitaliy a partagé une histoire tirée de la pratique du développement dans laquelle la transition vers Go a décuplé la productivité. Compte tenu de la généralisation du bundle Python + Go en production aujourd'hui, de nombreux pythonistes invétérés ont clairement vu une comparaison-examen pour élargir leurs connaissances sur la portée de Go et sa place dans le backend des services en ligne modernes.
Eh bien, Python, selon l'ambassadeur du Go-camp, il est raisonnable de donner la préférence si:
- la vitesse d'amorçage de l'application est importante;
- besoin de résoudre des problèmes de science des données;
- le cœur se trouve à asynchroniser / attendre.
Maxim Lapshin: «L'élixir comme objectif de développement pour Python async»

Les organisateurs ont appelé le lauréat du prix HighLoad ++ 2018, le fondateur du produit de streaming vidéo erlyvideo, avec deux intentions: examiner comment les systèmes asynchrones distribués sont construits sur Python et comment ils peuvent être construits non pas dessus. La fondation erlyvideo est écrite en Erlang, cependant, une partie de la solution a été créée en Python, donc, de son propre aveu, Maxim a pu ressentir la douleur du fonctionnement des mécanismes de réseau de manière «Piton».
Révélant le sous-titre de la présentation - "Comment gérer ensemble les sockets, les threads et les données" (et qui ne veut pas!), Maxim a passé en revue les concepts existants du calcul parallèle, en particulier, comment ceux-ci sont mis en œuvre sur Erlang et Elixir. Sa tâche principale était de montrer par des exemples comment le contexte plus large des langages et technologies a influencé et influence la mise en œuvre des mécanismes de réseau en Python et dans quelle direction son «asynchronisme» évoluera. Après avoir souligné tous les avantages du calcul parallèle sur Erlang / Elixir, Maxim, dans un souci de justice, a décrit leurs coûts (y compris les performances sous-optimales et les «frais généraux» pour la copie de données entre les processus).
Qui par python
A en juger par les migrations du public sur le site et les salles surpeuplées, chaque intervenant a «décroché» avec son public, et nous en citerons quelques-uns.
La résonance a été déclenchée par un rapport d'Alexander Koshelev sur l'évolution du développement de Python dans Yandex (spoiler: dramatiquement). Et l'expérience et les recommandations de Kirill Borisov de Booking.com - il a parlé de mener des tests lors de la refactorisation du code hérité - sont tout simplement tombées dans la demande d'une bonne partie des personnes rassemblées pour l'écouter: elles ne voulaient pas non plus le laisser partir pendant longtemps.
Un autre invité étranger à la conférence, l'ingénieur cloud senior d'Alibaba, Qin Xuye, a également réussi en introduisant un cadre Python open source complet basé sur des tenseurs pour l'informatique à grande échelle. Un cas curieux d'apprentissage automatique a été raconté par Igor Kitsenko de HH.ru: des recommandations d'emploi de service ML, écrites en Python et - le point culminant du rapport - intégrées à un moteur de recherche en Java.
Grigory Petrov:
Le comité de programme a réuni des conférenciers avec lesquels les participants à l'événement aimeraient parler le plus. En effet, de notre point de vue, une conférence n'est pas un lieu où les gens viennent étudier sérieusement quelque chose. De plus, ce n'est pas un endroit où ils apprennent quelque chose de radicalement nouveau. C'est un endroit où les gens viennent discuter avec des collègues qui travaillent sur de vrais projets, surtout à huis clos. Oui, même s'ils sont ouverts, mais beaucoup n'écrivent toujours pas sur leur travail sur Habré ou Stackoverflow - souvent uniquement en raison de leur emploi effréné.
L'un de nos critères empiriques internes pour le choix d'un locuteur est de nous rendre intéressant, à l'occasion, pour lui parler d'un problème urgent de langage et de technologie, ainsi que pour poser des questions méticuleuses sur son travail. Le même Benjamin Peterson n'est en aucun cas un général de mariage. Il est un programmeur exceptionnel et une personne généralement polyvalente (joue en même temps parfaitement le piano) et, en particulier, s'occupe de tous les CI dans Dropbox. Quand il y avait une minute gratuite, nous avons expliqué comment leur entreprise avait organisé des tests de code Python sur d'énormes clusters, et ils ont commencé à le faire avant même GitLab. D'autres locuteurs de Moscou Python Conf ++ 2019 répondent également à ce critère. En tout cas, à notre avis.

Malgré la diversité de l'agenda de Moscou Python Conf ++, ses sujets les plus chauds étaient le développement asynchrone (il était inégalé), ainsi qu'une comparaison de Python, ses meilleures pratiques et outils avec des analogues d'autres langues et sa place dans le paysage du développement moderne. Comme le montrent les sujets des rapports, cela faisait partie du plan du comité de programme.
Et parler?
En plus du fait que la communication entre les conférenciers et les participants à la conférence a fait l'objet d'une attention accrue dans le programme de contenu principal, nous avons fait des efforts pour assurer que le réseautage au sein de la communauté se poursuive tout au long de la journée dans Moscou Python Conf ++.

Tout d'abord, des espaces de discussion équipés de cartes gratuites fonctionnaient dans le hall. Ils ont été utilisés pour rédiger des sujets préliminaires de litiges, auxquels tout le monde pouvait et devait adhérer: «Ai-je besoin d'une asynchronie en Python? - et ainsi de suite dans le même esprit hollywoodien.
«La socialisation emballée pour les introvertis» était l'un des organisateurs qui a décrit à moitié en plaisantant ce format de communication.
Certes, il était difficile de soupçonner les introvertis de ceux qui affluaient dans les zones de discussion: les participants au débat étaient trop chauds (mais amicaux). Eh bien, après le déjeuner, l'ensemble «Infraspace» semble s'être transformé en une zone de discussion continue.
Valentin Dombrovsky, co-fondateur de la communauté MoscowPython:
Le double stand Moscow Python + Pyladies Moscow et le stand commun des communautés régionales ont très bien fonctionné. Lors de la seconde, une réunion s'est tenue sur la façon dont les lieux de rencontre locaux des pythonistes sont organisés. Au cours de celle-ci, les participants se sont mis d'accord sur une collaboration: il y a de l'espoir que nous aurons éventuellement une métasociété - une communauté de communautés. Python, après tout, est un langage créé par la communauté.
Mais en général, la conférence s'est avérée être entièrement russe - ils ont rassemblé des gens de tout le pays, à l'exception de la capitale, y compris de Saint-Pétersbourg, Kazan, Krasnodar, Omsk, Oufa, Tcheliabinsk, Ivanov, Lipetsk, Novossibirsk. Certains sont déjà venus d'Estonie et d'Azerbaïdjan. Donc, peut-être, encore plus large que celui entièrement russe.
Sur les stands des partenaires - Iponweb et Evrone, - contrairement à ce qui est souvent le cas lors des conférences technologiques, le service de desserte ou les saisies ne se sont pas ennuyés, mais le mouvement s'est déployé. Tirages au sort, concours, mêmes discussions professionnelles, quiz - il y avait quelque chose à faire. A "IT-crocodile", à qui une master class en Arduino.

Soit en raison de l'intrigue dans le réseau de logiciels, soit du fait que le pari sur la communication a porté ses fruits, ou pour les deux raisons, plus de la moitié de tous ceux qui sont venus à la conférence se sont retrouvés immédiatement après. La fête a poursuivi la gamme générale de Moscou Python Conf ++, et la bière, une variété de collations et une part de fumées saines sont devenues un carburant supplémentaire pour le réseautage.


Grigory Petrov: La communauté vieillit et devient plus professionnelle. Je vois à la conférence de plus en plus de programmeurs de banques, de géants de l'informatique. Ces entreprises utilisent de plus en plus Python, et elles s'efforcent de développer leur marque RH et leur expertise avec la communauté. Maintenant, ici, vous pouvez discuter pleinement des approches de développement industriel et des problèmes complexes qui se posent lors de la résolution de problèmes commerciaux. Non seulement les problèmes d'architecture, mais, disons, comment organiser correctement le travail de l'équipe afin qu'elle obtienne des produits sympas à grande échelle tels que des assistants vocaux, des plateformes de télémédecine, des services financiers fondamentalement nouveaux et des logiciels pour les véhicules sans pilote.
Et ensuite?
Dans le PC, selon les premiers résultats de la conférence, les plans pour l'année suivante ont commencé à se former. Voici quelques idées que vous prévoyez de mettre en œuvre:
- Assurer l'arrivée de Guido Van Rossum - comme tâche maximale. Si ce n'est pas l'année prochaine, alors certainement à l'avenir.
- Appelez davantage de développeurs principaux et d'auteurs de bibliothèques populaires.
- Invitez des intervenants sympas sur des sujets qui n'ont pas été abordés lors de la dernière conférence, principalement sur la sécurité de l'information.
- Pour attirer plus de membres de l'équipe, de testeurs, d'analystes en tant que participants - tous ceux qui, n'étant pas un développeur au sens strict du terme, utilisent constamment Python dans leur travail.
- Il est possible de passer une journée séparée d'ateliers et d'introduire de nouveaux formats d'activité, notamment en impliquant des personnes de la communauté d'autres langues.
- Le merch que les participants demandent depuis si longtemps.


Amis PS, ceux qui n'ont pas réussi à participer à notre conférence, nous vous recommandons de vous abonner à
notre chaîne YouTube , où nous commencerons à télécharger des vidéos de discours vers la fin de l'été. Maintenant, il y a aussi quelque chose à regarder, puisque nous avons téléchargé presque tous les rapports de la conférence d'automne.