This is a report about my experience Devoxx 2018, which took place from Monday 12th November until Friday 16th November. The last time, I was in Antwerp was exactly two years ago, and I was looking forward to seeing where the level of this conference was. I asked myself who would be main influencers, the people who were expressing great ideas, wisdom, the folk who would be kind, be open in mind like a parachute. I always felt this particular conference is sort of like a thermometer of the technology community in general, especially the Java. I was also interested in some frank opinions from folk who attended the inaugural Oracle Code One, which took place 3 weeks in from Devoxx, in October. This report is late #0.
I think the SSD HDD drive 512GB has finally given up the ghost. Whatever, it is the only reason
I believe that I am seeing the spinning beachball on waking up from hibernate and reboot. Damn!
Devoxx event started with long registration period as usual. I missed the first 24 minutes of Burr Sutter’s university talk, 9 Steps to Awesome with Kubernetes. I actually enjoyed this talk a lot. I was impressed with the speed, activity and technology know-how that Burr Sutter presented with iTerm2, Chrome web browser and the Mac OS X environment. The live demonstrations were very effective and cool. Burr was working off Asciidoc (yes that tool again).
The sample code and the tutorial are all available online on Burr Sutter’s Github account I was very glad that I chose this university session, because personally and professionally, I have looking into Kubernetes for a while. The industry has now serious momentum into the technology; there are implementations for AWS (Elastic Kubernetes Service), Google Kubernetes Engine, and also Microsoft Azure. As Burr said, if you learn kube then effectively you learn about orchestrating servers (pods) and their services in the other cloud providers. (Although, I would say, for serious DevOps and platform engineer, one still needs to under limitations the PAYG costs of the chosen IAAS solution.)
As usual there were competing talks to this one, Lambda and Streams Master Class by Jose Paumard and Stuart Marks would have been my other choice.
In the afternoon, I stayed behind and went to the room 8 and sat in the full three house of Venkat Subramaniam’s talk, Java Streams vs Reactive Streams: Which, When, How and Why? This was an excellent presentation and I was very glad I could attend it and stay awake for most of it. I certainly understood the reason why Venkat thinks functional programming is unworthy when certain programming languages omit the capability of lazy evaluation. Composition of functions is just not enough, I agree with Venkat.
I bumped into Oliver Gierke in the late afternoon. This was probably my third hallway conversation of the day. Oliver talked about the Spring Data project, and had some complaints about open source and users. We talked about the past times, in particular, the Java Posse Roundup and he asked me about the Winter Tech Forum. I told him about the change of feel, only Carl Quinn now attends the open space conference. It is still organised by Bruce Eckel. Oliver Gierke got me an invite to the Bruno’s private social network group. He was going to join some people for dinner. I had nothing else to do, so I tagged along.
First, we went to one of the Tools-in-Action talk, A Dozen Ways to Hack Your Brain to Write Fluently by Dan Allen. This was really interested presentation and I believe some of the recipes may help when you are technical writing a blog, an article of a magazine and also project documentation. Some of the techniques, I recommend a little from public speaking.
I met up with Andres Almiray, Ixchel Ruiz, Dan Allen, Burr Sutter, and Bruno Borges and Oliver Gierke on the top floor. He jumped into his rented Volvo car and headed of the Peerdestal restaurant near the cathedral. I dropped my laptop bag and goods at the hotel first. Monday night ended with a nice a la carte meal curtesy of Red Hat, IBM and Pivotal. Simon Maple, formerly of Zero turnaround and now #1 Dev Rel at Snyk turned up much later.
a serious travelling developer evangelist.
Tuesday, I was well wary, but I attended by Joe Grandja, Implementing Microservice Patterns with Security Patterns and Spring Boot Protocols Security. Overall, I thought most of their presentation was a bit DRY. There was a lot process going into there. Maybe it was my impression of the talk, because I was not sure how much more I learnt about Spring Security. I was disappointed, because they focus on one particularly OCID client, Cloud Foundry, so maybe it was not necessarily transferable to another implementation. Maybe, because security is usual deep and that particular knowledge is key in every single enterprise business, I thought give them the benefit of the doubt. However, I was sorely tempted to also attend the alternative session Kotlin Deep Dive.
At lunchtime, I drank more coffee, breaking a rule not to have any form cocoa caffeine in the PM. I wanted to go a machine learning talk and so I was rather intrigued by the Tuesday afternoon university talk: From 0 to Deep Learning in 3 hours, by Yannis Bres. I actually thought this presentation was really interesting thought-out and quite decent. For one, it seemed to me, Yannis had taken a leaf from Dan Allen, about structuring the outline of the talk. I also thought Yannis was convivial and animated to keep us all entertained for about 240 minutes or so. I was left wanting more. It would appear Tensor Flow is where it is at, however, he pointed out several misdirections. The original Andrew Ng course on machine learning on Coursera is outmoded. Don’t even bother going there, because the material is low-level mathematical, in other words it is tough to learn, and the subject matter is too broad. Unless you want to write the actual computer algorithms for machine learning as a starter, and also then use that as basis for coding serious deep learning then good luck and go ahead. Instead, pick up a decent book on ML, with algorithms already in place. He recommended Deep Leaning with Python book published by Manning
My final talk of the day was Apache Kafka and KSQL in Action: Let’s Build a Streaming Data Pipeline! by Robin Moffat. I thought this was a decent talk. Again, it sold me on the principles of Kafka and the way that sales and marketing could write SQL like to find PKIs was amazing. If anything Jakarta EE needs to standardise around Kafka and similar products to replace the old API: Java Message Service,
#2 but that is another story for another time.
In the future, most applications will rely on reactive messaging. Apache Kafka is an interesting project,
because it build around stream processing and around topics and it is asynchronous. Asual
kafkaStreamalready participates with JDK 8 Lambdas.
There no such Lambda support for JMS with Java EE 8, maybe in a future Jakarta EE they might consider. It might be too little, too late.
I also can tell that you many well-known organisations are building Data Lake using Apache Kafka.
One of the memorable hallway conservations of the day, which I had, was with Sven Reimers and Thomas Kruse. Boths are member of the Netbeans Dream Team and they told me good happenings around the Apache Software Foundation embrace of the Netbeans IDE. A very new version version of this familiar tool, Apache Netbeans 9.0 #9
features has been released by the community.
smooth sailing, there are enough people who care enough about this IDE to make sure it still matters.
Netbeans was the first big software repository to be taken over by open source foundation. Jakarta EE
is the second becouse repository and arguably really important, because it will set a marker
for the future expansion of enterprise Java.
Did you know that Apache Netbeans was a Duke’s Choice winner at the Oracle Code One 2018 conference?
I stayed around for the Dan Allen’s BOF session: Writers Write! The Documentation BOF. I walked in the BOF, 10 minutes after it started, and people were contributing much. So I volunteer my experience in writing two technical books, I was really interested to hear other people’s honest views about AsciiDoc. I kept promising myself that I am going to get into it this year. It was one of those technologies that I want to learn. I think it was because I am not writing books anymore that I prevaricated. I saw once again AsciiDoc was great to put together guides, course notes and other technical documentation. Oh! Come on, man, get your finger out and cross it off the bucket-list.
So after this BOF, I went to speaker’s dinner and I was not a speaker this year. I am a Java Champion though.
This was a very interesting day, the opening keynote of the conference. We had Stephan Janssen tell us about Devoxx 17th Edition and how the brand has grown to seven countries. Devoxx USA is going to back next year 2019, a venue is still to be decided. We then had Mark Reinhold present on Java in 2018. He concentrated on the 6 monthly cadence and deliveries for Java 10 and Java 11. The emphasis of faster changes to the delivery in the JDK. If a particular feature does not make in the next release cycle, it will be postponed for the next 6 month release.
Stephan surprised us all with a special Amazon Web Service keynote, which was not advertised in the schedule at all.
The Father of Java, figurehead, Dr James Gosling walked out to the podium.
We were all taken back. AWS announced the preview availability of a Java OpenJDK release distribution called Amazon Corretta (Preview Release) #3.
The Italian product name describes an expresso with a shot of alcohol. The distribution is available for Linux, Mac OS and Windows and of course works on AWS cloud services in a distribution. This was very exciting news from Amazon themselves investing into the future of the Java platform. (Apparently, James Gosling wanted to attend the speaker’s dinner last night, but that would have given the game away.)
In fact, he wanted to attend the speakers dinner on the night before, but that would have given the whole game away.
Amazon Corretta is the answer to puzzle, we in the Dev-Ops and Platform Engineering community have been debating for while.
Should we run Open JDK or Oracle’s JRE in a cloud environment such Amazon Web Service? Is it legally?
How will Java be supported in the cloud for the long-term?
Well now we know one very good answer is Amazon Corretta?
Finally, we had an amazing keynote by Venkat Subramaniam, which was all about expanding our horizon, embracing multiple programming languages, and methodologies. In short a shout-end for polyglot personalities in Java development community.
I attended Nicolai Parlog’s talk about To Jar Hell and Back – A Live Migration to Java 11. This talk was rather very nice, once again it was a good reminder of where we are attempting to go with modularisation. I was disappointed by some of his remarks about the state of the art Java compilation tool-chain, his opinion was that Apache Maven #4 and
still don’t have modules figured out. I also think, because most the community is tending Java 8 project for production, we have not yet seen the need to push for better support. The presentation was very good and clear in the instructions to getting port of a project out there. We, software developers, are dependent on the library writers getting their module names and exporting them out though.
and working with Java 11. Nevertheless the full support of modules is slow going,
and the shocking news was there are only 10 in the whole wide world supporting
Apache Maven. In my humble opinion, this is disgraceful for such an important
tool in the build-chain. Benjamin Winterbe wrote an recent article about
Maven support for Java 11.
The information is well over six months old. Some module expert opined that Gradle
have built incorrect solution for module support for Jigsaw. Some bleedy engineers
are becoming very frustrated about the delay.
“Please fix this A.S.A.P”
In the afternoon, I sat in Mark Reinhold’s talk about Java, Today and Tomorrow. He covered the important OpenJDK projects right now: * Amber – right sizing language ceremony, * Loom – Continuations & fibers, * Panama – Foreign-function / data interface and * Valhalla – Value types & specialised generics. I particularly like the idea of case classes / data classes coming into the main Java programming language with the pattern matching concept.
My next talk was Adrian Hornsby – Patterns for building resilient software systems from Amazon Web Services. It was fairly interesting presentation, I think for a newbie it would have been great, however, much of the content, reliance of Netflix OSS had been done many times before in my humble opinion. I didn’t learn many patterns specific to Amazon Web Services.
The new service name AWS Systems Manager Session Manager for SSH is cumbersome to remember… If I am understanding this correctly, we can provision directly from a session template, but one still needs an Agent to be installed first of all.
Finally, I ducked into two talks simultaneously; I was swapping around Jürgen Höller, Spring Framework 5.1 and JDK 8 and JDK 11 and Deepu K Sasidharan, Why you should love TypeScript – a practical guide. Well Spring Framework 5 can work in module container system, the platform or framework is not modularised into modules. Developer can do that work themselves, but only Spring Framework 6 will serious work begin. The main thing that Jürgen emphasised was runtime compatibility of enterprise applications. I guess that he was being very pragmatic to modules with breaking existing systems. I loved the introduction to Typescript that I saw, it reminded of the fact that two years ago at Devoxx, Angular and React framework were the rage here. This was the closest talk I saw to advanced web UI.
The last talk of the day was Arun Gupta, Java developer’s journey in Kubernetes land. This was for me yet another seller of the Kubernetes story, of how relevant this tool has been and is expected to grow. I found this talk like high-level business version of Burr Sutter detailed talk.
The first talk of the day was Kubernetes: Your Next Java Application Server with Burr Sutter. The session was about re-evaluation the concept of application server, as a framework that provides library component, a server environment and facilities to create web applications. There is a well-known standard API that defines the software platform, the server provides load-balancing, federation and clustering, and availability through fault tolerance. I was surprised to learn that the recent Kubernetes release helps many of these concepts. Burr Sutter said that Kubernetes removes the actual need to deploy Eureka servers, in other words service discovery is now built-in. This talk has solidified my recent thought-process on the future of Jakarta EE as cloud-native platform.
I was conflicted on the next session. I wanted to go Jakarta EE – Microprofile and Web Standards on Stage Hacking with Adam Bien] #7, but I also wanted to go and watch Demystifying Kafka with Nakul Mishra and also attend Serverless Java: Challenges and Triumphs with David Delabassee. In the end, I did neither, because I was pulled away into a private conversation, a very interesting discussion with some stellar folk. That was that.
are delivery knowledge simultaneously. Now with Devoxx conferences, the rooms are recorded individually into
streams. It is possible to watch talk much later on the Devoxx Youtube channel.
I definitely did not miss the next session with Mark Heckler, Full-stack Reactive Java with Project Reactor & Spring Boot 2. Actually, this talk was less about Java, but illustrated fundamental excellence of Domain Specific Language capabilities of Kotlin. #8
This was a really interesting talk with the advantages of reactive programming. I really think Kotlin with Spring Boot appears fluent and very readable. I like the concept of
Flux<T> generic value holder types. #10
Together, Kotlin’s data classes make the actual development look like a doddle. Of course, Mark Heckler, had to keep explaining Kotlin concepts to Java engineers, but the code was straightforward.
The great tick to modern methods is that reactive events, can be composed and combined together.
When say a web user clicks on a screen, a publisher emits a generic methods and another subscriber will
eventually receive that event, and find out the information.
Moreover this mechanism is supposed to be asynchronous from the get-go!
which can only send one result.
Monois special case of a
Flux, which is a reactive publisher designed to set undetermined
number of elements (it could zero elements!)
I was gravitating to Kotlin and I wanted to know more, so we I chose the next session as Paulien van Alst, From Java to Kotlin: the adventures of smooth migration. Van Alst is a new speaker and she showed initial nerves getting starting in front of big audience. However, she stuck to her agenda and carefully explained the concepts of migration from Java to Kotlin. She used IntelliJ to demonstrate the coding live relatively live. The presentation was a little bit dry, but there was enough clarity to be comprehensive, effective and productive.
I took time to go around the exhibition floor once more and for the finally time before the conference ended. So my next session was Brian Goetz keynote: FP vs OOP.
After the keynote, I stayed around for the movie: The First, I watch the first 60 minutes or it with Devoxx popcorn. Stephan Janssen and team know how to look after hungry engineers. The movie looks great, the acting was very good. I had no idea about the first 30 minutes with Neil Armstrong: no spoilers. I ducked out and head to the Java Champions event at Club Axxes organised by Oracle and that was yet another late night in Antwerp. The event was very kindly organised by Vincent Mayers of Oracle.
I had a late checkout of the hotel so I arrived later and attending Holly Cummins (IBM) talk on The Importance of Fun in the Workplace. IBM has been reinventing itself as a place of innovation. I thought this was an excellent presentation about the group-work-individualistic motivation situation. #11
Effectively, she was asking how we can be more positive in our daily IT lives. What do we really need to share fun with others? Holly Cummins asked us to introspect and reveal that psychologists find it extremely to precisely define the meaning of fun? It sociologically has multiple meanings and contexts across diverse human cultures. The talk highlighted the excitement and the vulnerability of learning, which is to be applauded, because we are involved inside a constant-change profession. Life is far too short all of a sudden; go and watch this talk yourself.
However in academia and natural science defining what exactly fun is, well, proves
to be very terse, dry and actually humourless. You might want to search the net
in order to verify this, especially you don’t believe me. I recommend that
start with this Wikipedia article
and then delve in a blog article
The Psychology of Why You Feel Empty Travelling (and How to Change It)
and good hunting!
The final talk for me was Java Futures, Devoxx 2018 Edition with Brian Goetz. There is not much more to say, but I glad this fellow has a lot more time to spent improving the Java architecture instead of spending time in release planning for big releases every 2 to 4 years. Case / data classes / records will come to the Java language with the pattern matching. Now throw in Venkat’s assertion that functional programing is nothing without lazy-evaluation, then Java in the coming years starts to excite once again. Hear; hear to a new lease of life, a third wind in Java. Let’s go to work and make it so!
I will take the following actions:
- Delve much deeper into cloud provisioning, especially Kubernetes
- Write professional Java 11 code
- Have a grand play Kotlin and Spring Boot 5.2
- Actually learn something significant about machine learing and deep learning; and simultaneous
ramp up my Python skills
- Investigate other AWS service that are hidden and rarely used behind the scenes
That’s all for now. I believe I might back for the Devoxx Belgium 2019 edition, maybe I might submit a talk.
Until then I going to keep on invoicing, billing, invoicing, etc.