Beaucoup d'entre nous vont aux conférences Java juste à cause du hardcore. Cet article décrit ce qui a changé à cet égard au cours de l'année.
Le hardcore peut être de plusieurs types. Vous pouvez sélectionner au moins:
- optimisation des performances dans toutes les manifestations;
- internes de technologies assez complexes (OpenJDK, GraalVM);
- compilateurs et temps d'exécution en général;
- conception de langage de programmation;
- problèmes informatiques et mathématiques appliquées;
- et bien plus.

Quelle est la différence entre une conversation régulière et une conversation hardcore? C'est comme la différence entre un article sur la gravité quantique et un guide pour une nourriture savoureuse et saine. Bien préparer le printemps est, bien sûr, une tâche très difficile et intéressante, qui pour beaucoup d'entre nous représente une grande partie des tâches quotidiennes, et, en conséquence, les rapports de Zhenya Borisov sont d'une grande importance pratique. En gros, c'est une façon de devenir un meilleur spécialiste et de récolter plus d'argent. Mais l'éclat des étoiles lointaines n'est pas là.
Par conséquent - uniquement hardcore selon les légendes de la vieille école. Il y a une petite note sous la coupe sur l'aspect de tout cela du point de vue d'une personne obsédée par la lecture d'articles, la consultation de rapports et la lecture de vidéos YouTube sur Java au sens large du terme.
Premièrement, beaucoup ne consultent pas du tout les rapports et ne regardent pas les vidéos des développeurs de technologies. Ceci, bien sûr, est une ordure complète, étant donné que seulement à partir de là, vous pouvez obtenir un hardcore vraiment vigoureux. Personne n'a besoin d'un hardcore mince!
Pour moi, les principales sources d'informations sont les listes de diffusion de divers projets OpenJDK, les commits sur le référentiel, les notifications sur GitHub, les tweeters de développeurs et les projets RSS.
En règle générale, il s'agit d'informations en direct qui ne sont en aucun cas systématisées et qui consomment un temps incroyablement long. Pour ajouter le mot «éternité» des lettres «truffe», vous devez tuer beaucoup de temps et d'énergie. Je suis allé dormir quelques heures - et là, ils comptaient déjà:

Par conséquent, il y a des gens condamnés - des auteurs de hubs Java - qui lisent tout cela, les regroupent en unités de sens et en font des articles et des rapports.
D'un autre côté, j'ai une fois pris connaissance des conférences du groupe JUG.ru et je suis resté coincé. Tellement coincé qu'il est même venu ici pour travailler. Je vais bientôt fêter l'année avec l'entreprise. Toutes ces activités de post-écriture dynamiques sont nécessaires pour aider à transmettre des connaissances sacrées à plus de gens. C'est juste le moment où tout le monde peut coder une application Web pour vous au printemps, mais vous ne pouvez pas la décrire sur Habr ... vous ne le ferez pas vous-même - personne ne le fera. Ma spécialité est les revues de conférence.
Les conférences ont un style et un goût particuliers. L'orateur doit forcément systématiser ses connaissances avant d'entrer en scène. L'orateur doit les mettre à jour régulièrement, car personne n'a besoin d'un mauvais rapport. L'orateur doit répondre rapidement et de manière décisive depuis la scène ou dans la zone de discussion, sinon tout le monde le considérera comme un imposteur. En bref, lors de la conférence, le conférencier vous doit beaucoup de choses que vous leur demanderiez sur un github, que vous enverriez au diable ou que vous écririez des réponses pendant six mois.
Il y a deux conférences principales pour moi: JVMLS et notre Joker . Autrement dit, il y a beaucoup de conférences dans le monde, mais ces deux-là me suffisent pour m'occuper l'année prochaine.
Si tout est clair avec JVMLS, alors Joker est une chose multifonctionnelle spéciale qui vous permet de tout comprendre sur le développement Java. Elle est connue et aimée pour le hardcore et l'étain.
Comparons un peu le format que c'était -> c'est devenu.
Tendances de l'année sortante
Comme vous le savez, le comité du programme ne formule pas un programme au hasard, mais en partant des préférences du public et des sujets populaires. Une conférence n'est pas un analogue de la documentation ou un livre de cuisine, c'est en grande partie une construction sociale basée sur les intérêts des gens à un moment donné et dans un lieu géographique spécifique. Relativement parlant, les conférences Java en 2014 en Inde étaient très différentes du Joker. Alors qu'avions-nous en 2017?
Ce fut une année marquée par le signe de Java 9 avec leurs modules et une nouvelle liberté extraordinaire dans leurs propres solutions.
Jusqu'à deux rapports sur le Graal. Talinger avec le premier rapport sur le Graal, dans lequel il était simplement annoncé qu'ils lui avaient transféré les services Twitter les plus importants, et cela s'est très bien passé. Chris Seaton avec un rapport détaillé sur la façon dont tout cela fonctionne à l'intérieur .
JIT vs AOT de Ionut Balosin de Luxoft et une histoire sur le nouveau JIT à Azul Zing par Arthur Pilipenko.
Lipsky avec une mise à jour sur les modules de Java 9 . En général, il y avait beaucoup de battage médiatique sur Java 9 en marge.
Un rapport sympa de Nitsan Wakart sur les profileurs , des algorithmes sans verrouillage de Nikita Koval, et bien sûr, un rapport de Lyosha Shipilev sur Shinanda .

Conclusions : L'année dernière, les détails de l'implémentation et des modules de JDK 9 étaient intéressants - tout le monde était un peu déconnecté de cette révolution silencieuse. Comme d'habitude, tout le monde était activement intéressé par les tripes de JIT / AOT, en particulier l'open source GraalVM, le nouveau GC (il n'y avait pas de ZGC à l'époque, mais il y avait Shinanda), et enfin et surtout, c'était déjà un multi-threading classique.
Notre temps
Premièrement, nous vivons maintenant dans un monde où Java 9 et Java 10 n'existent plus. Il y a des gens sauvages qui proposent de migrer d'abord vers JDK 10, de sorte que plus tard, il serait plus facile de ramper vers 11, mais c'est étrange. Nous vivons dans un monde en plein essor JDK 11, le sujet le plus discuté ces derniers jours - "Java sera-t-il gratuit". (Bien sûr, il restera, mais pas nécessairement sous la forme d'Oracle JDK).
Cette année, l'hypanul le plus fou de Kotlin. Heureusement, le Joker n'est pas devenu une conférence sur Kotlin, bien que, à en juger par le nombre de développeurs et de haut-parleurs intéressés qui ont quelque chose à dire, ils pourraient facilement le faire.
En conséquence, le père de Kotlin, Andrei Breslav, est apparu au programme avec un reportage sur "un jour dans la vie d'un concepteur de langues". C'est comme un Linuxoid venant au rapport de Linus Torvalds, comme un javista venant de Reinhold et Rose. Une incarnation vivante de la langue - avec un rapport et une heure de communication dans l'espace de discussion.
Récemment, je suis descendu à JetBrains sur Vasilyevsky, et nous avons fait une interview avec Breslav pour Habr . Un peu plus tôt, Andrei a fait un reportage au festival TechTrain que nous avons organisé, donc s'il reste des questions après le festival, il y a une deuxième chance de les poser.

Les compilateurs et runtimes personnalisés sont toujours là. Bientôt, nous publierons une interview sur Habré avec les haut-parleurs du futur Joker - Nikita Lipsky et Ivan Uglyansky. Dans cette conversation assez importante, nous découvrons ce qu'est ExcelsiorJET et ce qui est intéressant dans «une journée de travail de l'ingénieur JVM». En fait, j'ai posé cette question précisément comme complémentaire à la demande de rapport de Breslav.
Que contiendront les rapports de Nikita et Ivan? Nikita parle des couches de scie sauteuse et Ivan de l'intérieur du GC. Pour ceux qui ne les connaissent pas: ce sont des développeurs d'Excelsior qui écrivent en fait du code pour leur propre implémentation de Java et ont des connaissances approfondies dans ce domaine. ExcelsiorJET, en passant, a une version gratuite - si vous ne l'avez jamais essayé, je vous recommande de le télécharger et de l'évaluer. Récemment, le compilateur Kotlin va vers lui. Les deux rapports sont dans la même quatrième salle, mais à des jours différents.

Andrey, Nikita et Ivan sont nos compatriotes qui travaillent à la pointe des technologies d'exécution modernes, qui viennent à Joker avec leurs rapports. Mais nos autres compatriotes seront là, sur la même ligne de front, mais avec un stand dans la zone d'exposition au lieu d'un reportage. Je voudrais mentionner séparément Alexander Belokrylov avec des collègues de BellSoft qui fabriquent Liberica (distribution OpenJDK pour Raspberry Pi). Nous avons également préparé une grande interview avec eux, qui sera publiée dans un proche avenir.
Mystère de la quatrième salle, premier jour
En général, faites attention à la quatrième colonne du programme Joker : il y a une boîte! Si vous consultez tous les rapports en même temps, vous pouvez faire fondre sans fusion.
Si l'année dernière tout le monde avait assez de battage médiatique et d'horreur autour du JDK 9 et des modules, alors maintenant l'infrastructure s'est un peu calmée, et c'est devenu intéressant: ici, nous sommes tourmentés, tourmentés, survécu à tous les essais, et quel genre de nishtyaki que nous obtiendrons pour cela?
La première chose qu'un programmeur d'applications veut obtenir est un peu de nishtyaki dans la syntaxe et les bibliothèques. Et puis le rapport de Tagir Valeev sur la correspondance des modèles arrive, que nous attendons tous depuis des années. Nikolai Parlog aura une revue de Java 11 , y compris le mot-clé var
et toutes sortes de puces dans les bibliothèques.

De plus, le discours du premier jour revient aux couches de puzzle de Nikita Lipsky. La dernière fois, je vous le rappelle, il y a eu un rapport inhabituel sur le fait qu'OSGi a de réels problèmes, ce qui a suscité beaucoup de controverses. Peut-être que cette fois, Nikita vous dira quoi faire.
Et ici, la quatrième salle insidieuse arrive avec des atouts: Pangin avec des points enchanteurs sur les raisons pour lesquelles Java mange de la mémoire. Oui, oui, et la mémoire native aussi. Malheureusement, aucun commentaire ne peut être donné ici, car Pangin a tous les rapports individuels et détaillés.
Et juste après lui, Mark Hoffman parlera de la façon dont le runtime est tordu pour implémenter toutes les fonctionnalités que nous aimons dans les nouvelles versions de Java. C'est une très bonne conclusion de la journée, car dans un rapport, deux sujets fusionnent à la fois: les nishtyaks dans la langue et le compartiment moteur.
Hall Four frappe à nouveau
Si le premier jour, trois rapports sur cinq concernaient de nouvelles versions de Java (ou quatre selon la façon dont vous comptez), alors le deuxième jour, 4 rapports sont étiquetés avec #vm
et le cinquième - sur le profilage précis à l'aide du nouveau matériel Intel.
Commençons par la fin: le dernier rapport est fait par Sergey Melnikov de Raiffeisenbank. Revenant à notre comparaison avec l'année dernière, il s'agit d'une continuation du rapport précédent avec JPoint. Il est fortement recommandé de regarder la partie précédente, la vidéo est disponible ici. Cette fois, nous serons davantage immergés dans Intel Processor Trace.
Le deuxième rapport de profilage est de Marcus Hirt lui - même , le créateur de Appeal Virtual Machines, qui a développé la JRockit JVM. D'après ce que j'ai compris de la description (je n'ai pas demandé au PC), le rapport portera sur de nombreux outils différents comme JCMD, JMX, JVMTI, JPLIS, HPROF, JFR, JMC et comment résoudre de vrais problèmes de profilage JVM avec ce constructeur.
Ici, vous avez une très vieille photo, comme si vous vous en souvenez:

Deux rapports directement sur l'exécution: d'Oleg Shelaev et Grigory Koshelev.
Oleg Shelaev est le seul évangéliste officiel de GraalVM au monde. Eh bien, oui, il y a beaucoup de développeurs, et Oleg en est un. Par conséquent, il viendra presque avec le sujet le plus aigu du monde GraalVM - avec l'appareil et le fonctionnement de SubstrateVM. Chaque année a son propre thème: si en 2017 pour le succès du rapport, il suffisait de simplement déclarer l'existence de GraalVM, maintenant les gens ont lu beaucoup de nouvelles hype, ont commencé à essayer de l'utiliser et ont rencontré un certain nombre de problèmes. Il semble que la chose la plus cool ici n'est pas le rapport lui-même, mais la possibilité d'attraper Oleg dans la zone de discussion, de prendre tout ce qu'il a dit et de poser des questions de clarification.

Au fait, vous pouvez déjà poser des questions dans notre salle de chat @graalvm_ru dans Telegram (on y répond même parfois).
Si GraalVM vous permet d'exécuter des langages non JVM par vous-même, un rapport de Grigory Koshelev révèle un monde spécial d'intégration .NET et JVM sans Graal. Ça vous plaît, Elon Musk?
Et bien sûr, il y a un rapport d'Ivan Uglyansky , que nous avons déjà mentionné auparavant. Le rapport est unique en ce qu'il concerne le GC, mais il a également une signification pratique. D'accord, les rapports sur le GC sont généralement une sorte d'astronautique, ce qui est intéressant à écouter (s'il s'agit de Shipilev), ou vous pouvez vous endormir au milieu (nous ne pointerons pas les doigts). Ici, nous ne nous concentrerons pas sur l'algorithme GC abstrait, mais sur les exigences de la norme et comment il est réellement mis en œuvre.
Y a-t-il plus de hardcore?
Bien sûr qu'il y en a. «Jlink et Custom Runtime Image» de Yuri Artamonov peuvent facilement être classés comme des rapports sur les temps d'exécution modernes, « Maxim Kazantsev d'Azul Systems a également « Fuzzing for JVM testing » . Vous devez comprendre que Joker est à peu près du hardcore, et même le discours de Josh Long sur Reactive Spring n'est pas aussi simple qu'il y paraît.
Il reste moins d'un mois avant le Joker, mais j'essaie toujours d'allouer du temps et de revoir le reste du programme dans des articles séparés.
En conclusion, je ne peux que vous conseiller de voir l'intégralité du programme vous-même, et si vous l'aimez, d' acheter des billets , car ils deviennent lentement plus chers. Il est temps, oui.
