The next meeting of the
Moscow Java User Group was held on May 22, 2017, traditionally in the office of
CROC . Nikita Lipsky and Dmitry Chuiko talked about static (Ahead-of-Time) compilations in the
Java programming
language and its implementation in
Excelsior and
Oracle products.

About speakers
Nikita Lipsky represents the Novosibirsk company
Excelsior , which produces a unique product - a static compiler for the
Java language ,
Excelsior JET . The application is quite popular and feels great on the market, this fall will mark 20 years of its existence. Nikita is one of the initiators of the creation and an active participant in the development of the application.
The company's blog is quite interesting: in addition to announcements of new versions (with plug-ins for
Maven and
Gradle ), there is a description of other useful things like the
Git-plugin for Far Manager and the
plugin for IntelliJ IDEA (written by
Excelsior programmers). Judging by the
survey , you can soon expect something else.
')
Nikita's reports arranged in chronological order:
- “The Story of a JVM in Pictures” ( Java Day Novosibirsk 2011 : presentation , video ; with Vitaly Mikheev)
- “Web 3.0. Futuristic story about the future of the Internet and IT ”( DevDay 2GIS 2012 : video )
- “Java is losing weight. Ask me how? ”( JavaOne Moscow 2013 : presentation , video )
- “Excelsior JET: a review of opportunities” ( JUG.ru-2013 : presentation , video ; with Pavel Pavlov)
- “Excelsior JET: internal architecture” ( JUG.ru-2013 : presentation , video ; with Pavel Pavlov)
- “Entertaining stories from the life of JVM technical support” ( Joker 2013 : presentation , video ; with Misha Bykov)
- “Ahead-of-time compilation” ( Joker 2014 : presentation , video )
- AOT Compilation ( JavaDay Kiev 2014 : presentation , video )
- “Java is losing weight. Reducing the size of a Java distribution package without dependencies ”( JavaDay Kiev 2014 : presentation , video )
- “Java restart with WebFX” ( FOSDEM 2015 : presentation , video )
- "Round table. Refactoring and technical debt ”( JPoint 2015 : video )
- "Round table. The future of the Java platform ”( JPoint 2015 : video )
- “Client-side Java outside the browser: make native clients in Java” ( Joker 2015 : presentation , video )
- “JVM: a short course in general anatomy” ( Joker 2015 University Day : presentation , video ; with Vladimir Parfinenko)
- "Delivering Native User Experience in Client-Side Java Applications" ( JEEConf 2015 : presentation , video )
- "Support for Java 8 in Excelsior JET" ( JBreak 2016 : presentation , video )
- "Support for Java 8 in Excelsior JET" ( JPoint 2016 : presentation , video )
- “JVM: a short course in general anatomy” ( JPoint 2016 Student Day : presentation , video ; with Vladimir Ivanov)
- "Java AOT compilation" ( Geekout 2016 : video )
- "Java 8 support at the JVM level" ( JET Conference Autumn 2016 : presentation , video )
- "Java AOT Compilation" ( JavaZone 2016 : video )
- “Java bytecode verification: when, how, and can it be disabled?” ( JPoint 2017 : presentation , video is currently available only to conference participants)
- "JIT vs. AOT: Unity And Conflict of Dynamic and Static Compilers for Java ”( Riga DevDays 2017 : presentation , video )
- "JIT vs. AOT: Unity And Conflict of Dynamic and Static Compilers for Java ”( GeeCON 2017 : Presentation )
- "Java 9 Modules. Why not OSGi? "( Oracle Code 2017 Moscow : presentation )
Audio with Nikita:
For familiarization with
Excelsior JET, the first
one and
two first reports are most useful (Nikita's joint presentation with Pavel Pavlov on
JUG.ru in 2013), then you can see
stories about product technical support .
Other links:
Habrahabr ,
GitHub ,
Twitter ,
SlideShare .
Dmitry Chuiko works at
Oracle , which has also recently become interested in static compilation. He is an active speaker at both
JUG.ru conferences and others.
Dmitry's reports:
- "New in java.util.concurrent" ( JUG.ru-2013 : video )
- "Review of innovations in java.util.concurrent (JSR166e)" ( JEEConf 2013 : presentation , video )
- “Java Mission Control” ( Java 8 Launch 2014 : video )
- “Fast loading of your classes” ( JUG.ru-2015 : video )
- “CompletableFuture. I want to take and apply "( JUG.ru-2015 : video )
- “CompletableFuture is here” ( JPoint 2015 : video )
- “Completable Future is here” ( JEEConf 2015 : presentation , video )
- "Hotspot and AOT" ( JBreak 2016 : video )
- “Hotspot and AOT: It's time to compile” ( JPoint 2016 : presentation , video )
- “Black mark, StampedLock and his friends. How not to break the pirate code "( JPoint 2016 Student Day : video )
- "Hotspot & AOT" ( JEEConf 2016 : video )
- "Ahead-of-Time Compilation for HotSpot JVM" ( JUG.ru-2016 : presentation , video )
- “Compile ahead of time. It's fine? ”( GeeCON 2017 , JEEConf 2017 : Presentation )
Other slides on
SlideShare .
About reports
For both speakers, the
jug.msk.ru meeting was part of a conference tour round. Nikita’s tour began with his participation in the
release of the 134 podcast
debriefing (from the airport). Next were
Riga DevDays 2017 ,
GeeCON 2017 ,
jug.msk.ru and
Oracle Code 2017 Moscow . Dmitry's tour included also
GeeCON 2017 and
jug.msk.ru , then
JEEConf 2017 .
The meeting and the theme of the meeting (
AOT ) were of great interest. At least five speakers of conferences held by
JUG.ru were present as spectators. Those. In total (taking into account Dmitry and Nikita) there was a rare opportunity to see and talk with seven speakers.
Andrei Kogun, together with Nikita (the first picture) and, additionally, Dmitry (the second picture) begins the meeting.

Nikita spoke first. In my opinion, this is the best or one of his best reports. The report lasted two hours, which allowed him to tell more and answer more questions from the audience. The speech greatly interested those present. The questions were good and sometimes
unexpected for the speaker (for example, about comparing the launch time of applications on the SSD).

With the release of
JDK 9 "out of the box" the possibility of static compilation appears, i.e. conversion to the target platform code (the so-called
native ). True, so far only under
Linux . O
JEP 295 ,
JEP 243 and the
Graal compiler was the story of Dmitry. The report was a logical continuation of his previous report
presented earlier at the JUG.ru meeting .

As always, during the break and after the reports, those who wished had the opportunity to communicate and ask questions on topics of concern to them. And, of course, drink tea with buns.

Presentations of the meeting reports:
AOT for Java: Myths and Challenges of Nikita and
Compile ahead of time. It's fine Dmitry Photos from the meeting:
group in VK ,
Google+ .
Unfortunately, for technical reasons, it was not possible to record a video (the first and, hopefully, the last time in the history of
jug.msk.ru ). Video from previous meetings available
on YouTube .
Subscribe to the newsletter announcements of the following meetings
jug.msk.ru.