Charge your brains directly! Rantime, compilers and performance on Joker 2018

Published on September 25, 2018

Charge your brains directly! Rantime, compilers and performance on Joker 2018

    Many of us go to Java conferences just because of hardcore. This article is about what has changed in this plan for the year.


    Hardcore is of several kinds. You can select at least:


    • performance optimizations in any form;
    • the internals are quite complex technologies (OpenJDK, GraalVM);
    • compilers and runtime in general;
    • programming language design;
    • computer science and applied mathematics problems;
    • and much more.



    What is the difference between a regular report and hardcore? It’s like the difference between a quantum gravity article and a guide to good and healthy food. Preparing Spring correctly is, of course, a very difficult and interesting task, which for many of us is a big part of everyday tasks, and, accordingly, the reports of Boris Borisov are of great practical importance. Roughly speaking, this is a way to become a better specialist and raise more money. But the brilliance of distant stars is not there.


    Therefore - only hardcore on the precepts of the old school. Under the cut a short note about how it all looks from the point of view of a person who is obsessed with reading articles, visiting reports and watching videos on YouTube devoted to Java in the broad sense of the word.


    First of all, many people don’t read reports at all and don’t watch videos from technology developers. This is, of course, complete bullshit, considering that only from there you can get a really tough hardcore. Nobody needs a thin hardcore!


    For me, the main sources of information are mailings of all kinds of OpenJDK projects, commits to the repository, GitHub alerts, developer tweeters and RSS projects.


    As a rule, this is live-information, which is not systematized in any way and eats an incredibly long time. To add the word “eternity” from the letters “truffle”, you need to kill a lot of time and energy. I went to sleep for a few hours - and there they were already commited:



    Therefore, there are such special doomed people - habraautori Java hub - who read it all, pack into units of meaning and make articles and reports from them.


    On the other hand, I once met the conferences of the JUG.ru Group and got stuck. So stuck that even came here to work. Soon I will celebrate the year in the company. All this boisterous writing activity is needed to help bring sacred knowledge to more people. This is exactly the moment when everybody can code a web application for you in the spring, but to describe it on Habré ... you can't do it yourself - nobody will. My specialty - reviews at the conference.


    Conferences have a special style and taste. The speaker, willy-nilly, must systematize his knowledge before going on stage. The rapporteur should update them regularly, because no one needs a rotten report. The speaker must answer from the stage or in the discussion area quickly and decisively, otherwise everyone will consider him an impostor. In short, at the conference the speaker owes you a lot of such things that if you ask them on a githaba, you would be sent to the devil or squeezed out the answers for half a year.


    There are two main conferences for me: JVMLS and our Joker . That is, there are plenty of conferences in the world, but these two are enough for me to load up work for the next year.


    If everything is clear with JVMLS, then Joker is a special multifunctional thing that allows you to understand everything about Java development. She is known and loved for hardcore and tin.


    Let's compare a bit in the format was -> become.


    Trends of the year


    As is known, the Program Committee forms the program not at random, but on the basis of audience preferences and popular topics. A conference is not an analogue of documentation or a book, it is in many ways a social construct based on the interests of people at a particular time and in a particular geographic location. Relatively speaking, the Java conferences of 2014 in India were very different from the Joker. So, what did we have in 2017?


    It was a year marked by the sign of Java 9 with their modules and some new extraordinary freedom in their own decisions.


    Whole two reports about the Grail. Talinger with the first report on the Grail, in which it was simply announced that they transferred the most important Twitter services to it, and it worked out very well. Chris Seaton with a detailed report on how it all works inside .


    JIT vs AOT from Ionut Balosin from Luxoft and a story about Arthur Pilipenko’s new JIT in Azul Zing .


    Lipsky with a topical report about modules in Java 9 . In general, there was a lot of HYIP about Java 9 on the sidelines.


    The cool report of Nitsan Vakarta about profilers , the lock-free algorithms of Nikita Koval, and of course, the report of Lesha Shipilev about Shinanda .




    Conclusions : last year, the details of the implementation of JDK 9 and modules were interesting - all were slightly at ease from this quiet revolution. As usual, everyone was actively interested in the JIT / AOT guts, in particular, the open-source GraalVM, the new GCs (there was no ZGC then, but there was Chinandas), and, last of all, a multithreaded one.


    Nowadays


    First, we now live in a world in which Java 9 and Java 10 no longer exist. There are some wild people offering to migrate first to JDK 10, so that later it would be easier to crawl to 11, but this is strange. We live in the world of the rapidly gaining JDK 11, the most discussed topic of the last days is “will Java be free”. (Of course it will, but not necessarily in the form of an Oracle JDK).


    This year wildest hapanul Kotlin. Fortunately, the Joker did not turn into a Kotlin conference, although, judging by the number of interested developers and speakers who have something to tell, could easily have done so.


    Accordingly, Kotlin’s father, Andrei Breslav, appeared in the program with a report on “one day in the life of a language designer”. It's like the linuxoid come to the Linus Torvalds report, like the javist come to Reinhold and Rose. Lively embodiment of the language - with a report and an hour of communication in the discussion area.


    Recently, I kicked off at JetBrains on Vasilyevsky, and we did an interview with Breslav for Habr . A little earlier, Andrei gave a report at the TechTrain festival organized by us , so if there were questions after the festival, there is a second chance to ask them.




    Custom compilers and rantaymy have not gone away. Soon we will release on Habre interviews with the speakers of the future Joker - Nikita Lipsky and Ivan Uglyansky. In this rather big conversation, we find out what ExcelsiorJET is and what interesting things are in “one day of work of a JVM engineer”. Actually, I came up with this question precisely as complementary to the application for the Breslav report.


    What will be in the reports of Nikita and Ivan? Nikita will talk about the Jigsaw Layers, and Ivan about the insides of GC. For those who are not familiar with them yet: these are the developers from Excelsior who actually write the code of their own Java implementation and have superdeep expertise in this area. ExcelsiorJET, by the way, has a free version - if you have never tried it, I recommend downloading and rating it. Recently, Kotlin compiler is going to them. Both reports are in the same fourth hall, but on different days.




    Andrei, Nikita and Ivan are our compatriots, leading the work on the leading edge of modern runtime technologies, who come to Joker with their reports. But there will be other our compatriots there, from the same leading edge, but with a booth in the exhibition area instead of a report. I would like to specifically mention Alexander Belokrylov and colleagues from BellSoft, who make Liberik (the distribution for OpenJDK for Raspberry Pi). With them, we also prepared a great interview, which will be released soon.


    The secret of the fourth hall, the first day


    In general, pay attention to the fourth column in the Joker program : there is one tin there too! If you go to all the reports at once, you can melt unillusorily.


    If last year everyone had enough of HYIP and horror around JDK 9 and modules, now the infrastructure is a bit settled, and it became interesting: here we were tormented, tormented, we experienced all tests, and what nishtyaki would we get for it?


    The first thing an application programmer wants to get is some kind of nishtyaki in syntax and libraries. And here comes the report of Tagir Valeev about pattern matching , which we have all been waiting for years. Nikolay Parlog will have a review of Java 11 , including a keyword varand all sorts of stuff in libraries.




    The first day's discourse goes on to Nikita Lipsky's Jigsaw Layers . Last time, I recall, there was an unusual report about the fact that OSGi has real problems, which caused a lot of controversy. Maybe this time Nikita will tell you what to do.


    And here the treacherous fourth hall comes with trumps: Pangin with an enchanting arrangement of points over why Java eats memory. Yes, yes, and native memory too. Unfortunately, no comments can be given here, because Pangin has all the reports individual and deep.


    And right after him, Mark Hoffman will tell about how runtime dodges to implement all the features that we love in new versions of Java. This is a very good end of the day, because in one report two topics merge at once: the nishtyaks in the language and the engine compartments.


    The fourth hall strikes again


    If on the first day, three reports out of five were about fresh versions of Java (or four - depending on how you count), then on the second day, 4 reports were tagged with a tag #vm, and the fifth - about accurate profiling with the help of Intel hardware.


    Let's start from the end: the last report is made by Sergey Melnikov from Raiffeisenbank. Returning to our comparison with last year, this is a continuation of the previous report with the JPoint. It is highly recommended to see the previous part, the video is available here. This time we will plunge more deeply into Intel Processor Trace.


    The second report on profiling comes from Marcus Hirt himself , the creator of Appeal Virtual Machines, which developed the JRockit JVM. As far as I understood from the description (I did not ask the PC), the report will be about a lot of different tools like JCMD, JMX, JVMTI, JPLIS, HPROF, JFR, JMC and how to solve real tasks of JVM profiling using this designer.


    Here you have a very old-fashioned picture, put a like if you remember:




    Two reports directly on rantaym: from Oleg Shelayev and Grigory Koshelev.


    Oleg Shelayev is the only official GraalVM evangelist in the world. Well, yes, many developers, and Oleg - one. Therefore, it will come almost with the most acute theme of the world GraalVM - with the device and operation of SubstrateVM. Each year has its own themes: if in 2017, for the success of the report, it was enough to simply declare the existence of GraalVM, now people have been reading heaps of hyip news, started trying to use it, and ran into a number of problems. It seems that the coolest thing here is not the report itself, but the opportunity to catch Oleg in the discussion area, take everything he said and ask clarifying questions.




    By the way, now you can ask questions in our chatik @graalvm_ru in Telegram (they are sometimes even answered).


    If GraalVM allows you to run non-JVM languages ​​on yourself, then Grigory Koshelev's report reveals the special world of the integration of .NET and JVM without any Grail. How do you like that, Ilon Musk?


    And of course, there is a report by Ivan Uglyansky , which we have already recalled before. The report is unique in that it is about the GC, but it also has some practical meaning. Agree, usually reports about GC - this is some kind of astronautics, to listen to which is either interesting (if it is Shipilev), or you can fall asleep in the middle (we will not point fingers). Immediately, the discussion will focus not on the abstract GC algorithm, but on the requirements of the standard and how it is actually implemented.


    Is there more hardcore?


    Of course there is. “Jlink and Custom Runtime Image” by Yuri Artamonov can be easily categorized as reports about modern runtimes, “Fuzzing for JVM testing” by Maxim Kazantsev from Azul Systems is also. You have to understand that Joker is largely about hardcore, and even Josh Long's talk about Reactive Spring is not as simple as it sounds.


    Less than a month is left to Joker, but I will still try to take the time and review the rest of the program in separate posts.


    In conclusion, I can only advise you to see the entire program on your own, and, if you like it, buy tickets , because they are slowly becoming more expensive. Already it is time, yes.