JHUG 29-Dec-2020 virtual meetup

The year is coming to end and what a better way to celebrate than a meetup with a lot of java. Indeed we scheduled our last meetup for 2020 on the 29th of December and we really enjoyed it.

Before we go on to recap the meetup, let’s say a few words on how we organize and announce our virtual meetups. 2020 was the year of the covid-19 pandemic. All outdoor activities were suspended including conferences and meetups. Under these conditions we stayed active in our slack channel and we created a newsletter for individuals who did not want to join yet another slack channel. The virtual meetups were organized exclusively in slack. From there, from the active community and the discussion threads we were mining speakers and subjects for presentations. Afterwards it was a simple step to setup a date, a google meet link and publish it on slack.

However, the meetups were not announced on a public platform like meetup.com and some people interested in them, may have missed them. This was a deliberate decision. Most virtual meetups do exactly this: They invite speakers, stream the talk on youtube and publish the link for every one to watch. After the talk they usually use zoom or google meet for the Q&A sessions. For our virtual meetups we wanted to preserve the important aspects of our physical meetups: networking and participation. We wanted the virtual meetups to look more like physical meetups than conferences. That’s why we decided to do the whole meetup on google meet, where everyone can talk or question during a session, and everyone can see each other. We wanted the virtual meetups to be a natural outcome of the community activity on slack not an event that comes out of the blue. So far the feedback is very good. However we are eager to adapt if there are requests to organize meetups that will be streamed on public sites.

And now let’s go to the interesting part, the talks. There were four, each one took about 20 minutes including the Q&A session.

The first one was by Paris Apostolopoulos on Micronaut a java framework from building microservices. Paris talked about the framework, its origins and the current status. The focus was not on the API or the programming model but on maturity, documentation, community and adoption. He made a comparison, with respect to these factors, with spring boot, quarkus and other similar frameworks. The outcome is that if you are seeking a framework to build java microservices from scratch Micronaut is a good and sensible choice and withstands competition. On the other hand if you are already using a similar framework, you are not happy with it, and you are thinking of migrating, Micronaut is not a silver bullet. The problems with microservices very infrequently are caused by the framework and if you have such problems, start by checking your processes and your microservices practices than the framework. Paris’s talk was very interesting and up to the point. You can find the slides here.

The second talk was by Ioannis Canellos who talked about his experience using emacs as his development environment for java. Ioannis was using emacs for some secondary tasks like presentations, email, note taking etc, he liked the tool and was very productive with it. So, why not try it for java development instead of IDEA or Eclipse? Initially the support was not very good but eventually it became mature enough to support the busy days of a full time senior java developer. He made a live demo and showed the plugins he is using for writing and editing code, committing to git and even doing code reviews and PRs on github. He has also written a plugin idee that boosts the emacs experience even more. The question of course was: Ok that was impressive, should we adopt emacs? The point of the talk was not to answer this with a yes or no but to point out that you should invest time to tailor your development environment to your needs and find and tune the tools that make you happy. This is an investment that will pay off as you become more productive by using them. The emacs demo was indeed impressive and made us wonder why we are using the other IDEs. You can find the slides here

The third talk was by Georgios Andrianakis who talked about an engineering subject, IO Thread vs Worker thread demystified. Georgios has been working lately on RESTEasy Reactive a fully reactive new JAX-RS implementation tightly integrated with Quarkus and as you can assume the words event, event-driven, thread, worker, blocking, non-blocking, IO, reactive etc were spinning in his head for days. In his talk he tried to give us a glimpse of the issues that arise in the development of such a framework and more specifically the differences between two architectures, the one using an event loop and the one using a thread pool. He presented the implementation of a concurrent server using both architectures and for each one measured the resource usage (memory, IO bandwidth) and the maximum QPS it could handle. The clear winner was the one with the event loop but this does not mean that threads should be avoided altogether. Giorgos promised to elaborate on a future talk. For now you can check the demo code here.

The fourth and last talk was by Spyros Anastasopoulos. Spyros participated in this year’s Advent Of Code an annual online event that involves solving programming puzzles and he used Java to solve them. He presented his experience with Java in this context, in writing small, self-contained programs where the algorithm matters a lot. Well, java is not as succinct or elegant as python or clojure, but it is reliable and gets the job done. It has a very good readability vs writability ratio and as the program size increases, the static type features help a lot to keep the code manageable and to retain the insights into the problem and the solution. You can find the slides here.

The meetup lasted 2 hours, a bit more than scheduled, because of the extensive Q&A sessions. It seems the subjects interested the attendants a lot and they had interesting comments and questions.

We renewed our meeting for the next year. Very probably it will be a virtual meetup again as we are not expecting to be able to do physical meetups soon, the pandemic is not over yet.

We wish to all of you a happy new year with a lot of Java. Stay safe, stay strong and keep coding.

Written on December 30, 2020