📜 ⬆️ ⬇️

Back to the future: how did Joker 2017 go



For a long time in the Java-world there was no such revival as this fall: finally the “nine” came out, and other “protracted” finished (Java EE 8, JUnit 5, Spring Framework 5), Java EE is sent to the Eclipse Foundation, commercial features Oracle JDK decided to open source, and Java itself moves to a semi-annual release cycle.

How can a Java conference look like in such a hurricane of news? Need to focus on these new topics, or think about those developers who are not so much on the "nine", but on the "eight" have not yet passed? We spent the fifth Joker in St. Petersburg - and under the cut we wrote in detail about how it was.

Like last year , Expoforum became the place of action. About 1,200 people gathered, so the conference just doesn't fit on the smaller sites, and there was plenty of space for reports, discussion zones, and sponsor stands. This time, the case went without last year’s six halls: we limited ourselves to “only” four, deciding to focus on quality. Because of this, the selection of reports turned into a “meat grinder” with a competition into several applications for one place - but the audience's assessment of the reports turned out to be high.
')


The live stream was different from the past. Firstly, it was conducted in the resolution of 1440p: this allows you to simultaneously display the image from the speaker’s laptop in 1080p and the speaker itself. Secondly, last year we experimentally tried to demonstrate one of the tracks for free, and between reports to broadcast interviews with speakers. Then it was not without technical problems, but the idea itself has proved itself. So this time we did the same thing more confidently - and the broadcast of both days is available on YouTube.

Keynout Kai Horstmann , who has been famous for his “Core Java” book for 20 years (he was even asked to sign it at the conference), opened everything up. And here the actual agenda immediately appeared: he talked about the innovations of Java 9 (except modules). There have been so many texts written on this topic lately that a question arose: will the report be any different from them? And would you need the legendary Horstmann for this topic, or would anyone who carefully read the sources read the same report?



But the experience of Horstmann made itself felt. Carefully observing the development of Java over the years, he could not just retell current facts, as in most articles, but show the picture in perspective: “In 2009, Josh Bloch offered a collection literals for Project Coin. Then it did not materialize. Now we also do not get exactly that, but at the same time we get this ... ”Judging by the feedback, some of the spectators lulled Kai’s monotony (he is more accustomed to lecturing at the university than the reports), but so could the wrestlers encountered in the report help wake up.



When, after the keynote, everyone dispersed in four halls, in one of them the puzzle-makers also began, but nobody had a dream about it: when Baruch Sadogursky was on the stage, it would not be possible to fall asleep physically. And Tagir Valeev, who spoke with him, cannot complain about the shortage of new puzzlers for reports: when working on inspections in IntelliJ IDEA, you willy-nilly come across them. The very first was about the features of module-info.java - that is, it was not without news from the ninth Java.

Meanwhile, in another room, the future was even closer: Christian Talinger from Twitter was talking about using the new Graal compiler. From the Twitter side, this is a bold move (most people still consider the project too experimental for production), but Christian’s experience in Sun and Oracle partly helps. And in the end, winning a little in performance, Twitter with its scale now saves a considerable amount - that is, it is not just a dashing experiment for the sake of experiment, but a completely practical step. However, the general optimism of the report was spoiled for many by the ending: Talinger admitted there that the productivity gains he observed could be explained by the combination of Graal and Scala (which Twitter actively uses), and with pure Java the results would be less impressive.


In terms of "you can win in performance, but true for a few," Dmitry Alexandrov ’s report on the use of Java with a GPU also passes. And the peculiarity of this report, perhaps, was best formulated by one of the participants in his review: “Smoothies prepared with the help of helicopter blades”.

Dinner followed, and it seemed that a side dish caused more controversy than any of the reports: while some people discovered quinoa with great interest, others compared it with horse oats. We, of course, take into account the reaction, but keep in mind that the production of quinoa in recent years on a wild rise . That is, at such a pace, it will still not hide from him anywhere, as from Docker and microservices.



After lunch, first Nitsan Vakart told about the difficulties with Java profilers, and then Alexey Shipilev continued on his way deep into Shenandoah - or rather, he did not even talk specifically about Shenandoah, but about how runtime features affect the work of GC. And it is curious that safepoints became an important topic for both speakers. In the case of sampling profilers, they can knock down the results - and Vakart said that he helps to avoid this. In the case of GC, they are associated with overhead costs - and Shipilev described in detail exactly how. I wonder how many participants at the question of Shipilev "who knows what a safepoint is" raised their hands because an hour earlier they learned this from Vakarta? :)

And at the end of the day, Nikolai Alimenkov spoke on antipatterns using Java 8 - and the public’s interest was so high that the two halls were combined in the program. Although in the days of Joker, the most famous Kotlin speakers were across the ocean at KotlinConf, it didn’t do without mentioning the language at the conference: telling about the Optional, Nikolay emphasized that this is a partial solution to the nullability issues than the more radical Kotlin approach. And then he began to criticize "opshionalizm", in which Optional begin to use, and when it would not be worth it.



At the beginning of the second day, one could visually see the difference in interest in two different topics. When Kirill Tolkachev and Yevgeny Borisov came out to disassemble the Spring Boot “under the hood” magic, a full house arose - and at the same time, the report of “Ceylon in production” was not crowded. Of course, there is no surprise that Spring Boot excites people 10 times more than Ceylon, but the visual contrast was impressive.

Speech about Spring Boot was not only a large-scale audience. It took two whole time slots in the program, and at the same time the audience noted that Cyril and Eugene quickly speak - probably, if they spoke more slowly, a third slot would be needed! In general, there was a huge amount of information about Spring for a large part of the eager viewers.



In the meantime, Baruh Sadogursky and Leonid Igolnik staged a battle "Google Home against Amazon Alexa", demonstrating what additional skills can be written in Java to these voice assistants. In the conference conditions, not all voice commands worked correctly, but the audience felt the main thing: thanks to the “smart speakers”, the romance “partly bought the device home itself, programmed itself”.

The main force majeure was the fact that air difficulties did not allow Sasha Goldstein to get to the conference. But the hall did not have to be empty: as a substitute, a round table was quickly organized with the participation of Aleksey Shipilev , Andrei Pangin , Vladimir Sitnikov , Gleb Smirnov and Volker Simonis . The dialogue of such people is always interesting to listen to - but in the end, among the audience reviews, you can even find joy because of the cancellation of the Goldstein report.



However, the number of spectators at the round table was not too large - probably due to the fact that many went to listen to Tagir Valeev about what awaits us in the future thanks to Project Amber. There, everything passed cheerfully: “Who thinks that the derivation of types of local variables is done in vain? Well, you understand that nothing depends on your opinion. We started outputting types in Java earlier, then we had to complain. ” Tagir, who initially became famous with his reports about streams, now seems to have left this topic - but it didn’t escape our keen eyes that Tagir even had a completely different report on slides with a strong desire to find a stream:

Finally, Sergey Abdulmanov , a well-known Habrapol users on the Mosigra blog , ended the conference. His story was not about Java, but about how in “Mosigre” from the development of 10 games a year they tried to enter 120 games a year - and this story showed both similarities and differences from the development of software. On the one hand, in IT, Sergey got used to a clear check of the project on the check list, and was surprised when employees put check marks in the check list “at random”. On the other hand, the voiced way of working with freelancers caused a laughter in the hall to recognize the situation: “Having seen that the lion’s share of time is spent on rework, we introduced a rule when, in the absence of rework, payment doubles. Freelance translators, who have always done something unfinished before, learned this scheme very quickly! ”


What is the conclusion of all this can be done? What is relevant for viewers now - the past of Java (continuing to work in production), the recent modular present, or the future at all? Judging by how many viewers were on different reports and what feedback they gave, all three options are correct at once: there was a revival and errors when using Java 8, and extensions of the freshly hung JUnit 5, and the not yet used var keyword.

And so you can say this: the Joker conference successfully supports several different versions of Java at the same time.

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


All Articles