Recall all: Java JET conference. September 28, 2015. Report
My name is Dima and I am a developer. I live in Minsk, I like to attend foreign conferences. Well, I got tired of driving once and decided to go locally. But there was little choice. Therefore, together with his faithful companion, we decided to make the conference independently. Called JET. Because it starts with J , like Java, but you can also make the slogan " Let's fly to Java world ". Well, how was it?
Opening
It all started with a speech by the organizers, where we shared how the idea of the conference was born. They told about how we had gone the way in 4 months of preparation, and what we finally got. And it turned out - 3 streams of concentrated knowledge, 300 participants and the first brick in the foundation of the house of the JET conference.
A place
We really like the format of some European conferences that are held in the cinema. Therefore, we had no choice, it was necessary to find a suitable one. The choice almost immediately fell Silver Screen, which is located in the very center of the city of Minsk.
')
Keynout
Since JET was organized for the first time, we really wanted to start from the deepest sources of knowledge.
Therefore, we invited Bruce Ekkel to speak, which, as you could see in the summer on Habr's banners, called everyone with him. Bruce gave an assessment of the development of well-known programming languages and was not very pleased with the way Java itself developed. But no need to be sad, this is a good opportunity to look at technology from a critical angle in order to avoid similar mistakes in the future.
Activities
Among the activities of the sponsors of the conference was the most striking Java-bar. Unfortunately, non-alcoholic, but no less professional. The real barman prepared cocktails in exchange for a completed questionnaire or in exchange for a token received for the correct answers to the speakers' questions.
And those who had little granite knowledge during the sessions, could get an additional portion of it, solving puzzles. Each sponsor had them, even we, the organizers, came up with their own questions, answering which, it was possible to get a beer ticket for the final day of the party.
And, of course, we could not invite the guys from the Minsk museum of retrocomputers to tell and amuse the participants with their collection. Here were all the familiar game consoles, and you could also see the first portable computers.
Reports
The idea of separating conference flows arose by itself. My interests of recent years have served as a reason to focus on these topics. It was very nice to see the openness of the speakers who helped realize this idea. Thanks to them!
The first thread was called JVM Inside .
Rafael Winterhalter on simple examples told about how the compilation takes place in java bytecode. Going further and further we could create whole packages of classes using only bytecode instructions. In his second report, Rafael told about what popular optimizations are happening during the JIT compilation. And that sometimes properly written code can significantly reduce the overhead of its execution.
Volker Simonis talked about the final modifier, and why it is not final. He showed how the restrictions imposed by the compiler can be easily circumvented by various “unsafe” hacks, and what this leads to in real code. Well, in the end you can learn what to do to make final truly final.
Alexey Fedorov delivered a sensational report on the internal structure of non-blocking primitives in service with jdk, starting with the 5th version. He also demonstrated how these primitives are implemented, how you can use them, and why it is sometimes better not to use them.
Andrei Pangin told with great enthusiasm why unsafe is such a popular tool for developing low-level pieces of software. But I was not happy that they decided to cut it out, and that, unfortunately, in exchange we have a very weak API at the current stage of the platform development.
The second stream is Solutions Tour .
Lesha Zinoviev reworked his report a year ago, where he explains the place of the Java developer in projects related to the analysis and creation of data. What typical tasks are encountered on similar projects, what algorithms there are for solving these problems. And he stressed that the variety of powerful and effective tools in the modern world of JVM gives the advantage to get such a task for the implementation of a Java programmer.
Zhenya Borisov was not surprised, but continued to conquer. Having participated in such a dynamic report about the spring framework, it is unlikely there will be people who do not understand how it works. You will learn about the life cycle of spring, what standard bean post proccesors exist and how to create your own. How to write an improved version of the Deprecated annotation using bean factory post proccesor. And what contexts spring generally exist. With the second report, Zhenya, together with Baruch Sadogursky, consolidated their success and knowledge of the audience with a series of spring puzzlers.
Nikolai Alimenkov knows firsthand that tests are important. But tests for code that is directly responsible for working with data are doubly important. Want to know how to write them and what tools help us in this? Almost an hour-long master class from Nicholas on a very bright and clear example.
Vladimir Lyashkevich took up the task of implementing a distributed query terminator. He showed a lot of different approaches, which at first glance may seem correct, but have in themselves hidden pitfalls for the beginner. And in the second part of his speech, he told what knowledge accumulation practices can be used to avoid situations of creating your own bikes.
Well, the third stream is Functional Boost .
Baruh Sadogursky, of course, with the help of his classic puzzlers-style tasks, was not without help. Yes, precisely, about the strangeness or, more correctly, the features of Groovy, understanding that, you can noticeably simplify your life. And also Baruch had a solo performance. Want to write AST transformation? For Groovy, doing it is, well, just great fun. The main thing is not to overdo it.
Roman Grebennikov was somewhat confused by the performance of the Scala language. And I decided to figure it out myself. And the results of this study can be seen in his speech. Who has not heard about the convenient constructions of the language. But other expenses come with comfort. Perhaps you should take a look at bytecode to understand the reasons for these performance problems? But Roman immediately dives to the bottom and is not afraid to demonstrate to the public a somewhat unusual Assembly x86_64.
Adam Warski decided in practice to compare the possibilities of stream data processing using Akka- and Scalaz-streams. He began with a small introduction to the concepts that these frameworks use to work with data. And then showed how to process this data in one and parallel streams. And, of course, using Akka and Scalaz each time.
Alexander Slesarenko has long noticed the existing performance problems of the Scala language. But he also understands the importance of the readability of the code above all. Therefore, highlighting several classes of frequently encountered tasks in various subject areas, a framework called Scalan was created. It allows you to compile high-level code into more efficient / low-level fragments, and which can be written even in an excellent programming language.
A party
Well, as without evening students! This is a great opportunity to discuss the impressions after such a busy day, continue to communicate with the speakers and drink the beer produced in the intellectual battle.
Video
And finally, the top 5 reports of the conference.
Baruch Sadogursky and Zhenya Borisov - The Epic Groovy Puzzlers. Directors' Cut
Zhenya Borisov and Baruch Sadogursky - Spring Puzzlers. The greatest hits