
Joker 2016 Java Conference: Bigger, Stronger, More Interesting
The Joker 2016 conference , held October 14-15, 2016 in St. Petersburg, was perhaps the largest Russian-language Java conference in history. 2 days, 52 reports, 6 parallel tracks, more than 40 speakers, over 1000 participants.

The period immediately preceding the conference was very eventful and eventful:
The real pearls from the above, in my opinion, were interviews with Baruch Sadogursky and Vladimir Krasilshchik (both are speakers of Joker 2016 ).
Compared to previous years, the conference has grown up - 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 candy store - bright, tasty and hard to choose.
A new platform for the conference was mastered - St. Petersburg Expoforum . Great scenery ( one , two ) and speakers with organizersdecorating the conference with their presence.
The organizers of the conference (Alexei Fedorov, Andrey Dmitriev) and its speakers (Oleg Anastasiev, Andrey Pangin, Dmitry Bugaychenko) at the opening.

The reports of the first day were as good as the reports of the second day. The choice was facilitated by the thought that all reports were recorded and later everything else could be viewed.
What's in a name?
Aleksey Shipilev, Red Hat

The first report setting the general mood of the conference (the so-called keynote ) was started by Aleksey Shipilev. By “warming up”, any report by Alexey simply cannot be by definition. Even the topic, slightly lightened for keynote, was replete with technical details, formulas and, of course, traditional aphorisms (“curve them.”, “Don't be afraid to look at your application”, “play a little bit with members”).
In a relaxed way, step-by-step recommendations were made to achieve “sufficient and satisfying” performance. On the second day, Alexey continued with a more complex report, “Close Contacts of the JMM degree”.
Shortly before the conference, Alexey 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 - Groove So Groove!
Baruch Sadogursky and Victor Gamov

Baruch and Victor 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 (without looking for clues), actively vote, correctly explain your answer. By the middle of the report, the audience was able to stir. I think that the resulting result was equally liked by the audience and speakers.
Native code, Off-heap data and Java
Vladimir 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 Java Native Runtime ( JNR ), showing the advantages and disadvantages of each solution.
To some extent, what was told (except Panama was also about VarHandles ) was supplemented by Alexey Shipilev 's report on VarHandles with JPoint 2016.
Stream API quirks
Tagir Valeev, JetBrains

Another regular speaker at Java conferences (and part-time star of the Java hub on Khabr lany ), who changed jobs from the last conference (April JPoint ). Recently Tagir has been working for JetBrains , which is good news for all fans of this company's products.
The report continued the theme of the Stream API , which began in reports at JBreak 2016 and JPoint 2016.. It was in this report that the talk was 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 props to "Fad No. 3". I think that the audience did not regret the choice of the dock, the hall was full.
Riding on jet streams
Viktor Gamov, Hazelcast

The topic of using streams was picked up in the next report by Victor Gamov, co-founder and co-host of the podcast Debriefing , who is also an employee of Hazelcast .
The traditional (on one computer) application of the 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 desired, examples can be viewed and run.
Beating Threads - live coding music
Sam Aaron, University of Cambridge

A very curious and informative talk by Sam Aaron concluded the first day of the conference. Sam demonstrated his Sonic Pi program (a very beautiful and convenient program site) designed for live music coding.
In addition to entertaining use (DJ at a disco) Sam also positions it as an auxiliary tool for learning programming (the site even has a lesson plan ). Distributions available for Raspberry Pi , macOS, Windows , Linux . The source code is on GitHub .
The report was, rather, academic in nature, really Sam came off at a party on the first day of the conference (see video ). More videos on Sam’s official YouTube channel .
The conference’s innovation was the podcast site Debriefing . Residents of the podcast interviewed the organizers, speakers and participants.
Alexey Fedorov surrounded by leading podcasts (Anton Arkhipov, Victor Gamov, Alexey Abashev, Barukh Sadogursky). Interviews with Crossover representatives .

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

Presentation of gifts to the participants of the program committee - Andrei Kogun ( jug.msk.ru , first shot), Vladimir Sitnikov and Vladimir Krasilshchik (second shot). Tagir Valeev, receiving the gift (third shot).

The first three reports of related topics simply ideally formed a sequence for viewing: “From Java to Assembly: Down the Rabbit Hole”, “Life cycle of the JIT code” and “Bytecode for the curious”.
From Java to Assembly: Down the Rabbit Hole
Charles 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 classic illustrations by John Tenniel from the first editions of both books by Carroll about Alice.
The analogy between Wonderland and JVMquite successful, the presentation style and the construction of the report are also very original. In an entertaining form, the path from the Java source code to the native code was shown - compilation into bytecode, interpretation of bytecode, JIT compilation into native code. In addition, the implementation features of final- fields, synchronized , volatile , switch statements for strings, lambda expressions were disclosed .
Life cycle of the JIT code
Ivan Krylov, Azul Systems The

logical continuation of the previous report was the report of Ivan Krylov about Just-in-time ( JIT) -compilation. In addition to code transformation, profiles and cases of deoptimization, 5 compilation levels (with possible transitions between them) and 4 available APIs for tuning compilation were mentioned .
An interesting story was about ReadyNow , a technology specific to the Azul Zing virtual machine . Mentioned also of Oracle ’s even greater interest in static Ahead-in-time ( AOT ) compilation , see JEP 295 .
Bytecode for the curious
Anton Arkhipov, ZeroTurnaround

Anton Arkhipov perfectly completed a series of the first three reports of the second day, telling about Java bytecode: a set and types of instructions, features of working with the stack and table of local variables, an overview of the available tools.
Of the tools mentioned were Java Bytecode Editor , ASM Bytecode Outline plugin for IntelliJ IDEA and ObjectWeb ASM . The example shown is available on GitHub .
Java 9 Modularity in Action
Sander Mak, Luminis Technologies A

burning topic that everyone will inevitably have to face soon (or not soon if Java 9 is delayed again) - modularity ( Jigsaw project) Sander is a co-author of O'Reilly’s Java 9 Modularity book , which is why he is well versed in this matter. In addition to general questions (the goals of modularity, the history of modularity within the Java ecosystem ), the current state ( Java 9 has not yet been released) is shown with code examples. Evolutionary Design by Kirill Tolkachev and Alexander Tarasov, Alpha Laboratory

The brilliant duet of Kirill Tolkachev and Alexander Tarasov this time was interested in the theme of evolutionary design. The fast-paced and lively narrative (189 slides per hour of the report) demonstrated the evolution of architecture and technology stack under the influence of changing requirements, accumulating experience and emerging new tools and methodologies.
Particularly interested in the grandiose “technology table”, which was formed during the report.
Pragmatic Performance
Gil Tene, Azul Systems

Gil is co-founder and CTO of Azul Systems . His talk echoed the first talk by Alexei Shipilev, who also called for a more pragmatic approach to application performance.
Various metrics and approaches for evaluating performance were presented. Recommendations are given for understanding the true needs of product design and implementation.
As the final report of the conference, not overloaded with technical details, it was more than appropriate and easy to understand.
Communication with Alexander Tarasov. Tagir Valeev and Andrey Kogun.

Sergey Egorov and Dmitry Chuyko. Anton Arkhipov and Alexei Fedorov, summing up.

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

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

The usefulness of any conference is:
To achieve these goals at this conference:
Alas, on the first day there were some broadcast problems that were successfully resolved by the beginning of the second day (a 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 conference website , a 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 evidence - Alexei Fedorov was officially named the new Java Champion. Congratulations to Alexei with a well-deserved award !!!

The period immediately preceding the conference was very eventful and eventful:
- launch of the Java portal JUG.ru ;
- numerous speeches by Joker speakers at meetings of the St. Petersburg and Moscow Java User Group ;
- interesting articles on Habrahabr with an insider from JUG.ru about the preparation of conferences ( about sponsors , about preparing online broadcasts , about the administrative component );
- classic one-on-one interviews by Alexei Fedorov from the series “Without Slides” ( with Ruslan Cheremin , with Barukh Sadogursky );
- a new form - thematic interviews ( about performance , about Java DevTools , about the Java Stream API , about the Legacy code , about OOP , about testing , about the Panama project , about the Jigsaw project , about technical reports , about containerization , about JVM internals );
- interviews with sponsors of Joker 2016 ( T-Systems , Luxoft , SEMrush , EPAM , Odnoklassniki , Sberbank-Technology ).
The real pearls from the above, in my opinion, were interviews with Baruch Sadogursky and Vladimir Krasilshchik (both are speakers of Joker 2016 ).
Compared to previous years, the conference has grown up - 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 candy store - bright, tasty and hard to choose.
A new platform for the conference was mastered - St. Petersburg Expoforum . Great scenery ( one , two ) and speakers with organizersdecorating the conference with their presence.
Conference opening
The organizers of the conference (Alexei Fedorov, Andrey Dmitriev) and its speakers (Oleg Anastasiev, Andrey Pangin, 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 was facilitated by the thought that all reports were recorded and later everything else could be viewed.
What's in a name?
Aleksey Shipilev, Red Hat

The first report setting the general mood of the conference (the so-called keynote ) was started by Aleksey Shipilev. By “warming up”, any report by Alexey simply cannot be by definition. Even the topic, slightly lightened for keynote, was replete with technical details, formulas and, of course, traditional aphorisms (“curve them.”, “Don't be afraid to look at your application”, “play a little bit with members”).
In a relaxed way, step-by-step recommendations were made to achieve “sufficient and satisfying” performance. On the second day, Alexey continued with a more complex report, “Close Contacts of the JMM degree”.
Shortly before the conference, Alexey 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 - Groove So Groove!
Baruch Sadogursky and Victor Gamov

Baruch and Victor 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 (without looking for clues), actively vote, correctly explain your answer. By the middle of the report, the audience was able to stir. I think that the resulting result was equally liked by the audience and speakers.
Native code, Off-heap data and Java
Vladimir 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 Java Native Runtime ( JNR ), showing the advantages and disadvantages of each solution.
To some extent, what was told (except Panama was also about VarHandles ) was supplemented by Alexey Shipilev 's report on VarHandles with JPoint 2016.
Stream API quirks
Tagir Valeev, JetBrains

Another regular speaker at Java conferences (and part-time star of the Java hub on Khabr lany ), who changed jobs from the last conference (April JPoint ). Recently Tagir has been working for JetBrains , which is good news for all fans of this company's products.
The report continued the theme of the Stream API , which began in reports at JBreak 2016 and JPoint 2016.. It was in this report that the talk was 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 props to "Fad No. 3". I think that the audience did not regret the choice of the dock, the hall was full.
Riding on jet streams
Viktor Gamov, Hazelcast

The topic of using streams was picked up in the next report by Victor Gamov, co-founder and co-host of the podcast Debriefing , who is also an employee of Hazelcast .
The traditional (on one computer) application of the 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 desired, examples can be viewed and run.
Beating Threads - live coding music
Sam Aaron, University of Cambridge

A very curious and informative talk by Sam Aaron concluded the first day of the conference. Sam demonstrated his Sonic Pi program (a very beautiful and convenient program site) designed for live music coding.
In addition to entertaining use (DJ at a disco) Sam also positions it as an auxiliary tool for learning programming (the site even has a lesson plan ). Distributions available for Raspberry Pi , macOS, Windows , Linux . The source code is on GitHub .
The report was, rather, academic in nature, really Sam came off at a party on the first day of the conference (see video ). More videos on Sam’s official YouTube channel .
Debriefing guests on day one
The conference’s innovation was the podcast site Debriefing . Residents of the podcast interviewed the organizers, speakers and participants.
Alexey Fedorov surrounded by leading podcasts (Anton Arkhipov, Victor Gamov, Alexey Abashev, Barukh Sadogursky). Interviews with Crossover representatives .

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

First day closing
Presentation of gifts to the participants of the program committee - Andrei Kogun ( jug.msk.ru , first shot), Vladimir Sitnikov and Vladimir Krasilshchik (second shot). Tagir Valeev, receiving the gift (third shot).

Second day reports
The first three reports of related topics simply ideally formed a sequence for viewing: “From Java to Assembly: Down the Rabbit Hole”, “Life cycle of the JIT code” and “Bytecode for the curious”.
From Java to Assembly: Down the Rabbit Hole
Charles 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 classic illustrations by John Tenniel from the first editions of both books by Carroll about Alice.
The analogy between Wonderland and JVMquite successful, the presentation style and the construction of the report are also very original. In an entertaining form, the path from the Java source code to the native code was shown - compilation into bytecode, interpretation of bytecode, JIT compilation into native code. In addition, the implementation features of final- fields, synchronized , volatile , switch statements for strings, lambda expressions were disclosed .
Life cycle of the JIT code
Ivan Krylov, Azul Systems The

logical continuation of the previous report was the report of Ivan Krylov about Just-in-time ( JIT) -compilation. In addition to code transformation, profiles and cases of deoptimization, 5 compilation levels (with possible transitions between them) and 4 available APIs for tuning compilation were mentioned .
An interesting story was about ReadyNow , a technology specific to the Azul Zing virtual machine . Mentioned also of Oracle ’s even greater interest in static Ahead-in-time ( AOT ) compilation , see JEP 295 .
Bytecode for the curious
Anton Arkhipov, ZeroTurnaround

Anton Arkhipov perfectly completed a series of the first three reports of the second day, telling about Java bytecode: a set and types of instructions, features of working with the stack and table of local variables, an overview of the available tools.
Of the tools mentioned were Java Bytecode Editor , ASM Bytecode Outline plugin for IntelliJ IDEA and ObjectWeb ASM . The example shown is available on GitHub .
Java 9 Modularity in Action
Sander Mak, Luminis Technologies A

burning topic that everyone will inevitably have to face soon (or not soon if Java 9 is delayed again) - modularity ( Jigsaw project) Sander is a co-author of O'Reilly’s Java 9 Modularity book , which is why he is well versed in this matter. In addition to general questions (the goals of modularity, the history of modularity within the Java ecosystem ), the current state ( Java 9 has not yet been released) is shown with code examples. Evolutionary Design by Kirill Tolkachev and Alexander Tarasov, Alpha Laboratory

The brilliant duet of Kirill Tolkachev and Alexander Tarasov this time was interested in the theme of evolutionary design. The fast-paced and lively narrative (189 slides per hour of the report) demonstrated the evolution of architecture and technology stack under the influence of changing requirements, accumulating experience and emerging new tools and methodologies.
Particularly interested in the grandiose “technology table”, which was formed during the report.
Pragmatic Performance
Gil Tene, Azul Systems

Gil is co-founder and CTO of Azul Systems . His talk echoed the first talk by Alexei Shipilev, who also called for a more pragmatic approach to application performance.
Various metrics and approaches for evaluating performance were presented. Recommendations are given for understanding the true needs of product design and implementation.
As the final report of the conference, not overloaded with technical details, it was more than appropriate and easy to understand.
Debriefing guests on the second day
Communication with Alexander Tarasov. Tagir Valeev and Andrey Kogun.

Sergey Egorov and Dmitry Chuyko. Anton Arkhipov and Alexei Fedorov, summing up.

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

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

Summary
The usefulness of any conference is:
- 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 (there are almost six times more reports than in this review);
- there are more speakers, both Russian-speaking and English-speaking;
- discussion zones were organized in which, due to the increased breaks between reports, communication with speakers can be continued;
- experimentally appeared and recommended itself the site of the podcast "Debriefing";
- for the first time given the opportunity to view the main track of the conference for free .
Alas, on the first day there were some broadcast problems that were successfully resolved by the beginning of the second day (a 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 conference website , a 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 evidence - Alexei Fedorov was officially named the new Java Champion. Congratulations to Alexei with a well-deserved award !!!