Cette série d'interviews est dédiée à
ScalaConf , la
première vraie conférence en Russie entièrement dédiée à Scala le 26 novembre. Avant cet événement, j'ai interviewé 6 témoins et «apôtres» de l'origine du mouvement Scala en Russie. Il n'y aura pas de discussion sur Free, Tagless Final, Monix, IO ou ZIO, et le «recul» de Future. Mon objectif est de discuter de Scala dans un contexte historique. J'ai écrit toutes les histoires barbus, je suis revenu en voiture il y a 10 ans et j'ai rassemblé des histoires non pertinentes mais intéressantes sur la langue.

La série a été conçue sous le format de la «Journée de Parmenov» - événements, personnes, phénomènes. J'allais trouver ceux qui avaient déjà organisé des réunions en Russie, recueillir des informations sur tout ce qui était important et intéressant, les trier et les organiser par année. Chaque entretien a commencé par le fait qu'il avait demandé d'établir l'année de l'histoire aussi précisément que possible. Mais, les interviews se sont avérées ne pas être ce à quoi je m'attendais et se couper les mains dans le format «The Other Day» n'a pas augmenté. Par conséquent, la série racontera des histoires sous la forme d'une enquête personnelle. Comment c'était, dans quel ordre, comment je suis allé voir les gens et ce que je savais d'eux avant l'entretien. Sous la coupe - interrogatoires et protocoles, les premiers projets sur Scala, les premiers mitaps et la naissance du mouvement.
À quoi s'attendre de l'enquête?
Beaucoup d'histoires d'un format technologique personnel qui sont en quelque sorte liées à Scala. La plupart d'entre eux se rapportent à 2011-2015, mais même un peu ont quand même réussi à rendre quelqu'un d'autre en
2007 2008. Les premiers projets et les raisons du choix d'une langue. À propos des projets infructueux aussi! Bibliothèques, écosystème, IDE, les premiers mitaps à Moscou et à Saint-Pétersbourg et c'est tout. En général - beaucoup de choses, même sans Kotlin, n'auraient pas pu le faire.
Pour formuler des attentes plus holistiques, nous
énumérons ci-après les personnes avec
lesquelles nous avons réussi à communiquer:
Roman Grebennikov ,
Roman Timushev ,
Alexander Podkhalyuzin ,
Vladimir Uspensky ,
Roman Elizarov ,
Alexey Fomkin et
Nikolai Tatarinov .
Aujourd'hui, je vais vous dire de quoi ils ont parlé avec Roman Grebennikov et Roman Timushev.
Roman Grebennikov - 2011. Voronezh Beau monde et C ++ vs Erlang vs Scala

Donc, le premier
suspect à qui je suis allé était
Roman . Je ne savais pas grand-chose sur lui, mais toutes les preuves indiquaient qu'il était dans le thème Scala depuis un certain temps. Quand aller à une conférence Java n'était pas assez ennuyeux pour moi, j'étais à son
discours . Il présentait simultanément Scala et Clojure, mais avec suffisamment de prudence pour ne pas choquer le public. J'ai également trébuché sur des diapositives avec slopokami du rapport "
Scala performance for doubs ". Le rapport est probablement toujours le seul en russe concernant ce sujet cool de perfomance.
Ayant décrit approximativement le concept de l'article, je suis allé voir Roman pour lui parler de l'ancien mouvement Scala.
Roman Grebennikov: Pour être honnête, je n'ai jamais essayé de suivre le mouvement Scala en Russie, car il était trop petit par rapport à l'étranger. En 2014, à Voronej, nous avons eu un salon de discussion avec toute l'élite - 4 personnes dans toute la ville qui savaient utiliser Scala. Que s'est-il passé à Moscou et dans d'autres villes, je n'en ai aucune idée :)
- Informatif. Selon les classiques du genre, dans une interview je devrais poser des questions sur les premiers projets et la connaissance de la langue.Roman Grebennikov: Quelque part en 2011, j'ai vu une start-up avec des amis, qui, étonnamment, est toujours vivante et rentable. La startup était engagée dans la notation de crédit basée sur des données publiques provenant des réseaux sociaux. Avant cela, j'ai écrit une thèse avec du code C ++ et travaillé en parallèle dans un petit hedge fund - j'ai fait toutes sortes de stratégies et de trading algorithmique en C ++ nu. Sans surprise, le premier prototype de système de collecte de données a également été écrit en C ++.
Ensuite, il s'est avéré que C ++ n'est pas un langage idéal pour les tâches avec asynchronisme et distribution. À un beau moment de débogage d'un coredump de 20 Go, après la prochaine chute de notre web spider, l'idée m'est venue à l'esprit de choisir un outil plus adapté à notre tâche et de ne pas botter un cheval mort. Nous avons examiné trois candidats de remplacement: Erlang, Java et Scala. Nous avons écrit trois prototypes sur mon genou afin de remplir à l'avance le nombre maximum de cônes.
Erlang n'aimait pas la très petite bibliothèque standard et l'écosystème autour. Pour tout le monde, vous devez faire du vélo une nouvelle bibliothèque pour les choses de base qui sont presque partout hors de la boîte. Des problèmes de performance ont également entravé la vie. En Java 2011, le déversement n'aimait pas la quantité gigantesque de passe-partout à écrire pour les applications asynchrones. Mais à Scala, à l'exception des monades obscures et d'une scalaz extraterrestre, tout allait bien avec tout. Puis Akka 2.0 est sorti, sur lequel nous avons tout réécrit. Étonnamment, des morceaux de ce code fonctionnent à ce jour, bien qu'en 2019 je ne me vanterais pas de la qualité de ce code.
Dans le domaine de ces années, je n'étais pas le seul à écrire à Scala à Voronej. Pour le plaisir du fan, nous organisions parfois de petites réunions et nous nous disions toutes sortes de choses étranges. Les mitapas étaient ouverts, et généralement un tas de javistes venaient vers eux, qui gémissaient et gémissaient à la vue d'une sorte d'enfer comme des combinateurs d'analyseurs. Ensuite, il y avait une petite salle de discussion sur Skype pour discuter des problèmes urgents et lancer un ventilateur. Maintenant, il est complètement mort, car Telegram a @scala_ru.
Roman Timushev - 2012. Les premiers Akka, sbt-updates et la naissance des mitaps de Moscou.

Je ne suis jamais allé aux réunions Scala de Moscou, mais j'en ai entendu parler dans les bavardoirs et les podcasts. Une seule personne était
active autour d'eux -
Alexey Fomkin . Par conséquent, je ne pensais même pas que quelqu'un d'autre pouvait les réaliser. Ce n'est que par hasard que j'ai découvert qu'il y avait encore du monde quand je cherchais des informations sur le premier mitap et parcourais la page sur
meetup.com . L'un d'eux est
Roman Timushev , auteur de
sbt-updates .
Roman Timushev: Allez dans l'ordre. Je viens de Nizhny Novgorod, j'habitais à Moscou et maintenant j'ai déménagé à Munich. Je suis entré à Scala en 2012, lorsque la version 2.9 existait encore, et seulement le premier Akka. Il a travaillé chez Grid Dynamics, où nous avons travaillé sur les systèmes distribués, les caches, principalement sur la JVM.
Il y avait une idée pour créer un nouveau produit. Il s'agit d'une start-up au sein de l'entreprise pour la gestion des systèmes distribués, le déploiement, la mise à jour - pour tout ce qui s'appelle désormais DevOps. Les gens se sont réunis avec une expérience complètement différente: JVM, .NET, Python.
Et donc nous nous sommes assis, pensant à quoi écrire un nouveau produit. Nous avons essayé Python, Scala et une troisième langue. Nous avons développé des prototypes, et Scala l'aimait davantage, surtout après Java - typage statique, tout. Par conséquent, nous avons décidé d'écrire dessus et je suis donc entré à Scala.
En 2012, Scala était compliqué avec les bibliothèques. La majeure partie de l'écosystème n'était pas là maintenant. Il y avait une pile Twitter, mais elle était isolée, avec ses propres caractéristiques.
- Il semble qu'il soit toujours resté ainsi.Roman Timushev : À cette époque, tout était complètement là, et maintenant ils essaient en quelque sorte d'unifier plus de parties avec le reste de l'écosystème. Ensuite, il y avait toutes sortes de bibliothèques pour HTTP: non filtré, spray, scalaz. Il n'y avait aucun chat du tout. Tout allait bien dans la communauté.
- Personne n'a maudit?Roman Timushev: Peut
- être qu'ils ont juré, mais cela n'a pas remonté à la surface.
Puis il n'y avait alors que le premier Akka and Play. Nous avons regardé et pensé qu'Akka s'intègre bien dans notre futur système. Cela semble cool, pas de verrous, tout sera rapide, fiable, écrivons sur Akka et choisissons Play.
Pendant un certain temps, nous avons souffert de la première Akka - ça faisait mal. Je me souviens encore de
Future du premier Akka quand un temps mort était étroitement cousu en eux. Par défaut, le délai d'attente a duré 5 secondes. Tout combinateur que vous appelez crée un nouvel avenir avec ce délai. Si vous voulez faire quelque chose qui dure plus de 5 secondes, alors tout est finit la comédie. C'était douloureux, nous nous sommes battus pendant longtemps, mais ensuite nous avons lancé le deuxième Akka, l'avenir est apparu à Scala et la vie est devenue plus facile.
- Aviez-vous un distributeur? Alors akka-cluster n'était pas?Roman Timushev: Il me semble que lorsque nous avons commencé, il n'y avait pas encore de cluster. Mais quand il est apparu, nous l'avons traîné et ratissé des problèmes avec toutes sortes de cerveaux fendus. Ils ont écrit leur split-brain-resolver, qui a en quelque sorte résolu grâce à notre base de données.
À cette époque, beaucoup utilisaient encore Eclipse. Il semble qu'Eclipse était par défaut l'IDE Scala officiel. Nous avons développé notre projet et repéré toutes les erreurs possibles des débutants qui ont vu Akka, Scala pour la première fois, et c'est tout. Malgré cela, le produit a réussi. De Scala, il n'y a eu que des impressions positives.
- Y avait-il une règle générale pour écrire sur Eclipse?Roman Timushev: D'une certaine manière, oui, c'était normal.
- Y avait-il votre propre plugin?Roman Timushev: Oui, il y avait un plugin officiel qui fonctionnait bien. Je ne me souviens pas comment le plugin IDEA fonctionnait alors, mais je ne sais pas si c'était mieux. Eclipse a toujours été un peu bizarre: vivant ou pas vraiment.
Avant de passer à Scala, j'écrivais principalement en Java. J'ai dû travailler avec Maven, Gradle. Il y avait des plugins partout pour mettre à jour les dépendances ou au moins regarder. Pour Scala, ce n'était pas le cas, j'ai donc dû écrire le mien et l'utiliser. Il est toujours vivant, les gens l'utilisent - tout le monde est heureux.
Les mises à jour Sbt peuvent être utilisées comme un plugin séparé. Il affiche les mises à jour des dépendances. Frank Thomas fait maintenant la promotion active du
scala-steward . Sous le capot, il a le même plugin que j'ai écrit une fois. Bien sûr, en plus de ce plugin, il y a encore beaucoup de magie sur la façon de mettre à jour les dépendances dans le zoo des fichiers.
D'une part, je ne comprends pas comment les gens peuvent vivre sans. D'un autre côté, quand je viens dans l'entreprise, et ici déjà sur GitHub, la dépendance à mon projet est en quelque sorte drôle.
- Sympa?Roman Timushev: Oui, et en passant, il n'a pas besoin d'être ajouté aux projets. Les mises à jour Sbt doivent être configurées localement, tout comme le graphique de dépendance, etc.
- Et que s'est-il passé avec le mouvement?Roman Timushev: Au début, il y avait peu de mouvement, du moins en Russie. Dans l'entreprise où je travaillais, les voyages d'affaires aux États-Unis étaient très répandus. Et là, dans la vallée, il y avait beaucoup de mouvement: événements, réunions, conférences et tout le reste. Plusieurs fois par semaine, un Scala-mitap était obligatoire. En arrivant là-bas, quelque chose se passe constamment là-bas, le retour est vide. J'ai réfléchi à la façon de le réparer et j'ai créé une page meetup.com pour Scala Moscou.
À la même époque ou même plus tôt, Vlad Uspensky a créé un groupe Facebook sur Scala à Moscou. Les premières réunions ont été organisées par Vlad. D'une manière ou d'une autre, ils ont dépassé toute la communauté et sont apparus sur la rencontre après coup. A en juger par la photo, il y avait 25 personnes.
Et puis il y avait le prochain, déjà réel mitap dans le bureau de Tinkoff, également organisé par Vlad. 50 personnes ont été enregistrées, il y a eu des rapports intéressants.
Plus tard, grâce à Misha, une deuxième plate-forme est apparue - l'Institut de recherche «Voskhod». Je ne me souviens pas pourquoi le Voskhod Scientific Research Institute a fait quelque chose sur Scala, mais ils étaient intéressés à développer la communauté et à organiser des réunions.
- Et où a eu lieu toute la communication? Sur Facebook ou y avait-il une sorte de chat?Roman Timushev: Oui, il y avait un groupe sur Facebook. mais pas très actif. Il y avait périodiquement des informations sur les mitaps, il y avait de petites discussions. Il y avait aussi un groupe sur Skype - il y avait toujours des holivars là-bas. Le télégramme n'a pas encore été.
Les réunions n'étaient pas très régulières - tout le monde avait du travail, des voyages d'affaires, des affaires. Ensuite, Vlad est allé aux États-Unis, moi en Allemagne, et tout était presque courbé. Je suis donc très heureux qu'un nouveau mouvement émerge, que vous organisiez une conférence Scala.
- Comment aimez-vous en Allemagne?Roman Timushev: Je suis à Munich, il y a une bonne et beaucoup de Scala. Nous écrivons également des projets sur Scala. J'ai un projet pour animaux de compagnie sur Haskell, mais je travaille principalement sur Scala.
- Vous écrivez sur Scala depuis près de 10 ans. Allez-vous arriver à la fin en utilisant le haskalator?Roman Timushev: L'un n'interfère pas avec l'autre. Pendant un certain temps, j'ai fait le tour de Haskell, mais maintenant je l'aime comme langue. Il y a des choses que je commence à manquer à Scala. Mais Scala a aussi quelque chose de plus difficile à faire à Haskell. C’est bien quand il y a un choix et que chacun trouve ce qui convient le mieux à son entreprise.
- Alors, êtes-vous toujours satisfait de la langue? Comment voyez-vous Scala 3, avez-vous peur?Roman Timushev: J'ai des sentiments mitigés. Quand je suis arrivé à Scala, j'ai été très impressionné par la façon dont un très petit nombre de concepts ont réussi à créer autant de fonctionnalités intéressantes. Il m'a semblé que Scala est un bon exemple de la façon dont, avec trois concepts de base, il est possible d'implémenter presque toute la variété: classes de types, méthodes d'extension. Ça m'a paru cool, et c'est dommage que dans la troisième Scala ça part.
Sur le plan pratique, il sera plus facile d'éduquer les gens, l'entrée dans la langue sera également plus facile. Il y aura peut-être une écriture plus uniforme en Scala, et c'est aussi un plus. Attendez et voyez. Je suis sûr que les développeurs de Scala y ont pensé et l'ont donné pour une raison.
- Je voulais aussi demander. Y avait-il ou non un rouleau à pâtisserie à Tinkoff?Roman Timushev: Scala était déjà à Tinkov à l'époque. Je ne peux pas dire pour l'ensemble de Tinkoff, mais il y avait pas mal de développeurs qui écrivent sur Scala. Parlez-en à Vlad - il pourra en dire beaucoup plus, puisqu'il y a travaillé.
Il s'agit de la première partie d'une «enquête» sur le mouvement russe Scala. L'histoire du détective ne s'arrête pas là. Dans la prochaine série: connaissance de Vlad et d'un nouveau suspect inattendu, dont une interview sera pour tout le prochain article. Restez à l'écoute pour ne rien manquer.
Si vous souhaitez ajouter de nouvelles facettes à l'histoire du mouvement Scala ou partager votre expérience d'utilisation, soumettez des rapports . La date limite du flux est de 29 jours. 6 jours avant la prochaine date limite pour les augmentations de prix - réservez vos billets .