Esta serie de entrevistas está dedicada a
ScalaConf , la
primera conferencia real en Rusia dedicada por completo a Scala el 26 de noviembre. Antes de este evento, entrevisté a 6 testigos y "apóstoles" del origen del movimiento Scala en Rusia. No habrá discusión sobre Free, Tagless Final, Monix, IO o ZIO, y el "soborno" de Future. Mi objetivo es discutir Scala en un contexto histórico. Escribí todas las historias con barba, conduje hace 10 años y recopilé historias irrelevantes pero interesantes sobre el idioma.

La serie fue concebida en el formato "The Day Before" por Parfyonov - eventos, personas, fenómenos. Iba a encontrar a aquellos que alguna vez organizaron reuniones en Rusia, recopilar información de ellos sobre todo lo importante e interesante, clasificarlo y organizarlo por año. Cada entrevista comenzó con el hecho de que él pidió establecer el año de la historia con la mayor precisión posible. Sin embargo, las entrevistas no fueron lo que esperaba y no surgieron sus manos en el formato "El otro día". Por lo tanto, la serie contará historias en forma de una investigación personal. Cómo fue, en qué orden, cómo salí con la gente y qué sabía sobre ellos antes de la entrevista. Bajo el corte: interrogatorios y protocolos, los primeros proyectos en Scala, los primeros mitaps y el nacimiento del movimiento.
¿Qué esperar de la investigación?
Muchas historias de un formato de tecnología personal que de alguna manera están relacionadas con Scala. La mayoría de ellos se relacionan con 2011-2015, pero incluso un poco lograron devolver el de otra persona en
2007 2008. Los primeros proyectos y las razones para elegir un idioma. ¡Sobre proyectos fracasados también! Bibliotecas, ecosistema, IDE, los primeros mitaps en Moscú y San Petersburgo y eso es todo. En general, muchas cosas, incluso sin Kotlin, no podrían haberlo hecho.
Para formular expectativas más holísticas, en adelante enumeramos a las personas con las que nos comunicamos:
Roman Grebennikov ,
Roman Timushev ,
Alexander Podkhalyuzin ,
Vladimir Uspensky ,
Roman Elizarov ,
Alexey Fomkin y
Nikolai Tatarinov .
Hoy les contaré lo que hablaron con Roman Grebennikov y Roman Timushev.
Roman Grebennikov - 2011. Voronezh Beau monde y C ++ vs Erlang vs Scala

Entonces, el primer
sospechoso a quien fui fue
Roman . No sabía mucho sobre él, pero toda la evidencia indicaba que había estado en el tema Scala durante bastante tiempo. Cuando ir a una conferencia de Java no era bastante aburrido para mí, estaba en su
charla . Simultáneamente presentó tanto Scala como Clojure, pero con suficiente precaución para no sorprender a la audiencia. También me topé con diapositivas con slopokami del informe "
Rendimiento de Scala para escépticos ". Probablemente, el informe sigue siendo el único en ruso sobre este tema genial.
Habiendo descrito aproximadamente el concepto del artículo, fui a Roman para contarle sobre el antiguo movimiento Scala.
Roman Grebennikov: Para ser sincero, nunca intenté seguir el movimiento Scala en Rusia, porque era demasiado pequeño en comparación con el extranjero. En 2014, en Voronezh, tuvimos una sala de chat con toda la élite: 4 personas en toda la ciudad que sabían cómo usar Scala. Lo que pasó en Moscú y otras ciudades, no tengo idea :)
- Informativo De acuerdo con los clásicos del género, en una entrevista debería preguntar sobre los primeros proyectos y conocer el idioma.Roman Grebennikov: En algún lugar en 2011, vi una nueva empresa con amigos, que, sorprendentemente, sigue viva y rentable. La startup se dedicó a la calificación crediticia basada en datos públicos de las redes sociales. Antes de eso, escribí una disertación con código C ++ y, en paralelo, trabajé en un pequeño fondo de cobertura: hice todo tipo de estrategias y comercio algorítmico en C ++ desnudo. No es sorprendente que el primer prototipo de sistema de recopilación de datos también se haya escrito en C ++.
Luego resultó que C ++ no es un lenguaje ideal para tareas con asincronismo y distribución. En un buen momento de depuración de un núcleo de 20 GB, después de la próxima caída de nuestra telaraña, se me ocurrió la idea de elegir una herramienta más adecuada para nuestra tarea y no patear un caballo muerto. Analizamos tres candidatos de reemplazo: Erlang, Java y Scala. Escribimos tres prototipos en mi rodilla para llenar el número máximo de conos por adelantado.
A Erlang no le gustó la biblioteca estándar y el ecosistema muy pequeños que existen. Para cada uno, necesita montar en bicicleta una nueva biblioteca para cosas básicas que están casi en todas partes listas para usar. Los problemas de rendimiento también obstaculizaron la vida. En Java 2011, al derrame no le gustó la cantidad gigantesca de repeticiones para escribir para aplicaciones asincrónicas. Pero en Scala, a excepción de las mónadas oscuras y un scalaz alienígena, todo estaba bien con todo. Luego se lanzó Akka 2.0, en el que reescribimos todo. Sorprendentemente, partes de ese código funcionan hasta el día de hoy, aunque en 2019 no me jactaría de la calidad de ese código.
En el área de esos años, no fui el único que escribió en Scala en Voronezh. Por el bien del fanático, a veces organizamos pequeñas reuniones y nos contamos todo tipo de cosas extrañas. Los Mitapas estaban abiertos, y generalmente un grupo de javists se acercaba a ellos, que gruñían y gruñían al ver algún tipo de infierno como combinadores de analizadores. Luego hubo una pequeña sala de chat en Skype para discutir temas urgentes y atraer a un fanático. Ahora está completamente muerto, porque Telegram tiene @scala_ru.
Roman Timushev - 2012. El primer Akka, sbt-updates y el nacimiento de los mitaps de Moscú.

Nunca he estado en reuniones de Scala en Moscú, pero escuché sobre ellas en salas de chat y podcasts. Solo una persona estaba
activa a su alrededor:
Alexey Fomkin . Por lo tanto, ni siquiera pensé que alguien más podría llevarlos a cabo. Solo por casualidad descubrí que todavía había personas cuando buscaba información sobre el primer mitap y hojeaba la página en
meetup.com . Uno de ellos es
Roman Timushev , autor de
sbt-updates .
Roman Timushev: Vamos en orden. Soy de Nizhny Novgorod, vivía en Moscú y ahora me he mudado a Munich. Ingresé a Scala en 2012, cuando todavía existía la versión 2.9, y solo el primer Akka. Trabajó en Grid Dynamics, donde trabajamos en sistemas distribuidos, cachés, principalmente en la JVM.
Hubo una idea para crear un nuevo producto. Este es un inicio dentro de la empresa para administrar sistemas distribuidos, implementación, actualización, para todo lo que ahora se llama DevOps. Las personas se reunieron con un fondo completamente diferente: JVM, .NET, Python.
Y así nos sentamos, pensando en qué escribir un nuevo producto. Intentamos Python, Scala y algún tercer idioma. Desarrollamos prototipos, y a Scala le gustó más, especialmente después de Java: tipeo estático, todo. Por lo tanto, decidimos escribir sobre él y me metí en Scala.
En 2012, Scala se complicó con las bibliotecas. La mayor parte del ecosistema no estaba allí ahora. Había una pila de Twitter, pero estaba aislada, con sus propias características.
- Parece que todavía se ha mantenido así.Roman Timushev : En ese momento, todo estaba completamente allí, y ahora de alguna manera están tratando de unificar más partes con el resto del ecosistema. Luego había todo tipo de bibliotecas para HTTP: sin filtro, spray, scalaz. No había gatos en absoluto. Todo estuvo bien en la comunidad.
- Nadie maldijo?Roman Timushev: Tal vez lo juraron, pero no salió a la superficie.
Luego hubo solo los primeros Akka y Play. Observamos y pensamos que Akka encaja bien en nuestro sistema futuro. Parece genial, sin bloqueos, todo será rápido, confiable, escriba en Akka y elija Jugar.
Durante un tiempo sufrimos del primer Akka, me dolió. Todavía recuerdo
Future desde el primer Akka cuando un tiempo de espera estaba fuertemente cosido en ellos. Por defecto, el tiempo de espera duró 5 segundos. Cualquier combinador que llame crea un nuevo futuro con este tiempo de espera. Si quieres hacer algo que demore más de 5 segundos, entonces todo es finita la comedia. Fue doloroso, peleamos durante mucho tiempo, pero luego lanzamos el segundo Akka, el futuro apareció en Scala y la vida se hizo más fácil.
- ¿Tenías un distribuidor? Entonces akka-cluster no era?Roman Timushev: Me parece que, cuando comenzamos, todavía no había ningún grupo. Pero cuando apareció, lo arrastramos y rastrillamos problemas con todo tipo de cerebro dividido. Escribieron su resolución de cerebro dividido, que de alguna manera se resolvió a través de nuestra base de datos.
En aquellos días, muchos todavía usaban Eclipse. Parece que, por defecto, Eclipse era el IDE oficial de Scala. Desarrollamos nuestro proyecto y descubrimos todos los posibles errores cometidos por principiantes que vieron a Akka, Scala por primera vez, y eso es todo. A pesar de esto, el producto fue exitoso. De Scala solo hubo impresiones positivas.
- ¿Había una regla general para escribir en Eclipse?Roman Timushev: De alguna manera, sí, era normal.
- ¿Había tu propio complemento?Roman Timushev: Sí, había un complemento oficial que funcionaba bien. No recuerdo cómo funcionaba el complemento IDEA en ese momento, pero no estoy seguro de si era mejor. Eclipse siempre ha sido un poco extraño: vivo o no realmente.
Antes de cambiar a Scala, escribía principalmente en Java. Tuve que trabajar con Maven, Gradle. Había complementos en todas partes para actualizar las dependencias o al menos mirar. Para Scala, esto no fue así, así que tuve que escribir el mío y usarlo. Él todavía está vivo, la gente lo usa, todos están felices.
Las actualizaciones de Sbt se pueden usar como un complemento separado. Muestra actualizaciones de dependencia. Frank Thomas ahora está promoviendo activamente el
administrador de Scala . Debajo del capó, tiene el mismo complemento que una vez escribí. Por supuesto, además de este complemento, todavía hay mucha magia sobre cómo actualizar las dependencias en el zoológico de archivos.
Por un lado, no entiendo cómo las personas pueden vivir sin él. Por otro lado, cuando vengo a la empresa, y aquí ya en GitHub, la dependencia de mi proyecto es de alguna manera divertida.
- agradable?Roman Timushev: Sí, y por cierto, no es necesario agregarlo a los proyectos. Las actualizaciones de Sbt deben configurarse localmente, al igual que el gráfico de dependencia, etc.
- ¿Y luego qué pasó con el movimiento?Roman Timushev: Al principio, había poco movimiento, al menos en Rusia. En la empresa donde trabajaba, los viajes de negocios a los EE. UU. Estaban muy extendidos. Y allí, en el Valle, había mucho movimiento: eventos, reuniones, conferencias y todo lo demás. Varias veces a la semana, algo de Scala-mitap era obligatorio. Al llegar allí, algo sucede constantemente allí, regresar está vacío. Pensé en cómo solucionarlo y comencé una página de meetup.com para Scala Moscú.
Casi al mismo tiempo o incluso antes, Vlad Uspensky creó un grupo de Facebook en Scala en Moscú. Las primeras reuniones fueron organizadas por Vlad. De alguna manera, pasaron a toda la comunidad y aparecieron en la reunión después del hecho. A juzgar por la foto, había 25 personas allí.
Y luego estaba el siguiente, ya real mitap en la oficina de Tinkoff, que también fue organizada por Vlad. Se registraron 50 personas, hubo algunos informes interesantes.
Más tarde, gracias a Misha, apareció una segunda plataforma: el Instituto de Investigación "Voskhod". No recuerdo por qué el Instituto de Investigación Científica Voskhod hizo algo en Scala, pero estaban interesados en desarrollar la comunidad y organizar reuniones.
- ¿Y dónde tuvo lugar toda la comunicación? ¿En Facebook o hubo algún tipo de sala de chat?Roman Timushev: Sí, había un grupo en Facebook. pero no muy activo Periódicamente se publicaba información sobre mitaps, había pequeñas discusiones. También había un grupo en Skype, siempre había algunos holivars allí. Telegram aún no ha sido.
Las reuniones no eran muy regulares: todos tenían trabajo, viajes de negocios, negocios. Luego Vlad fue a los Estados Unidos, yo a Alemania, y todo estaba casi doblado. Por lo tanto, estoy muy contento de que esté surgiendo un nuevo movimiento, de que estén organizando una conferencia de Scala.
- ¿Cómo te gusta en Alemania?Roman Timushev: Estoy en Munich, hay un buen y bastante Scala. También escribimos proyectos en Scala. Tengo un proyecto para mascotas en Haskell, pero en el trabajo principalmente Scala.
- Has estado escribiendo en Scala durante casi 10 años. ¿Vas a llegar al final usando el haskalator?Roman Timushev: Uno no interfiere con el otro. Estuve dando vueltas por Haskell durante bastante tiempo, pero ahora me gusta como idioma. Hay algunas cosas que empiezo a echar de menos en Scala. Pero Scala también tiene algo que es más difícil de hacer en Haskell. Es bueno cuando hay una opción, y todos encuentran lo que mejor se adapta a su negocio.
- Entonces, ¿sigues satisfecho con el idioma? ¿Cómo ves Scala 3, tienes miedo?Roman Timushev: Tengo sentimientos encontrados. Cuando llegué a Scala, quedé muy impresionado con la forma en que un número muy pequeño de conceptos logró crear tantas funciones interesantes. Me pareció que Scala es un buen ejemplo de cómo, con tres conceptos básicos, es posible implementar casi toda la variedad: clases de tipos, métodos de extensión. Me pareció genial, y es una pena que en la tercera Scala se vaya.
En el aspecto práctico, será más fácil educar a las personas, ingresar al idioma también será más fácil. Quizás haya una escritura más uniforme en Scala, y eso también es una ventaja. Espera y mira. Estoy seguro de que los desarrolladores de Scala lo pensaron y lo regalaron por alguna razón.
- Yo también quería preguntar. ¿Había un rodillo en Tinkoff entonces o no?Roman Timushev: Scala ya estaba en Tinkov entonces. No puedo decir nada sobre Tinkoff, pero hubo algunos desarrolladores que escribieron en Scala. Hable sobre eso con Vlad: podrá contar mucho más, ya que trabajó allí.
Esta es la primera parte de una "investigación" sobre el movimiento ruso Scala. La historia de detectives no terminó allí. En la próxima serie: conocimiento de Vlad y un nuevo sospechoso inesperado, una entrevista que será para todo el próximo artículo. Estén atentos para que nada se pierda.
Si desea agregar nuevas facetas a la historia del movimiento Scala o compartir su experiencia de uso, envíe informes . El plazo de alimentación es de 29 días. 6 días antes de la próxima fecha límite para aumentos de precios: reserve sus boletos .