Seguindo os passos do movimento russo Scala. Parte 1

Esta série de entrevistas é dedicada ao ScalaConf - a primeira conferência real na Rússia dedicada inteiramente ao Scala, que será realizada em 26 de novembro. Antes deste evento, entrevistei 6 testemunhas e “apóstolos” da origem do movimento Scala na Rússia. Não haverá discussão sobre Free, Tagless Final, Monix, IO ou ZIO, e a “propina” do futuro. Meu objetivo é discutir Scala em um contexto histórico. Escrevi todas as histórias barbadas, voltei 10 anos atrás e coletei histórias irrelevantes, mas interessantes, sobre o idioma.



A série foi concebida no formato "The Day Before" por Parfyonov - eventos, pessoas, fenômenos. Eu ia encontrar aqueles que já organizaram reuniões na Rússia, coletaram informações sobre tudo que era importante e interessante, separaram e organizaram por ano. Cada entrevista começou com o fato de que ele pediu para estabelecer o ano da história com a maior precisão possível. Mas, as entrevistas acabaram não sendo o que eu esperava e cortando suas mãos no formato “O Outro Dia” não se levantou. Portanto, a série contará histórias na forma de uma investigação pessoal. Como foi, em que ordem, como saí para as pessoas e o que sabia sobre elas antes da entrevista. Sob o corte - interrogatórios e protocolos, os primeiros projetos em Scala, as primeiras mitaps e o nascimento do movimento.

O que esperar da investigação?


Muitas histórias de um formato de tecnologia pessoal que estão de alguma forma relacionadas ao Scala. A maioria deles se refere a 2011-2015, mas ainda um pouco conseguiu devolver o de 2007 de outra pessoa. Os primeiros projetos e os motivos da escolha de um idioma. Sobre projetos malsucedidos também! Bibliotecas, ecossistema, IDE, as primeiras mitaps em Moscou e São Petersburgo e isso é tudo. Em geral - muitas coisas, mesmo sem Kotlin, não poderiam ter feito.

Para formular expectativas mais holísticas, a seguir listamos as pessoas com quem conseguimos nos comunicar: Roman Grebennikov , Roman Timushev , Alexander Podkhalyuzin , Vladimir Uspensky , Roman Elizarov , Alexey Fomkin e Nikolai Tatarinov .

Hoje vou contar o que eles conversaram com Roman Grebennikov e Roman Timushev.

Roman Grebennikov - 2011. Voronezh Beau Monde e C ++ vs Erlang vs Scala


Então, o primeiro suspeito a quem eu fui foi romano . Eu não sabia muito sobre ele, mas todas as evidências indicavam que ele estava no tema Scala há algum tempo. Quando ir a uma conferência sobre Java não foi muito chato para mim, eu estava na conversa dele. Apresentava simultaneamente Scala e Clojure, mas com cautela suficiente para não chocar o público. Também tropecei nos slides com slopokami do relatório " Desempenho do Scala para quem duvida ". Provavelmente, o relatório ainda é o único em russo sobre esse tópico interessante de desempenho.

Tendo descrito aproximadamente o conceito do artigo, fui a Roman para falar sobre o antigo movimento Scala.

Roman Grebennikov: Para ser sincero, nunca tentei seguir o movimento Scala na Rússia, porque era muito pequeno comparado ao estrangeiro. Em 2014, em Voronezh, tivemos uma sala de bate-papo com toda a elite - 4 pessoas em toda a cidade que sabiam usar o Scala. O que aconteceu em Moscou e outras cidades, não faço ideia :)

- Informativo. De acordo com os clássicos do gênero, em uma entrevista eu deveria perguntar sobre os primeiros projetos e familiaridade com o idioma.

Roman Grebennikov: Em 2011, vi uma start-up com amigos, que, surpreendentemente, ainda está viva e lucrativa. A startup estava envolvida na pontuação de crédito com base em dados públicos das redes sociais. Antes disso, escrevi uma dissertação com código C ++ e trabalhei em paralelo em um pequeno fundo de hedge - fiz todo tipo de estratégias e negociação algorítmica em C ++ simples. Não é de surpreender que o primeiro protótipo de sistema de coleta de dados também tenha sido escrito em C ++.

Então, descobriu-se que o C ++ não é uma linguagem ideal para tarefas com assincronismo e distribuição. Em um belo momento de depuração de um coletor de lixo de 20 GB, após a próxima queda de nossa teia de aranha, surgiu a idéia de escolher uma ferramenta mais adequada para nossa tarefa e não chutar um cavalo morto. Analisamos três candidatos substitutos: Erlang, Java e Scala. Escrevemos três protótipos no meu joelho para preencher o número máximo de cones com antecedência.

Erlang não gostou da biblioteca e ecossistema padrão muito pequenos. Para cada um, você precisa montar uma nova biblioteca de itens básicos que estão quase todos os lugares fora da caixa. Problemas de desempenho também dificultavam a vida. No Java 2011, o vazamento não gostou da quantidade gigantesca de clichê para gravar em aplicativos assíncronos. Mas em Scala, exceto por mônadas obscuras e um scalaz alienígena, tudo estava bem com tudo. Então o Akka 2.0 foi lançado, no qual reescrevemos tudo. Surpreendentemente, partes desse código funcionam até hoje, embora em 2019 eu não me gabasse da qualidade desse código.

Na área daqueles anos, eu não fui o único que escreveu em Scala em Voronezh. Para o bem dos fãs, às vezes organizávamos pequenas reuniões e contávamos todo tipo de coisas estranhas. Mitapas estavam abertas, e geralmente um monte de javistas vinham até eles, que gemia e gemia ao ver algum tipo de inferno como combinadores de analisadores. Depois, havia uma pequena sala de bate-papo no Skype para discutir questões urgentes e atrair fãs. Agora ele está completamente morto, porque o Telegram tem @scala_ru.

Roman Timushev - 2012. Os primeiros Akka, atualizações sbt e o nascimento de Moscou mitaps.


Nunca participei de reuniões do Scala em Moscou, mas ouvi falar delas em salas de bate-papo e podcasts. Apenas uma pessoa estava ativa ao seu redor - Alexey Fomkin . Portanto, eu nem pensei que alguém pudesse executá-las. Foi por acaso que descobri que ainda havia pessoas quando procurava informações sobre o primeiro mitap e folheava a página no meetup.com . Um deles é Roman Timushev , autor de atualizações sbt .

Roman Timushev: Vamos em ordem. Eu sou de Níjni Novgorod, morei em Moscou e agora me mudei para Munique. Entrei no Scala em 2012, quando a versão 2.9 ainda existia, e apenas o primeiro Akka. Ele trabalhou na Grid Dynamics, onde trabalhamos em sistemas distribuídos, caches, principalmente na JVM.

Havia uma ideia para criar um novo produto. Essa é uma empresa iniciante na empresa para gerenciar sistemas distribuídos, implantação, atualização - para tudo o que agora é chamado de DevOps. As pessoas se reuniram com um background completamente diferente: JVM, .NET, Python.

E assim nos sentamos, pensando no que escrever um novo produto. Tentamos Python, Scala e alguma terceira língua. Desenvolvemos protótipos e o Scala gostou mais, especialmente depois da digitação estática em Java, tudo. Por isso, decidimos escrever e, então, entrei no Scala.

Em 2012, Scala era tudo complicado com bibliotecas. A maior parte do ecossistema não estava lá agora. Havia uma pilha do Twitter, mas era isolada, com suas próprias características.

- Parece que ele ainda permaneceu assim.

Roman Timushev : Naquela época, tudo estava completamente lá, e agora eles estão de alguma forma tentando unir mais partes com o resto do ecossistema. Depois, havia todo o tipo de bibliotecas para HTTP: não filtrado, spray, scalaz. Não havia gatos. Tudo estava bem na comunidade.

- Ninguém amaldiçoou?

Roman Timushev: Talvez eles juraram, mas não se arrastou para a superfície.
Depois, houve apenas o primeiro Akka and Play. Observamos e pensamos que o Akka se encaixa bem em nosso sistema futuro. Parece legal, sem bloqueios, tudo será rápido, confiável, vamos escrever no Akka e escolher Play.

Por algum tempo sofremos com o primeiro Akka - doeu. Ainda me lembro de Future desde o primeiro Akka, quando um tempo limite foi costurado neles. Por padrão, o tempo limite durou 5 segundos. Qualquer combinador que você chama cria um novo futuro com esse tempo limite. Se você quer fazer algo que leva mais de 5 segundos, tudo é finita la comedy. Foi doloroso, brigamos por um longo tempo, mas depois lançamos o segundo Akka, o futuro apareceu em Scala e a vida ficou mais fácil.

- Você tinha um distribuidor? Então akka-cluster não era?

Roman Timushev: Parece-me que, quando começamos, ainda não havia um cluster. Mas quando ele apareceu, nós o arrastamos e resolvemos problemas com todos os tipos de cérebro dividido. Eles escreveram seu resolvedor de cérebro dividido, que de alguma forma foi resolvido através de nosso banco de dados.

Naqueles dias, muitos ainda usavam o Eclipse. Parece que, por padrão, o Eclipse era o IDE oficial do Scala. Desenvolvemos nosso projeto e capturamos todos os erros possíveis cometidos por iniciantes que viram Akka, Scala pela primeira vez, e isso é tudo. Apesar disso, o produto foi bem-sucedido. De Scala, houve apenas impressões positivas.

- Havia uma regra geral para escrever no Eclipse?

Roman Timushev: De alguma forma, sim, era normal.

- Havia seu próprio plugin?

Roman Timushev: Sim, houve um plugin oficial que funcionou bem. Não me lembro como o plug-in IDEA funcionou, mas não tenho certeza se era melhor. Eclipse sempre foi meio estranho: vivo ou não.

Antes de mudar para o Scala, escrevi principalmente em Java. Tive que trabalhar com Maven, Gradle. Havia plugins em todos os lugares para atualizar dependências ou pelo menos assistir. Para Scala, não era, então eu tive que escrever o meu e usá-lo. Ele ainda está vivo, as pessoas usam - todo mundo está feliz.

O Sbt-updates pode ser usado como um plug-in separado. Mostra atualizações de dependência. Agora, Frank Thomas está promovendo ativamente o mordomo . Sob o capô, ele tem o mesmo plugin que escrevi uma vez. Obviamente, além deste plugin, ainda há muita mágica sobre como atualizar dependências no zoológico de arquivos.

Por um lado, não entendo como as pessoas podem viver sem ele. Por outro lado, quando eu chego à empresa, e aqui já no GitHub, a dependência do meu projeto é de alguma forma engraçada.

- legal?

Roman Timushev: Sim, e a propósito, ele não precisa ser adicionado aos projetos. As atualizações Sbt devem ser configuradas localmente, assim como o gráfico de dependência, etc.

- E então o que aconteceu com o movimento?

Roman Timushev: No começo, havia pouco movimento, pelo menos na Rússia. Na empresa em que trabalhei, as viagens de negócios aos EUA foram generalizadas. E lá, no Vale, havia muito movimento: eventos, reuniões, conferências e tudo mais. Várias vezes por semana, alguns Scala-mitap eram obrigatórios. Chegando lá, algo acontece constantemente lá, o retorno está vazio. Pensei em como corrigi-lo e iniciei uma página meetup.com para o Scala Moscow.

Mais ou menos na mesma época, Vlad Uspensky criou um grupo no Facebook no Scala em Moscou. As primeiras reuniões foram organizadas por Vlad. De alguma forma, eles passaram por toda a comunidade e apareceram no encontro após o fato. A julgar pela foto, havia 25 pessoas lá.

E havia o próximo, já real, mitap no escritório de Tinkoff, que também foi organizado por Vlad. 50 pessoas foram registradas, houve alguns relatos interessantes.

Mais tarde, graças a Misha, apareceu uma segunda plataforma - o Instituto de Pesquisa "Voskhod". Não me lembro por que o Instituto de Pesquisa Científica Voskhod fez algo em Scala, mas eles estavam interessados ​​em desenvolver a comunidade e organizar reuniões.

- E onde toda a comunicação ocorreu? No Facebook ou havia algum tipo de sala de bate-papo?

Roman Timushev: Sim, havia um grupo no Facebook. mas não muito ativo. Periodicamente, havia informações pós-mitaps, pequenas discussões. Havia também um grupo no Skype - sempre havia algumas holivares lá. O telegrama ainda não foi.

As reuniões não eram muito regulares - todos tinham trabalho, viagens de negócios, negócios. Então Vlad foi para os EUA, eu para a Alemanha, e tudo estava quase dobrado. Portanto, estou muito satisfeito por um novo movimento estar surgindo, por você estar organizando uma conferência Scala.

- Como você gosta na Alemanha?

Roman Timushev: Estou em Munique, há um Scala bom e bastante. Também escrevemos projetos no Scala. Eu tenho um projeto de estimação em Haskell, mas no trabalho principalmente Scala.

- Você escreve sobre Scala há quase 10 anos. Você vai chegar ao fim usando o haskalator?

Roman Timushev: Um não interfere no outro. Durante algum tempo eu andei por Haskell, mas agora gosto disso como um idioma. Há algumas coisas que estou começando a sentir falta em Scala. Mas Scala também tem algo que é mais difícil de fazer em Haskell. É bom quando existe uma escolha e todo mundo encontra o que é mais adequado para seus negócios.

- Então, você ainda está satisfeito com o idioma? Como você vê Scala 3, está com medo?

Roman Timushev: Eu tenho sentimentos contraditórios. Quando cheguei à Scala, fiquei muito impressionado com a forma como um número muito pequeno de conceitos conseguiu criar tantos recursos interessantes diferentes. Pareceu-me que Scala é um bom exemplo de como, com três conceitos básicos, é possível implementar quase toda a variedade: classes de tipos, métodos de extensão. Pareceu-me legal, e é uma pena que no terceiro Scala saia.

No lado prático, será mais fácil educar as pessoas, entrar no idioma também será mais fácil. Talvez haja uma redação mais uniforme em Scala, e isso também é uma vantagem. Espere e veja. Estou certo de que os desenvolvedores do Scala pensaram nisso e o denunciaram por um motivo.

- Eu também queria perguntar. Havia um rolo em Tinkoff então ou não?

Roman Timushev: Scala já estava em Tinkov na época. Eu não posso dizer para todo o Tinkoff, mas havia muitos desenvolvedores que escrevem no Scala. Fale sobre isso com Vlad - ele poderá contar muito mais, pois trabalhou lá.

Esta é a primeira parte de uma "investigação" sobre o movimento russo Scala. A história do detetive não terminou aí. Na próxima série: familiaridade com Vlad e um novo suspeito inesperado, uma entrevista com a qual será para todo o próximo artigo. Fique atento para não perder nada.

Se você deseja adicionar novas facetas ao histórico do movimento Scala ou compartilhar sua experiência de uso, envie relatórios . O prazo do feed é de 29 dias. 6 dias antes do próximo prazo para aumento de preços - reserve seus ingressos .

Source: https://habr.com/ru/post/pt465391/


All Articles