"Java, even that it can adopt new features like lambdas, streams, var, etc. will always be Java."-, Gerrit Grunwald

Hello wonderful friends!

Meanwhile, we are ready to welcome our nest outstanding speaker,Gerrit Grunwald!

Gerrit is a software engineer with more than fifteen years of experience in software development. He is a true believer in open source and has participated in popular projects like JFXtras.org and his own projects (TilesFX, Medusa, Enzo, SteelSeries Swing, SteelSeries Canvas).

He is an active member of the Java community, where he founded and leads the Java User Group Münster (Germany), he is a JavaOne rockstar and a Java Champion. He is a speaker at conferences and user groups internationally and writes for several magazines.
Gerrit also is running the fantastic blog!

You should definitely serf through his articles!
He perfectly combines the technical stuff with the subtle humor!

What new countries have you “visited” thanks to the online format?

To be honest I did not attend a lot of online events because I was really busy the last couple of months.

If there are Java Champions, perhaps we should add Java Princesses and Java Dragons, too?

Well...good point but does champion not cover princess too? Neverthe

How has your programming style with Java evolved over the past couple of years? What are some of the things that led to the significant improvements?

Thanks to the introduction of lambdas and streams in JDK 8 the code looks much better now because you can get rid of all the anonymous inner classes and loops.
I used that before when I used Groovy which supports lambdas for a long time but having it available in Java improves the readability of your code a lot. The other thing I'm really looking forward to are Records because it removes a lot of boilderplate code.

Do you have any personal habits around development or self-care that you would like to share with our audience?

Over the years I've figured out that it really makes sense to structure your code to be able to read/understand it even years later.
I'm talking about things like putting class variables on top of the class, indent variables by column etc.
This is not for everyone but it helps me a lot to quickly dive back in to older code.

Obviously, projects Valhalla, Loom and Amber have received a lot of buzzes, but there is a healthy level of skepticism about the projects. Do you have any thoughts you’d like to share?

Unfortunately I had not much time to dive deeper into those projects but Loom and Valhalla are looking really promising.I wish I had more time to play around with it but I'm pretty sure those projects will further improve the JVM and especially Java.

What is planned for Java after Java 17? How will it change the everyday life of a Java developer?

Good question...please let me know if you have a good answer to that :)

There are Groovy, Scala, Kotlin, and many others in the family of JVM languages. What features do we miss in Java in comparison with other JVM languages? Elaborate.

Well I think the main difference is that Java, even that it can adopt new features like lambdas, streams, var etc. will always be Java. Meaning to say it is not always the language that has the most elegant way of coding. Because it is already 26 years old it comes with a bit old fashioned code style that sometimes lead to more lines of code to solve a problem compared to languages like Groovy, Scala and Kotlin. Of course sometimes it would be nice to have the abilities of some of the other languages but in the end I always was able to solve all problems using plain java, even if it often meant to write more code. But more code does not mean it's bad code because it does not use so many abstractions which might sometimes be closer to the problem, but that's my personal opinion.

There are plenty of reasons why Java, being one of the older software programming languages, is still widely used. For one, the immense power one wields when using Java is enough to make it their staple—coupled with the possibility of using good Java frameworks that can reduce the turnaround time for big projects. Your favorite framework? What advantages and disadvantages it has?

To be honest there is nothing like my favourite framework. I always try to use the best tool for the job which means it can be a different tool everytime. So I try not to stick to one framework if I can.

In the beginning, Make was the only build automation tool available beyond homegrown solutions. Make has been around since 1976, and as such, it was used for building Java applications in the early Java years.
However, many conventions from C programs didn't fit in the Java ecosystem, so in time Ant took over as a better alternative. Maven continues to use XML files just like Ant but in a much more manageable way. And then, Gradle was built upon the concepts of Ant and Maven. Fancy Gradle or old school Maven? Or Ant?!

I like Gradle most but Maven also has it's charme, so as always it depends, for my private projects I always use Gradle but for some customer projects I also use Maven.

Are we going to use modules ever? When we create a module, we organize the code internally in packages, just like we previously did with any other project. So why are packages not enough?

Well that is a really good question...to be honest I was totally fine without modules even I can see some advantages using them. I guess in the end we will have to live with it now that it is in, it will just take some time to get used to it but in a few years nobody will complain any more.

Despite being so cool, JavaFX almost feels like a separate community from Java. What can we do to improve that?

JavaFX just had a bad start when it came out as JavaFX Script. I think the worst idea Oracle had was to simply name the Java based version simply JavaFX 2.0. People that does not try FX today still think it is slow and not really well supported. It's interesting to see that people are still surprised when they hear that JavaFX can run on mobile devices just fine (and fast by the way) and not only that but also in the browser...without using a plugin. Once again I have to blame Oracle for doing a bad job promoting JavaFX because in the beginning they pushed it like hell and suddenly they just removed it from the delivered JDKs which it came bundled with before. This looked to many people like they dropped it but that's simply wrong, it's alive and kicking.
I personally think it would help a lot if conferences would accept more JavaFX related sessions, I often hear something like "well if it was not JavaFX it might be a good session". People should at least give it a try before they blame it for being useless. It's some kind of mindset that needs to change...which is not really easy...unfortunately.

What was the craziest thing you have seen implemented with JavaFX?

To be honest I was playing around with a lot of crazy stuff a while back where I ran JavaFX apps on all possible devices like smart watches and e-paper displays connected to embedded devices. These things I would still count to some crazy examples what you can do with JavaFX. The other thing that I think is still a freak'n crazy thing is the stuff jpro is doing by running JavaFX in the browser without a plugin. If you check their website you can experience JavaFX in the browser because the whole website is written in JavaFX!

If NASA/ESA come to you and say: “Let’s use JavaFX to implement interfaces in our next space shuttle!” what would you answer to them?

Well that would be wonderful and I don't see a reason why a web application should do a better job than a JavaFX native app. So I would answer...all right...let's rock it :)

Gerrit's talk will be on the 25th of June at 15.00 CEST! And after the presentation you will have an opportunity to speak with him "in person" at his Q&A session!