Muitos de nós frequentam conferências em Java apenas por causa do hardcore. Este artigo é sobre o que mudou nesse sentido ao longo do ano.
O hardcore pode ser de vários tipos. Você pode selecionar pelo menos:
- otimizações de desempenho em quaisquer manifestações;
- internos de tecnologias bastante complexas (OpenJDK, GraalVM);
- compiladores e tempos de execução em geral;
- design de linguagem de programação;
- problemas de ciência da computação e matemática aplicada;
- e muito mais

Qual é a diferença entre uma conversa regular e uma conversa hardcore? É como a diferença entre um artigo sobre gravidade quântica e um guia para alimentos saborosos e saudáveis. Preparar a primavera corretamente é, obviamente, uma tarefa muito difícil e interessante, que para muitos de nós é uma grande parte das tarefas cotidianas e, portanto, os relatórios de Zhenya Borisov são de grande importância prática. Grosso modo, essa é uma maneira de se tornar um especialista melhor e arrecadar mais dinheiro. Mas o brilho das estrelas distantes não existe.
Portanto - apenas hardcore de acordo com as lendas da velha escola. Por trás do corte, há uma breve nota sobre como tudo fica do ponto de vista de uma pessoa obcecada por ler artigos, visitar relatórios e assistir a vídeos do YouTube em Java no sentido amplo da palavra.
Em primeiro lugar, muitos não vão a relatórios e nem assistem a vídeos de desenvolvedores de tecnologia. É claro que isso é um lixo completo, já que somente a partir daí você pode obter um hardcore realmente vigoroso. Ninguém precisa de um hardcore fino!
Para mim, as principais fontes de informação são listas de email de vários projetos OpenJDK, confirmações no repositório, notificações no GitHub, tweeters de desenvolvedores e projetos de RSS.
Como regra geral, trata-se de informações ao vivo que não são sistematizadas de forma alguma e levam muito tempo. Para adicionar a palavra “eternidade” a partir das letras “trufa”, você precisa gastar muito tempo e energia. Eu dormi por algumas horas - e eles já estavam numerados:

Portanto, existem pessoas condenadas especiais - autores do hub do hub Java - que leem tudo isso, agrupam-no em unidades de significado e fazem artigos e relatórios a partir deles.
Por outro lado, uma vez me familiarizei com as conferências do Grupo JUG.ru e fiquei preso. Tão preso que ele chegou aqui para trabalhar. Em breve comemorarei o ano com a empresa. Toda essa vibrante atividade pós-escrita é necessária para ajudar a transmitir conhecimento sagrado a mais pessoas. Este é apenas o momento em que todos podem codificar um aplicativo da Web para você na primavera, mas você não pode descrevê-lo no Habr ... você não fará isso sozinho - ninguém o fará. Minha especialidade são análises de conferências.
As conferências têm um estilo especial e prazer. O orador, forçosamente, deve sistematizar seu conhecimento antes de entrar no palco. O orador deve atualizá-los regularmente, porque ninguém precisa de um relatório ruim. O orador deve responder do palco ou da área de discussão de maneira rápida e decisiva, caso contrário, todos o considerarão um impostor. Em resumo, na conferência, o orador deve muitas coisas que você pediria no github, seria enviado ao diabo ou espremeria respostas por seis meses.
Existem duas conferências principais para mim: JVMLS e nosso Coringa . Ou seja, existem muitas conferências no mundo, mas essas duas são suficientes para eu me ocupar no próximo ano.
Se tudo estiver claro com o JVMLS, o Joker é uma coisa multifuncional especial que permite entender tudo sobre o desenvolvimento Java. Ela é conhecida e amada por hardcore e lata.
Vamos comparar um pouco no formato em que estava -> tornou-se.
Tendências do ano de saída
Como você sabe, o Comitê de Programa não formula um programa aleatoriamente, mas com base nas preferências do público e em tópicos populares. Uma conferência não é um análogo da documentação ou de um livro de receitas, é em grande parte uma construção social baseada nos interesses das pessoas em um determinado momento e em uma localização geográfica específica. Em termos relativos, as conferências Java em 2014 na Índia eram muito diferentes das do Coringa. Então, o que tínhamos em 2017?
Foi um ano marcado pelo sinal do Java 9 com seus módulos e uma nova liberdade extraordinária em suas próprias soluções.
Até dois relatórios sobre o Graal. Talinger com o primeiro relatório sobre o Graal, no qual foi simplesmente anunciado que eles transferiram os serviços mais importantes do Twitter para ele, e tudo saiu muito bem. Chris Seaton com um relatório detalhado sobre como tudo funciona por dentro .
JIT vs AOT de Ionut Balosin da Luxoft e uma história sobre o novo JIT em Azul Zing de Arthur Pilipenko.
Lipsky com uma conversa atualizada sobre módulos em Java 9 . Em geral, havia muita publicidade sobre o Java 9 à margem.
Um relatório interessante de Nitsan Wakart sobre criadores de perfil , algoritmos sem trava de Nikita Koval e, claro, um relatório de Lyosha Shipilev sobre Shinanda .

Conclusões : No ano passado, os detalhes da implementação e dos módulos do JDK 9 foram interessantes - todos estavam um pouco fora de contato com essa revolução silenciosa. Como sempre, todo mundo estava interessado ativamente nas entranhas do JIT / AOT, especialmente o GraalVM de código aberto, o novo GC (não havia ZGC na época, mas havia Shinanda) e, por último, mas não menos importante, já era um multi-threading clássico.
Nosso tempo
Primeiro, agora vivemos em um mundo no qual o Java 9 e o Java 10 não existem mais. Existem pessoas selvagens que se oferecem para migrar primeiro para o JDK 10, para que mais tarde seja mais fácil rastrear para 11, mas isso é estranho. Vivemos em um mundo em constante crescimento, o JDK 11, o tópico mais comentado dos últimos dias - "o Java será gratuito". (É claro que permanecerá, mas não necessariamente na forma do Oracle JDK).
Este ano, o hypanul mais selvagem Kotlin. Felizmente, o Coringa não se transformou em uma conferência sobre Kotlin, embora, a julgar pelo número de desenvolvedores e palestrantes interessados que tenham algo a dizer, eles possam facilmente fazer isso.
Consequentemente, o pai de Kotlin, Andrei Breslav, apareceu no programa com um relatório sobre "um dia na vida de um designer de linguagem". É como um Linuxoid vindo para o relatório de Linus Torvalds, como um javista vindo para Reinhold e Rose. Uma encarnação viva da linguagem - com um relatório e uma hora de comunicação na área de discussão.
Recentemente desci as escadas para o JetBrains em Vasilyevsky e fizemos uma entrevista com Breslav para Habr . Um pouco antes, Andrei fez uma reportagem no festival TechTrain que organizamos; portanto, se houver alguma dúvida depois do festival, há uma segunda chance de perguntar.

Compiladores e tempos de execução personalizados ainda estão aqui. Em breve lançaremos uma entrevista sobre Habré com os palestrantes do futuro Coringa - Nikita Lipsky e Ivan Uglyansky. Nesta grande conversa, descobrimos o que é o ExcelsiorJET e o que é interessante em "um dia do trabalho do engenheiro da JVM". Na verdade, cheguei a essa questão precisamente como complementar à solicitação do relatório de Breslav.
O que haverá nos relatórios de Nikita e Ivan? Nikita fala sobre as camadas de quebra-cabeças e Ivan sobre o interior do GC. Para aqueles que não estão familiarizados com eles: esses são desenvolvedores da Excelsior que, na verdade, escrevem código para sua própria implementação de Java e possuem um conhecimento especializado profundo nessa área. O ExcelsiorJET, a propósito, tem uma versão gratuita - se você nunca experimentou, recomendo fazer o download e avaliar. Recentemente, o compilador Kotlin está indo para ele. Ambos os relatórios estão no mesmo quarto salão, mas em dias diferentes.

Andrey, Nikita e Ivan são nossos compatriotas que trabalham na vanguarda das modernas tecnologias de tempo de execução, que chegam ao Joker com seus relatórios. Mas nossos outros compatriotas estarão lá, da mesma linha de frente, mas com um estande na área de exibição em vez de um relatório. Gostaria de mencionar separadamente Alexander Belokrylov com colegas da BellSoft que fazem Liberica (distribuição OpenJDK para Raspberry Pi). Também preparamos uma grande entrevista com eles, que será lançada em um futuro próximo.
Mistério do quarto corredor, primeiro dia
Em geral, preste atenção à quarta coluna do programa Joker : há uma lata! Se você for a todos os relatórios de uma só vez, poderá derreter sem fusão.
Se no ano passado todo mundo teve bastante hype e horror em torno do JDK 9 e dos módulos, agora a infraestrutura se acalmou um pouco e tornou-se interessante: aqui estamos atormentados, atormentados, sobrevivemos a todos os testes e que tipo de nishtyaki teremos por isso?
A primeira coisa que um programador de aplicativos deseja obter é um pouco de nishtyaki na sintaxe e nas bibliotecas. E então chega o relatório de Tagir Valeev sobre correspondência de padrões , que todos esperamos há anos. O Nikolai Parlog fará uma revisão do Java 11 , incluindo a palavra-chave var
e todos os tipos de chips nas bibliotecas.

Além disso, o discurso do primeiro dia vai para as Jigsaw Layers de Nikita Lipsky. Da última vez, lembro-lhe, houve um relatório incomum sobre o fato de o OSGi ter problemas reais, o que causou muita controvérsia. Talvez desta vez Nikita lhe diga o que fazer.
E aqui entra o insidioso quarto salão com trunfos: Pangin com pontos encantadores sobre por que Java come memória. Sim, sim, e memória nativa também. Infelizmente, nenhum comentário pode ser feito aqui, porque o Pangin possui todos os relatórios individualmente e em profundidade.
E logo depois dele, Mark Hoffman falará sobre como o tempo de execução é distorcido para implementar todos os recursos que amamos em novas versões do Java. Esta é uma conclusão muito boa para o dia, porque em um relatório dois tópicos se mesclam ao mesmo tempo: nishtyaks na língua e no compartimento do motor.
Salão Quatro ataca novamente
Se no primeiro dia, três em cada cinco relatórios eram sobre versões novas do Java (ou quatro, dependendo de como você conta), e no segundo dia, quatro relatórios são marcados com #vm
e o quinto - sobre criação de perfis precisos usando o novo hardware da Intel.
Vamos começar do final: o último relatório é de Sergey Melnikov, do Raiffeisenbank. Voltando à nossa comparação com o ano passado, esta é uma continuação do relatório anterior com a JPoint. É altamente recomendável assistir a parte anterior, o vídeo está disponível aqui. Desta vez, estaremos mais imersos no Intel Processor Trace.
O segundo relatório de criação de perfil é do próprio Marcus Hirt , criador da Appeal Virtual Machines, que desenvolveu a JRockit JVM. Pelo que entendi pela descrição (não perguntei ao PC), o relatório será sobre muitas ferramentas diferentes, como JCMD, JMX, JVMTI, JPLIS, HPROF, JFR, JMC e como resolver problemas reais de criação de perfil da JVM usando este construtor.
Aqui você tem uma imagem muito antiga, como se você se lembrasse:

Dois relatórios diretamente em tempo de execução: de Oleg Shelaev e Grigory Koshelev.
Oleg Shelaev é o único evangelista oficial do GraalVM no mundo. Bem, sim, existem muitos desenvolvedores, e Oleg é um deles. Portanto, ele virá quase com o tópico mais agudo do mundo GraalVM - com o dispositivo e operação do SubstrateVM. Cada ano tem seu próprio tema: se em 2017, para o sucesso do relatório, bastava declarar a existência do GraalVM, agora as pessoas leram muitas novidades, começaram a tentar usá-las e tiveram vários problemas. Parece que a coisa mais legal aqui não é o relatório em si, mas a oportunidade de pegar Oleg na área de discussão, pegar tudo o que ele disse e fazer perguntas esclarecedoras.

A propósito, você já pode fazer perguntas em nossa sala de bate-papo @graalvm_ru no Telegram (elas são respondidas algumas vezes).
Se o GraalVM permitir que você execute idiomas não JVM por conta própria, um relatório de Grigory Koshelev revela um mundo especial de integração .NET e JVM sem nenhum Graal. Como você gosta disso, Elon Musk?
E, claro, há um relatório de Ivan Uglyansky , que já mencionamos antes. O relatório é único, pois trata-se de GC, mas também tem algum significado prático. Concordo, geralmente os relatórios sobre o GC são uma espécie de astronáutica, que é interessante de ouvir (se é Shipilev), ou você pode adormecer no meio (não apontaremos os dedos). Aqui, focaremos não o algoritmo abstrato do GC, mas os requisitos do padrão e como ele é realmente implementado.
Existe mais hardcore?
Claro que existem. “Jlink e Custom Runtime Image” de Yuri Artamonov podem ser facilmente categorizados como relatórios sobre tempos de execução modernos, “ Maxim Kazantsev da Azul Systems também possui “ Fuzzing for JVM testing ” . Você tem que entender que Joker é basicamente hardcore, e mesmo a conversa de Josh Long sobre Reactive Spring não é tão simples quanto parece.
Falta menos de um mês para o Coringa, mas ainda tento alocar tempo e revisar o restante do programa em postagens separadas.
Concluindo, só posso aconselhá-lo a ver o programa inteiro e, se você gosta, comprar ingressos , porque eles estão lentamente ficando mais caros. Está na hora, sim.
