The
Joker 2016 conference, which was held on October 14-15, 2016 in St. Petersburg, was arguably the largest Russian-language Java conference ever. 2 days, 52 reports, 6 parallel tracks, more than 40 speakers, over 1000 participants.

The period immediately preceding the conference was very rich and eventful:
- launch of the Java portal JUG.ru ;
- Numerous presentations by Joker speakers at meetings of the St. Petersburg and Moscow Java User Group ;
- interesting articles on Habrahabr with insider information from JUG.ru on the preparation of conferences ( about sponsors , about the preparation of online broadcasts , about the administrative component );
- classic one-on-one interviews by Alexei Fyodorov from the “Without Slides” series ( with Ruslan Cheremin , with Baruch Sadogursky );
- new form - thematic interviews ( about performance , about Java DevTools , about the Java Stream API , about Legacy code , about OOP , about testing , about the Panama project , about the Jigsaw project , about technical reports , about containerization , about JVM internals );
- interview with sponsors Joker 2016 ( T-Systems , Luxoft , SEMrush , EPAM , Odnoklassniki , Sberbank-Technology ).
The real pearls of the above, in my opinion, were interviews with
Baruch Sadogursky and
Vladimir Krasilshchik (both are
Joker 2016 speakers).
')
Compared to previous years, the conference has grown further - there are one and a half times more parallel tracks (six instead of four). The choice of reports to view from several almost equivalent options has become even more difficult. Often there was a feeling of being a child in a pastry shop - bright, tasty and difficult to choose.
A new venue for the conference was launched - St. Petersburg
Expoforum . Beautiful scenery (
one ,
two ) and
speakers with the
organizers , decorating the conference with their presence.
Conference opening
Conference organizers (Alexey Fedorov, Andrey Dmitriev) and its speakers (Oleg Anastasyev, Andrey Paning, Dmitry Bugaychenko) at the opening.

First Day Reports
The reports of the first day were as good as the reports of the second day. The choice made it easier for all the reports to be recorded and later everything could be seen.
What's in a name?Alexey Shipilev, Red Hat
The first report, which sets the general mood of the conference (the so-called
keyout ), began by Aleksey Shipilev. By "warming up" any report of Alexey simply cannot be by definition. Even a slightly lightened topic for
keyout was abundant in technical details, formulas and, of course, traditional aphorisms (“Curve named W”, “don't be afraid to look at your application”, “let's play members a little”).
In a relaxed manner, step-by-step recommendations were given to achieve “sufficient and satisfying” performance. On the second day, Alexey continued the more complex report “Close Contacts of the JMM-degree”.
Shortly before the conference, Alexei moved from
Oracle to
Red Hat , so the red color of the jacket (with the inscription “Oracle” on the chest) was quite appropriate here.
Groovy Puzzlers S03 - so grub so grub!Baruch Sadogursky and Victor Gamov
Baruch and Viktor incendiaryly presented the third season of
Groovy Puzzlers (after the
first season at
Joker 2015 and the
second season at
JPoint 2015 ).
The rules are the same - try to guess (not looking for clues), actively vote, correctly explain your answer. By the middle of the report, the audience was able to stir up. I think that the result was equally liked by both the audience and the speakers.
Native code, off-heap data and javaVladimir Ivanov, Oracle
I am following with interest the fate of the
Panama project, the results of which will be available no earlier than
Java 10 . Vladimir is one of the most respected experts in this field. A detailed comparison was made with the
Java Native Interface (
JNI ) and the
Java Native Runtime (
JNR ), showing the advantages and disadvantages of each solution.
To some extent, what was told (except for
Panama, it was also about
VarHandles ) was supplemented by a
report by Alexey Shipilev about VarHandles from JPoint 2016.
Fads Stream APITagir Valeev, JetBrains
Another permanent speaker of Java-conferences (and part-star of the Java hub on Habré
lany ), who changed jobs from the last conference (April
JPoint ). Recently, Tagir works at
JetBrains , which is good news for all fans of this company's products.
The report continued the topic of the
Stream API , launched in the reports at
JBreak 2016 and
JPoint 2016 . It was in this report that they talked about bizarre, strange, illogical, at first glance, behavior in some cases when working with streams. In the second photo, Tagir demonstrates a random number generator in the form of cubes, as an auxiliary attribute to "Whim Number 3". I think that the audience did not regret the choice of the dock, the hall was full.
Riding jet streamsVictor Gamov, Hazelcast
Victor Gamow, co-founder and co-host of the podcast
Debriefing , who is also an employee of
Hazelcast, picked up the topic of using streams in the next report.
The traditional (on one computer) application of streams has been replaced by distributed using
Hazelcast and
Hazelcast Jet . In
the code shown, data manipulations were performed with the English text “War and Peace”, if you wish, examples can be viewed and run.
Beating Threads - live coding musicSam Aaron, University of Cambridge
Sam Aaron’s very curious and informative report concluded the first day of the conference. Sam demonstrated his
Sonic Pi program (a very beautiful and user-friendly website of the program) intended for music live coding.
In addition to entertainment use (DJ at the disco), Sam positions it as an auxiliary tool for learning programming (there is even a
lesson plan on the site). Distributions for
Raspberry Pi ,
macOS ,
Windows ,
Linux are available . The source code is on
github .
The report was rather academic in nature, Sam really came off at the party of the first day of the conference (see
video ). More videos are on
Sam's official YouTube channel .
Guests "debriefing" on the first day
Innovation of the conference was the podcast site
Debriefing . Residents of the podcast interviewed organizers, speakers and participants.
Alexey Fedorov, surrounded by the leading podcast (Anton Arkhipov, Victor Gamov, Alexey Abashev, Baruch Sadogursky). Interview with representatives of the company
Crossover .

Conversation with Ivan Krylov, Alexei Shipilev, Andrei Dmitriev. Interview with Gleb Smirnov.

Closing day one
Presentation of gifts to program committee members - Andrey Kogun (
jug.msk.ru , first shot), Vladimir Sitnikov and Vladimir Krasilshchik (second shot). Receiving a gift Tagir Valeev (third shot).

Second day reports
The first three reports of related topics were simply ideally formed into a sequence for viewing: “From Java to Assembly: Down the Rabbit Hole”, “Life Cycle of the JIT Code” and “Baytkod for Inquisitive People”.
From Java to Assembly: Down the Rabbit HoleCharles Nutter, Red Hat
Charles is one of the leaders of the
JRuby project. The title of the report coincides with the title of the first chapter of
Alice's Adventures in Wonderland (
Alice in Wonderland ). The presentation used the classic illustrations of
John Tenniel from the first editions of both Carroll’s books about Alice.
The analogy between
Wonderland and
JVM is quite successful, the style of presentation and the construction of the report are also quite original. In an interesting form, the path from
Java source code to native code was shown - compiling to bytecode, interpreting bytecode, JIT compiling to native code. In addition, features of the implementation of
final- fields,
synchronized ,
volatile ,
switch statements for strings, lambda expressions were disclosed.
JIT code life cycleIvan Krylov, Azul Systems
The logical continuation of the previous report was the report of Ivan Krylov about the
Just-in-time (
JIT ) compilation. In addition to the transformation of code, profiles and deoptimization cases, 5 levels of compilation (with possible transitions between them) and 4 existing
APIs for tuning compilation were mentioned.
An interesting story was about
ReadyNow - a technology specific to the
Azul Zing virtual machine. He also mentioned about the even more increased interest from
Oracle for the static compilation of
Ahead-in-time (
AOT ), see
JEP 295 .
Baytkod for inquisitiveAnton Arkhipov, ZeroTurnaround
Anton Arkhipov perfectly completed the series of the first three reports of the second day, talking about Java bytecode: the set and types of instructions, the peculiarities of working with the stack and the table of local variables, an overview of the available tools.
The tools mentioned were
Java Bytecode Editor ,
ASM Bytecode Outline plugin for
IntelliJ IDEA and
ObjectWeb ASM . The example shown was available on
GitHub .
Java 9 Modularity in ActionSander Mak, Luminis Technologies
The burning topic, which everyone will inevitably face in the near future (or not soon, if the release of
Java 9 is once again postponed) is modularity (the
Jigsaw project). Sander is the co-author of
O'Reilly’s Java 9 Modularity book, and is therefore well versed in this matter.
In addition to general issues (modularity goals, modularity history within the
Java ecosystem), the current state (
Java 9 has not yet come out) is shown with code examples.
Evolutionary designKirill Tolkachev and Alexander Tarasov, Alpha Laboratory
The brilliant duo of Kirill Tolkachev and Alexander Tarasov this time interested in the topic of evolutionary design. The rapid and lively narrative (189 slides per hour of the report) demonstrated the evolution of the architecture and technology stack under the influence of changing requirements, accumulating experience and emerging new tools and methodologies.
Particularly interested in the grand "technology table", which was formed during the report.
Pragmatic performanceGil Tene, Azul Systems
Gil is co-founder and CTO of
Azul Systems . His report echoed the first report of Aleksey Shipilev, who also called for a more pragmatic approach to application performance.
Various metrics and approaches to evaluating performance were given. Recommendations are given for understanding the true needs in the design and implementation of products.
As the final report of the conference, not overloaded with technical details, was more than appropriate and easy to understand.
Guests "debriefing" on the second day
Communication with Alexander Tarasov. Tagir Valeev and Andrei Kogun.

Sergey Egorov and Dmitry Chuiko. Anton Arkhipov and Alexey Fedorov, summing up.

Conference closing
General photo of all those involved in the preparation of the conference - organizers, volunteers and speakers.

Andrei Dmitriev, Alexey Fedorov, Gil Tene. Ekaterina Kurilova surrounded by volunteers.

Results
The usefulness of any conference is to:
- the value of the information contained in the reports;
- convenience of perception of this very information.
To achieve these goals at this conference:
- significantly increased the number of reports (reports almost six times more than in this review);
- there are more speakers, both Russian-speaking and English-speaking;
- organized discussion zones in which due to the increased intervals between reports, you can continue to communicate with the speakers;
- experimentally appeared and well recommended the podcast “Debriefing”;
- for the first time given the opportunity to view the main track of the conference .
Alas, on the first day there were some problems with the broadcast, successfully solved by the beginning of the day of the second (
self-critical tweet about it). Minor inconvenience caused a forced transfer to a later time on the first day of the report of Anton Arkhipov. All other technical and administrative issues were resolved as they arose and were hardly noticed by the participants.
Presentation files are available on the
website of the conference , the link to the video of all reports has already been sent to the participants who filled out the review.

What are your impressions of the conference?
UPD: The news, voiced by Andrei Dmitriev at the conference, finally received documentary confirmation - Alexey Fedorov was
officially named the new
Java Champion . Congratulations to Alexei with a well-deserved reward !!!