Em 26 de novembro, o
ScalaConf 2019 , uma conferência profissional para desenvolvedores do Scala, será realizada no
Infospace . Talvez o primeiro na Rússia. Na véspera do evento, pedimos a
Vadim Chelyshov (
dos65 ), chefe do PC ScalaConf 2019, para falar sobre os relatórios e o conceito da conferência.

Aqui está o que aprendemos: na conferência, aguardamos um pregador de programação funcional, quatro relatórios em inglês, uma nova ferramenta que resolverá os problemas dos engenheiros de dados, um relatório sobre por que o Scala Plugin é incompatível com o compilador Scala, Professor Haskell, e muita programação funcional. Também conversamos sobre os limites de desenvolvimento do desenvolvedor da Scala, por que não há nomes entre eles, sobre o “holivar” entre Scala e Haskell e sobre a “bolha” informativa da comunidade. Detalhes sob o corte.
Conceito
Olá Vadim! Zero pergunta - conte-nos sobre o conceito de conferência?
Estou decepcionando - não existe um conceito geral. Não estamos satisfeitos com as conferências Scala na Rússia. Não são muitos os eventos que ocorrem antes da organização para pensar em como é incomum surpreender. Esta é uma conferência da Scala, e há muito disso.
Isso significa que a comunidade que participa da conferência não tem expectativas?Existem expectativas. Essas são as expectativas de que haverá relatórios e palestrantes legais, e é de acordo com Scala. Essas são as expectativas de que você não precisará recorrer a relatórios relacionados sobre Haskell ou Java para participar das duas apresentações e meia pelas quais vim.
É porque houve poucas conferências Scala na Rússia?Podemos dizer que as
conferências foram nulas . Quando escrevi artigos de investigação sobre o movimento Scala, encontrei informações de que alguns eventos ocorreram em São Petersburgo. As pessoas chamavam de conferência, mas era uma mitap - uma faixa para 3-4 oradores. Em setembro, foi realizada uma reunião, na qual 400 pessoas foram declaradas e isso foi considerado uma conferência. Não há mais nada. O resto são mitaps em São Petersburgo, Moscou, algo em Novosibirsk e quase zero em outras cidades.
A conferência Scala na Rússia já é um evento.
Nota A primeira e a segunda parte da investigação. A final está chegando em breve - fique ligado.Acontece que o ScalaConf 2019 é a primeira conferência profissional sobre o Scala?Sim, com algumas suposições. A peculiaridade é que antes disso não havia sites especificamente para Scala. Geralmente eram conferências em Java, onde o povo rochoso era uma ovelha negra, eventos mistos no FP e mitaps. Se não é Moscou ou São Petersburgo, as mitaps também são misturadas.
O ScalaConf 2019 é a primeira plataforma rochosa para montanhas rochosas.
Em comícios ou conferências mistas, os palestrantes do Scala precisam se ajustar ao público, abandonar muitos tópicos e reduzir a complexidade do relatório. Apresentações hardcore aparecem em conferências de FP, mas você não pode contar apenas sobre o Scala.
Não haverá restrições no ScalaConf 2019. Apenas Scala, apenas hardcore.
Scala.js
O Scala domina duas áreas: Big Data e back-end. Portanto, não havia tarefa fundamental de preparar N seções com um certo número de falantes em cada uma. Prosseguimos com os relatórios selecionados, legais e rotulados: algo mais sobre o back-end, algo sobre o FP. A divisão em seções é nominal e os relatórios do bloco Idioma / Ajuste serão tão claros quanto no Big Data. Os oradores falarão por todos.
A única exceção é o Scala.js, no qual poucas pessoas escrevem, bem como no frontend. Mais frequentemente, trata-se de um experimento, menos frequentemente de uma decisão significativa, a fim de alcançar certas vantagens. O Scala.js é adequado para a complexa base de códigos do Scala, se você quiser usá-lo dentro do navegador. Eu vi um bom exemplo de compilador para a linguagem blockchain usando essa ferramenta. Os desenvolvedores puderam adicioná-lo interativamente diretamente ao navegador: você escreve no idioma, o compilador verifica a validade e os destaques.

Adicionamos o relatório “
Scala.js - a ferramenta é adequada para você? "Para que as pessoas vejam um exemplo de uso. Os desenvolvedores do Fullstack que escrevem backend e frontend igualmente bem não existem. O desenvolvedor médio raramente escreve front-end e não deseja usar JS ou TypeScriprt. Ele pensa: “Posso experimentar o Scala.js? Sim, não que sou eu, ninguém vai me entender.
Não há necessidade de usar o Scala.js quando houver ferramentas e bibliotecas do mundo do frontend. Portanto, poucas pessoas estão experimentando o Scala.js, e o tópico é extremamente interessante.
Alexander Sharikhin irá apenas contar sobre sua experiência no uso do Scala.js no eLama.
A tecnologia de nicho do Scala.js está madura, funcionando e tem uma comunidade específica. Existem alguns problemas com a integração de bibliotecas JS populares, mas todos que usaram o Scala.js em projetos reais respondem positivamente.Evgeny Tokarev, membro do PC ScalaConf 2019 .
Backend
Existem dois relatórios neste bloco - sobre pesquisa e indexação e sobre o Akka. O primeiro relatório de Andrei Korzinev - haverá algo como um "caso" sobre o método de trabalhar com índices no Auto.ru?Historicamente, eles primeiro usaram o Apache Lucene em Java, depois o jogaram fora e escreveram seu
YoctoDB em Java. Agora eles estão fazendo a terceira iteração no Scala para obter mais controle sobre os resultados da consulta.

O Scala é usado para distribuição, em aplicativos multithread e muito raramente para projetos similares. É mais provável que os desenvolvedores Scala se concentrem na correção e se preocupem pouco com o desempenho. Para uma tarefa comum, o desenvolvedor já obtém alto desempenho sem fazer nenhum esforço.
O projeto Avto.ru é um dos que combina precisão e desempenho. Portanto, o relatório de Andrei é único. Ele falará sobre índices para os quais o desempenho é importante: buffers de bytes, sem varand. Relatórios deste formato são raros. O mecanismo de pesquisa é uma tarefa de um nível diferente e é muito diferente da média.
Poucos escrevem seu próprio mecanismo de pesquisa, e menos ainda o fazem no Scala.
Nikita Melkozerkov dirá "em geral" sobre uma das abordagens para trabalhar com Akka?
Ele vai
falar sobre o Akka Persistence e o FoundationDB . O Akka Persistence é uma biblioteca configurada para o Akka e permite que você armazene convenientemente todos os eventos, salve, escolha e não se preocupe. Para ela, são criadas bibliotecas adicionais que vinculam o Akka Persistence a qualquer banco de dados.
O Akka Persistance só pode funcionar imediatamente com o LevelDB. Todos os outros back-ends de armazenamento são plugins da comunidade. Eles não são atualizados com freqüência e há receios de levá-los a um projeto sério. Portanto, é difícil escolher com o que usar o Akka Persistance.
Há um ano, a Apple
abriu a biblioteca Open Source
do Foundation Source e todos estavam empolgados. É legal, distribuído, super correto e confiável devido ao fato de que todas as noites os desenvolvedores simulam um trilhão de testes. Todos se inspiraram no evento, e Nikita escreveu o plugin Akka Persistance para o FoundationDB.
Em 40 minutos, Nikita falará sobre o FoundationDB e suas vantagens, por que o Cassandra não funcionou, sobre o Event Sourcing, sobre os principais estágios e recursos dos plugins de escrita no Akka Persistance. Espero que a Nikita consiga convencer a todos que consertar ou escrever um plug-in para o armazenamento necessário não é assustador nem difícil, e o problema das preocupações com a estabilidade desaparece.
Desenvolvimento de Desenvolvedor Scala e Programação Funcional
O relatório de Olga Makhasoeva é o único em soft skills e está no bloco FP. Como aconteceu: as habilidades sociais não são tão importantes quanto as habilidades técnicas ou a comunidade não está pronta para esses relatórios?
Na primeira conferência do Scala, não podemos dar muitas palestras sobre soft skills. Será um desperdício de tempo e recursos. Acontece que podemos substituir pessoas que podem nos contar sobre algo técnico e útil por relatórios que podemos ouvir em outras conferências.
Ao mesmo tempo, queríamos acrescentar uma palestra ao programa e Olga nos ajudou. Sua palestra sobre habilidades pessoais, “A
arte de fazer perguntas ”
, surgiu perfeitamente. Ele fica com relatórios sobre AF, porque não há como criar um bloco separado para ele.
Eu gostaria de propor uma hipótese de que os desenvolvedores do Scala são mais tecnicamente orientados.Scala tem muitas coisas técnicas para conversar e descobrir. Nos idiomas comuns, você pode aprender rapidamente um idioma, familiarizar-se com o ecossistema e atingir o limite técnico. Desenvolver-se apenas na gerência, em habilidades sociais ou no trabalho de estudo em nível baixo. No Scala e no FP, há muito espaço para aprofundamento: como obter mais garantias do código, como escrevê-lo de maneira mais correta, em resumo, mais rápida e confiável, para expressá-lo de forma mais concisa.
Scala tem muitas técnicas e abordagens que nunca terminam.
Você pode estudar áreas relacionadas, ler outros idiomas e adicionar o melhor ao Scala. Ampliamos nossos horizontes para encontrar mais provavelmente algo útil e interessante. Não houve conferência no ano passado onde quer que eles falassem sobre a Tagless Final. Um ano se passou, todo mundo esfriou e está olhando para a abordagem usada no ZIO. O fluxo de novos e novos estudos no FP e no Scala nunca termina. Se você olhar profundamente, mesmo dentro da estrutura de uma solicitação pull Scala, poderá cavar o dia inteiro.
O principal recurso de notícias são bate-papos especializados, contas públicas no Twitter, como o
Scala Center , e blogs individuais, como a equipe Akka ou
Scala-lang , que publicam postagens em importantes soluções de idiomas. No entanto, há uma quantidade incrível de informações, é difícil seguir tudo. O único recurso que economiza é o
Scala Times . São boletins semanais com um resumo de postagens, lançamentos, tweets e notícias no mundo e na comunidade Scala. Estou inscrito no Scala Times há três anos. Mas vou muito raramente, olho os cabeçalhos e uma breve descrição. Quando necessário, lembro que uma vez vi isso e pesquisei, mas não mais.
Ao mesmo tempo, tentei desenvolver o resumo do
Scalanews.org . Tentamos trabalhar com informações como jornalistas: estudamos várias fontes, e não apenas o Scala Times, lemos, desmontamos e escrevemos delineadores. Queríamos que o leitor se beneficiasse do artigo e se lembrasse de algo. Mas a informação é marítima e o projeto está desaparecendo gradualmente.
Em Scala, você pode estudar tudo indefinidamente, mas existem etapas para o crescimento?Há muito tempo existe
um sistema de graduação para o Scala. Não se sabe por quem foi inventado, mas descreve os níveis do desenvolvedor: um usuário confiante, um escritor de bibliotecas e muito mais. Em uma página especial da conferência John
LambdaConf , foram pintados níveis de domínio dos conceitos de 6 a 8 níveis. Existem níveis, mas não tenho certeza de que estejam em uso.
Eu também tinha em mente a graduação no mês de junho, no ensino médio. Existe uma coisa dessas?Sim, mas não é comum. Se nas vagas eles escreverem uma etiqueta, esse é o último. Raramente é um meio ou mesmo um júnior. Muitas vezes, os desenvolvedores que já escreveram em outros idiomas vão para o Scala. Eles mudaram para Scala com experiência em desenvolvimento, e isso claramente não é junho.
Desenvolvedores avançados mudam para Scala.
Daí a alta idade média do desenvolvedor.
Relatórios em inglês: escândalos, recursão, API
Existem quatro alto-falantes estrangeiros no bloco de programação funcional. Vamos começar com John A. De Hus.Todo mundo conhece John.

John é muito ativo: participa de todos os eventos, participa de sua biblioteca ZIO e a promove ativamente, ele se apresentou recentemente no Scala Meetup. John promove AF e ele consegue. Ele é um mestre em chamar a atenção.
Como resultado, ele participou de muitos escândalos. Por exemplo, em 2019, vários dramas mundiais aconteceram: ZIO e Scalaz foram
removidos da compilação Scala, o
Typelevel.scala proibiu John de
participar de seus projetos e o
Skills Matter fechou a entrada para todos os seus eventos. Travis Brown, que está associado ao Typelevel.scala, divulgou um post no qual acusava John de todos os pecados. Esses eventos foram discutidos até por pessoas distantes de Scala, por exemplo, no podcast da Radio-T.
Em certo sentido, John está fazendo tudo certo - está à vista e pode pregar AF às massas. Atualmente, ele está organizando sua conferência Scala em Londres no final de 2019 e já convidou muitos palestrantes legais. No ScalaConf 2019, ele se apresentará com a
palestra de Snake Oils & Elixirs .
História interessante de John com Scalaz Sparta. Ele lançou uma maratona na qual ofereceu orientação, organização e ajuda na criação de ecossistemas Scalaz para desenvolvedores que não estão envolvidos no código aberto. 300 pessoas responderam, grupos de trabalho de interesse foram formados, 30 repositórios foram abertos. Quase nada disparou. É improvável que as pessoas se unam e permaneçam motivadas a escrever bibliotecas que talvez não sejam necessárias em seu trabalho atual.
Valentin Kassas também participou da maratona. Talvez seu projeto seja lançado com sucesso - ele ainda está envolvido nele. O “
relatório ” de Valentim tratará dos padrões de recursão. Este é um tópico para avançados, mas poucos os entendem. Por anos, os desenvolvedores tentam superar os esquemas. Talvez Valentine finalmente ajude a entender esse tópico.
Conferência de programação funcional sem mencionar esquemas de recursão - dinheiro pelo ralo.

O terceiro orador é
Adam Warski . Ele participa de projetos de código aberto e comerciais, como co-fundador
de uma empresa de desenvolvimento de software. O ano passado lançou várias bibliotecas, por API, por exemplo. Ele está trabalhando neles qualitativamente, promovendo na comunidade. Todo mundo que segue a vida da comunidade Scala deve conhecê-lo.
Sua
palestra será sobre a biblioteca Tapir. Isso ajuda muito com a documentação do Swagger. Geralmente dói escrever Swagger. A melhor coisa que tivemos disso foi uma terrível construção monstruosa em um monte de anotações, que ainda podem não corresponder ao que você escreveu lá.
O Tapir resolve esse problema e fornece a descrição do Swagger gratuitamente. O único projeto semelhante é para
Oleg Nizhnikov, do ScalaConf 2019. Mas Tapir é mais PR, porque Adam é proficiente nisso.
Mas a qualidade do produto não foi afetada. Você precisa fazer grandes compromissos, é conveniente organizar uma API para cobrir todos os casos e seus dedos não se prenderão. Adam parece ter conseguido.
Depois de aprender o idioma e resolver problemas práticos, o desenvolvedor do Scala olha para o FP. Nos últimos 4 anos, a maioria dos relatórios em conferências estrangeiras foram relacionados à FI e suas abordagens para resolver problemas práticos. Portanto, estamos interessados em palestrantes estrangeiros - eles falam sobre FP, principalmente.Evgeny Tokarev, membro do PC ScalaConf 2019
O último orador estrangeiro é
Wojtek Pitula . Ele trabalha para a Sony no departamento de segurança da informação. No relatório “
Magia das integrações - ecossistema melhor do que qualquer estrutura ”, ele contará como criou um aplicativo no qual colocou todas as bibliotecas em funcionamento.
Relatórios estrangeiros serão em inglês. Haverá uma tradução, legendas?Não, nada vai acontecer. O desenvolvedor é constantemente confrontado com termos técnicos, lê documentação, manuais, estudos em inglês - existem todas as fontes principais.
Assumimos que todos nós entendemos inglês.
Se for completamente incompreensível, haverá código na tela e, a partir dele, é possível entender o que está acontecendo. Se não houver, sempre haverá um relatório alternativo em russo na próxima sala.
Apenas sobre a alternativa. Daniil Smirnov também vai falar sobre esquemas, como Valentin?
Quase. Ambos escrevem bibliotecas relacionadas a esquemas. Ambos usam a mesma fonte de inspiração -
Xenomorph . Mas as bibliotecas são completamente diferentes, como um conjunto de recursos. A biblioteca de Daniel é mais simples e em bom estado de funcionamento - leve e use. Valentine tem mais sinos e assobios, seu próprio DSL específico, mais recursos e ela foi muito mais longe do Xenomorph.
Daniel
mostrará seu projeto Morphling. Mas o projeto pode assustar uma pessoa despreparada: espalhando tipos com buracos, frases estranhas como "HMutu" - horror. Portanto, o objetivo do relatório é superar esse medo e descobrir a simplicidade e a facilidade de uso dos esquemas, mesmo desta forma.
Para fins experimentais, reduzimos deliberadamente o número de relatórios para 20 minutos. O relatório de Daniel é um deles. Participei de uma corrida recente de Daniel e posso dizer que ele fez um bom trabalho com o relatório devido a restrições de tempo. Os temas de Daniel e Valentine se cruzam, mas vão em momentos diferentes para cobrir todo o tópico de recursões e esquemas.
Alexandra Golubitskaya compara ZIO e Future. Este é o produto de John. Eles são coordenados?
Sim claro. Alexandra está ativamente envolvida na criação do ZIO, eles se ajudam com os relatórios. Quando John mostra algum recurso em conferências, ele agradece a Alexander pela preparação. Ela também é uma das organizadoras do evento em Londres. Agora eles estão preparando um novo recurso no ZIO - chunks. Se estiver pronto para a data da conferência, Alexandra
falará sobre eles .
Em seguida, Artem Seleznev e Scala Without JDBC.
O JDBC é um padrão antigo usado nas linguagens da JVM para trabalhar com bancos de dados relacionais. Uma implementação específica é gravada para um banco de dados específico. O JDBC não está em desenvolvimento, é um padrão fixo e ninguém pode recusá-lo. Todo mundo cospe, fica chateado, mas continua mastigando um cacto - não há alternativa. Existem bibliotecas que fornecem drivers assíncronos, mas eles não são populares. Rob Norris ouviu a
biblioteca Skunk , mas está em desenvolvimento há mais de um ano e não está claro quando será lançado.
Artyom
dirá como entrar em contato com o JDBC. Para fazer isso, ele escreveu seus pilotos "no joelho" - as ferramentas são suficientes para fazer você mesmo e em um estilo funcional. No relatório, ele mostrará como escrever drivers, e que "de joelhos" não é mais difícil nem pior do que todo mundo está acostumado a pensar.
JetBrains, Holivars e Big Data
No próximo bloco “Language / Tuning”, o primeiro relatório de Andrey Kozlov e Mikhail Mutsianko. Eles vão falar sobre um dos produtos JetBrains? No programa, contei 3 relatórios de 18 de oradores do JetBrains. Está conectado com alguma coisa?
Também notei isso quando comecei a fazer a grade do cronograma. Isso aconteceu por acaso e ninguém intencionalmente promoveu o JetBrains. A empresa emprega muitas pessoas próximas à AF, embora seus principais produtos não sejam sobre isso.
Andrey Kozlov e
Mikhail Mutsianko estão trabalhando no Scala Plugin, que todos nós usamos. Eles definitivamente não são supérfluos aqui.

Há um problema antigo que o Scala Plugin não corresponde exatamente ao compilador Scala. Um compilador de código Scala alternativo é escrito no plug-in para que seus IDEs funcionem. Portanto, há uma discrepância no produto - em alguns lugares o código é praticamente válido, correto, compilado pelo compilador Scala, mas no IDE é vermelho. Isso é frustrante, mas com o tempo você se acostuma, há menos zonas vermelhas.
Obviamente, a situação não é boa, mas o compilador Scala não é a coisa mais fácil. A maioria dos desenvolvedores não está ciente dos problemas e desafios enfrentados pelos desenvolvedores de IDE. Muito provavelmente, esta situação continuará mais longe, mas Andrey Kozlov e Mikhail Mutsianko só querem
dizer o seu ponto de vista. Eles querem explicar por que isso acontece, por que deveria ser, quais são os requisitos para o compilador, por que escrevê-lo e por que o plug-in é escrito dessa maneira. Houve tentativas de descobrir esse segredo, eles vieram até nós para gravar um podcast, mas ainda não está claro.
Continuando no JetBrains e um pequeno salto para o Big Data. «» - — , IDE. ?
, Big Data. . : , , , , . .
, - .
JetBrains — . AppsConf . ScalaConf 2019 ?
, « Haskell»
DOT — . DOT, . , «» Haskell Scala. , - , — .
?, :)
, «» Haskell Scala?, . Scala Java — . Haskell Scala. Haskell ( ), Scala , , .
. Scala Haskell .
«» . , - :)
, , Haskell, , , , Scala.
Scala?
, . . , , ensime,
scalafix , fastparse. Scalafix .
, Open Source,
.
, , .
«» GraalVM. , ?
GraalVM . —
Scala Native , Java . , JVM.
-, GraalVM —
. , . . . GraalVM,
, , . , GraalVM. , , , , . .
, GraalVM ?. , GraalVM . . — GraalVM . .
, - GraalVM . . GraalVM « ». , , , . .
? , Big Data?
, . Big Data, , . , ..
Yupana — HBase time-series , . , . , —
Yupana, , .
Open Source .
ScalaConf 2019 . , -. 12 — . , . ScalaConf 2019!