Foojay Podcast #37: J-Fall Report, Part 4 (final)
ConferencePodcast

Foojay Podcast #37: J-Fall Report, Part 4 (final)

Check the previous Foojay Podcasts for the first three parts of our J-Fall report (part 1, part 2, and part 3). That one-day conference in the Netherlands in November was packed with amazing sessions.

In this episode, you’ll get the remaining interviews we made that day! And as they say, last but not least, again, we have some fascinating insights for you into Java and its evolutions.

Video report

Podcast Apps

You can listen and subscribe to the Foojay Podcast on:

Content

00:00 Introduction 00:38 Maurice Naftalin: Collections, Java history

06:27 Ron Veen and David Vlijmincx: Virtual Threads, Jakarta EE

12:37 Ivar Grimstad: Jakarta EE

17:20 Johannes Bechberger: Profiling

21:46 Mohammed Aboullaite: Continuous Profiling

26:17 Hilbrand Bouwkamp: Profiling, Development practices, Pi4J

30:48 Paco van Beckhoven: Mutation Testing, Code Quality, Evolutions

33:34 Willem van de Griendt: Organizing JUGs

36:53 Conclusion

Host: Frank Delporte

Music

Transcript

Automatically generated from the audio, so it can contain errors in names and technical terms. Suggest a correction.

[0:00] This is the final part of my j4 report let’s talk about collections Jakarta profiling testing and more welcome to the f j podcast all your news about OpenJDK check the previous Foojay podcast for the first three parts of my j4 report that one day conference in the Netherlands in November was packed with amazing sessions in this episode you’ll get the remaining interviews made that day and as they say last but not least again I have some fascinating insights for you into Java and its Evolutions let’s start this last part of the j4 review with Morris naftalan who has a long history in Java I’m Morris nain and I’m here I’m here to talk about collections puzzlers with Dimitri veleno so we have a talk where we put up kind of slightly weird bits of code but not all that weird and ask people what do it what does this do and so we have a bit of fun and then people get to vote and we can see how well people know the collections framework some of them are some of the questions are quite obscure but some of them are some of them are pretty instructive I think and what is the average score of your question that I

[1:18] Don’t know the software assigns different colors of bars to the different votes and generally speaking pink seem to do best what’s your history in Java how long are you using Java oh I’ve been using Java since since really early on since the very beginning I never could get myself comfortable with C++ so in the 1990s I found myself without a mainstream programming language that I really could enjoy and this is the first time in my life that I didn’t feel like I could I had something in which I could just do side projects so when Java came along it did it’s it did seem better but what the main thing was it didn’t have the all the things I hated about C++ and I really bought into the marketing hype and it was very very Java had a huge launch there was a period when it was so fashionable in the very early days everybody including non non tech people had heard of it and Java developers were people were being dragged off the street and stuck in front of desks to in front of screens to become Java developers and I bought it into that Hive and know just stayed there ever since and how do you look at

[2:34] What’s currently happening in Java and all these six-month releases and new features popping up well basically I think that I think the six-month Cadence has been good I mean I buy that hype as well I think the developments in the language are mostly mostly good it’s very difficult in terms of the libraries it’s hard to I mean like I know about the collections library because I’m I write about that and I talk about that and have a new book coming out about okay promoted promoted about all right we’re there about about generics collection it’s a new edition of an old book so there’s a there’s a book that’s I wrote in with Phil wadler in 2006 about generics and Collections and I’m doing a new edition now 2006 so that’s upates well yeah but you know I mean there certainly have beened a lot of changes because a lot of revision but you might and I mean you look at the old book and you say oh this is very out ofd there’s a lot of out ofd assumptions in that but the substance of generics has not changed that much since Java 5 and the collections Library changes

[3:44] Relatively slowly because you know when you got something as big as that with as much with as many requirements for back compatibility and they’re very very determined about compatibility and I appreciate that I like that and that’s that’s what happens in Java you have this backwards compatibility which is one of the strong points it’s one of the strong points but it also means what’s what I think is really interesting and challenging is not only do they have to think about each new feature does this affect existing code but they also have to think does this affect new features that we might introduce in the future so it’s a really complicated space to think about and it’s bound to be that as the language becomes more complex that the speed of Change is Going to slow down and that said I think there are some really exciting developments and you know I’ve seen things I like for example I think project Loom and structur concurrency which will come after that will really be a game changer I’m I’m pretty excited about about Valhalla because it’s only in the last few years I’ve come to realize how

[4:51] Incredibly unsympathetic object oriented programming is to the architecture of mod modern computers so there are there is still plenty of progress to make but we’re making it so that’s good thing I think it’s pry exciting your speaker but what sessions are you also joining sorry today what sessions I just went well I right so I generally don’t get too many sessions before I am speaking because nor I’ve got to sort out the presentation and that was indeed the case so I’ve only had a root for one talk since presentation which was on cotlin and how category Theory Concepts from category Theory could help in could help with programming and it looked like a really interesting talk but I’m afraid after a session I presenting I’m not always very alert so I’m gonna go back and look at the recording pretty good Peters gave how you’re doing a lot of talks a lot of conferences I’m not doing a lot at the moment because I usually do a few every year yeah but this year I’m really trying to focus on getting that book done I’ve had to alter the slide

[6:09] That said today I had I have a slide obviously advertising saying hey you 2023 2024 I do not want to have to it will be available soon real soon now yeah okay Maurice isn’t the only one who wants to promote the book I talked with two other authors who came to the Foojay boot meet Ron and David who shared info about virtual threats and Jakarta e hi my name is Ron V and I’m a Java developer and we’re giving a presentation here on Virtual threats and actually we promoting a book that I wrote together with me and your name is oh I’m David so we gave today a workshop about virtual threats yeah yeah like you said we are wrote a book about Java and yeah migrating it to Jakarta e wow and the book is available it’s already published yeah it’s already published you can find it on Amazon for example and yeah it’s there okay if this is a podcast then I will add a show notes with the link to the book that people can easily find it back oh that would be perfect virtual threats you mentioned that’s something new in Java it is definitely it is you know what for virtual threats I’ll just pass it on to da it because he has given

[7:31] I know like 20 presentations already on Virtual threats yeah so what do you want to know what should people know about it viral thre in short very great you can create so many of them but there are some use case where they really shine you really want to use them but also some parts that you want to watch out while using them so in short viral thre great use them for very long blocking operations and you really gonna see some really great performance improvements but I heard you really have to pick the use case yeah it depends that’s it always depends the urning ver we have here it depends so if you have one task that runs for a long time and is doing work constantly then a virtual thread doesn’t make sense it doesn’t make any sense but that’s not the only case like if you have a threaded blocks but for a very short time they you also don’t want to use it because all the overhead of switching one virtual thre to another all it over and you don’t want it yeah so where do you use it where you are waiting for a reply from for example rest web request those examples when you make a rest call that’s when you want to

[8:43] Use Virtual threats okay there’s a lot of topics today what are you looking forward to what did you already see what do you want to see here well the opening was very nice and I’m really looking forward to the Foojay session later this day so fu oh yeah we have a f session and for you yeah I think it’s a bit the same there’s there there’s quite some interesting sessions there’s also we just missed iva’s talk because he talked about Jakarta 11 which is of course also around the corner which isn’t in our book yet and just to get back to the book a bit you want to promote it I hear no no it’s not just that because I think a lot of people are underestimating that you know moving from java e to Jakarta e can still be a big step if you’re moving from Spring Boot 2 to three you’re going to make have to take this hurdle not only Java 17 but migrating to Jakarta as well so what changed I know the name space changed that’s the first thing you need to do yes and then what did change further well there’s name spaces there’s deployment descript so basically if you look at

[10:01] It you the ver version of Jakarta e actually was a one to one migration from java X to Jakarta e and then in the second version you got the Nam space changes so there was Jakarta 9 and then in Tome additional functionality was added not that very like okay there was like support for uyu IDs in jpa and stuff like that so there was there were some changes in there I think the real big change is going to come in 11 where we going to see Jakarta persistence which is has definitely got some U some improvements but I think really this step of migrating because it seems very easy changing some name spaces but from some of my customers I already learned that if you’re integrating with like I got a customer who actually runs Java on a main frame still and then you got some connections to IBM specific versions and then you might really get into dependency problems because they need to upgrade too so it isn’t always a clear steps to follow so and I think our book can actually help a bit with that okay and are there other talks that you want to see also to be really honest I just came back from a

[11:23] Conference yesterday from Bucharest so I haven’t really looked at schedule yet but that’s the problem there’s so many talks going on that people still need to choose whenever they leave the room and then have to decide for the next one yeah I think if I have to choose my second thing that’s something with Java language features or something okay what’s besides the talk so important at a conference like this meeting people is that something where also learn from yeah of course because at a conference like this you get to meet the experts who have been talking about it a lot who are interested in the same topics so yeah it’s really nice with likeminded people are yeah interested in Java as much as we are and you just come from another conference yes first of all I did come from a conference in Bucharest Romania where I gave a talk but I think this is really what I really like about i’ I’ve been in Java for 20 years like and there see Roy V and stuff like that for me it’s just reconnecting with people I met in these 20 years and customers I’ve been to and people I’ve worked it this really feels like coming

[12:30] Home and that’s that’s what I really like about J I think the speci the atmosphere is so special as Ron mentioned ior talked about Jakarta e at J fall and we also had a chat about it I’m EV grimstad and I’m the jakara EU developer Advocate at Eclipse foundation and here I’m giving a talk on what’s coming in jakara E1 we just had a few other guests in an interview who are also speaking about Jakarta and that is evolv in and new versions are upcoming what expect yeah I’ve spoken to them they’ve written a book about how to migrate from earlier versions to jakar I’ve actually read the book A pre-copy of it because I’m I’m writing an editorial review of it so it’s a very good book I can recommend it it’s it’s a it’s a nice migration path from previous versions and know is it a difficult migration if you have a big application it not necessarily but it can be there are some pitfalls and these are the same migration issues you would get from migrating a spring Boot 2 application to Spring boot 3 as well one thing is in namespace and that’s fairly easy to cope with your application

[13:39] Code but if you have any transitive dependency or dependencies done a chain that you don’t have the control over the source over that’s kind can be trickier there are tools to help you with it but yeah that’s the difficult part you just had open rewrite here so that’s one of the tools yeah that’s one of the tools the other tools are the ones that do it on Bode level like the Eclipse Transformer or the Apache tomket migration tool they will take the bite code and transform the namespace for you automatically and you can incorporate in the build process so it’s it’s very convenient tools I’m glad the tools are out there to get this migration done easier yeah so you’re mentioning dependencies which are outdated that there are so many dependency libraries available in Java is one of the big strengths of the language but is it also a problem because yeah they all have to be maintained and updated to new versions is that a problem for the Java system itself I don’t know if it’s a problem it’s more of a challenge and an opportunity because if you see a library out there which is open source

[14:51] And you rely on it and you don’t feel it’s maintained enough well it’s up to you to participate and do that maintain for them because I mean open open source is all about like free of use and all that kind of things but you cannot require anybody to produce something that is available for free so if you really rely on it you should contribute back and that’s discussion we just had I learned that there are only 10 people really active contributing to Maven which is then used by by millions yeah it’s a challenge I guess for most open source projects to find good people who want to contribute and keep contributing yeah yeah it is and I think that’s a very common scenario that we have a small group like Maven 10 people and millions are using it many other the libraries have have the same or tools have the same situation and so yeah that that’s an encouragement to the community to go out there and contribute to the tools and libraries you use because you benefit from them so others will as well Jakarta is within the eclipse Foundation yes does that mean

[16:06] That there is a structure behind it that there is a company that there are paid people working on it so both yes and no jakar is totally open source it’s like any open source project like Maven out there it’s under the eclipse Foundation governed by the foundation it’s also governed by the jakara E working group and here’s where the companies come in and participate and contribute together so they are we have contributors from companies but we also have individual contributors and they all contribute on an equal level so everybody is a committer in the system there’s no super committer or any any others we’re all equals and it’s a Level Playing Field for everybody to contribute and you are working for the eclipse Foundation is yes that’s your job yeah my job is to talk about jar and get people to encourage encourage to work withar conferences like this and give them updates of what is changing and yes so you have a frequent flyer card I do and I think you have to run now because you have to catch a car yes I do okay so thanks a lot for this short interview thanks for being a guest of the podcast

[17:16] And thank you for being jaful yeah thanks you for having me another Hot Topic is profiling and understanding what is actually happening when your code is being executed johannas has already written a lot of posts about the subject on Foojay and came to talk about it at jall hi I’m Johannes I’m a speaker here and I usually work at Submachine doing open source OpenJDK stuff so you have a talk today yes I have a talk and it’s about it’s about profiling as always like I did this talk a few times now it’s about writing your own profile in 204 lines of java code wow you write a lot about this topic on Foojay yes you’re one of our authors so this is really your expertise profiling yes so I started at SCP around two years ago and I contribute to for example Asing profiler and also writing cing my own JDK n proposal for new profiling API so you know a little bit on profiling and that’s also what I wrote like on Foojay curently like once a week it’s usually every two weeks of blood post so you said you wrote a GP a Java enhancement proposal how does this process work I’m I’m new to this

[18:32] How does this work so it works by praying a lot praying to the gods no it so I had the idea when I started at sap we colleagues of mine had the idea told me like hey there’s a weird profiling API I think get C it’s not great let’s write something different I was like I need this job I can do impossible things so I started so ENT I first did I wrote some basic demo code and I wrote a proposal and then I submitted it as an issue as an Jeet issue into the cheer system for JK and then I told people about it and I went to the first them to First them to the Foojay room told people about it and then it got accepted as like and Jeb which means not really accepted like that it’s in but it got accepted by Mark rold as a Val ch proposal as a cheap candidate now I’m currently discussing with many people working on it and I have to fully rewrite it so it’s now too many years since I say it’s like almost two years when I started I hope I get it in like in jk24 it’s like my current time frame but it takes a lot of effort but in the end it will improve the profiling situation

[19:53] And especially for people that are using loom cently because Loom and profiling is not a train currently even with jar so my Chet will definitely improve things if it gets in and that’s where the pring part comes yeah so jeps live on OpenJDK project website there you have a list of jeps so a JEP is first a proposal and then it can get a number which is a bit lower to get into the system so at one point you can expected to be in OpenJDK correct yes so you get a number when you get candidate status mine as a candidate status is one it’s 435 so it’s a candidate which means it’s like official enough they worthy seen enough but then you want to get to a stage where it’s like accepted by people and when it’s proposed to Target and these are the things that you see on the project page where it’s like oh these Jabs are proposed for jk22 and so on okay I will ask if we this interview will be in the podcast of Foojay so I will add the link in the show notes to your proposal that people can review it so but you’re saying this is a long time process so it will not be in 22 or yes no yeah so a colleague of mine did the

[21:12] Enhanced nullpo exceptions where you where it tells you what R wrong like the cost and he was like yeah it took him two years and it was a far simpler proposal my proposal and T probably like an c c API with 30 methods or so his was fairly simple but he still took like two years discussing with everyone but problem is when The champ is in it’s in for a long time it has implications for all the users so want to make sure in the JK to bring all like the best chips in and we continue on the profiling topic with Muhammad my name is Muhammad Abu late I work as a bean engineer in Spotify I’m originally from Morocco lost now and in the cold and dark Stockholm Sweden so yeah I’m struggling a little bit with the darkness and the cold but it is what it is I’m G to as a speaker and to speak about continuous profiling and how we can continuously improve our application from a monitoring point of view and performance point of view and resources point of view okay and are you using specific tools for that so the talk is more about the concepts continuous profiling I did present a couple of

[22:26] Tools that are widely used in the market such as Periscope pixie parka some of them are ebpf based some of them use agents but the idea is to introduce the audience to continuous profiling profiling what it is what is how it’s different from what we call traditional profiling or profiling tools that available a little bit into the safe Point bias in the Java context and a little bit about JD R recorder or the ASN profiler so yeah it was more of a generic talk to give insights about a lot of a lot of things okay and can you condense that talk into two sentences what is what should we know about profiling so profiling is good definitely it help you to spot hotpots and bottlenecks in our application continuous profiling adds the dynamic time flavor to it making it continuously profiling on application 247 with tools that have less overhead on your application which traditional profiling we struggled with to have it in production because like that was heavy and might slow down your application with new tools it has less impact two to three% that’s the overhead so it makes it really idea to

[23:41] In production that’s where the fun happens right so with that you continuously monitor your application you get insight about how like the full view micro view about your code both the code that you write and also the open source or the tools or other codes that you bring to your application from the user space till the kernel and from that you can basically optimize your code detect hotspots detect the box that cause I mean more resource consumption from CPU and memory and that will eventually have the benefit in the future to have your application performing well and less resources which mean saving cost as well so it’s not looking at where are errors and warnings happening in my code it’s more where is my code slowing down for instance exactly that’s the kind of stuff you’re looking for exactly like both from a CPU what’s why this function and Method taking so much time consuming a lot of CPU why there is so much think in my memory allocating a lot of memory why is that because like from a Java perspective there is the G the garbage collector that doing stuff to allocate that memory back and claim it

[24:51] Back so that’s might impact your application the Hep even what’s in my hip to avoid those kind of memory leaks and stuff so it’s it’s a it completes the pillars of observability like the logs and the metrics and the traces and adds this performance kind of how I’m doing in terms of performance in the code I wrote basically I’ve worked in small companies on Java code and we were just producing applications and never worried a lot about these profiling do you see that companies are really looking into this now more and more more and more yes especially especially that there is kind of a more tools more open source traditionally they were hard to operationalize not a lot of resources it takes time to set up now with open source and Cloud native there is more work there that makes it really easy to gather those information could we could go for open source versions that you can unall for free and then you get those insights and the more you have those insights coming the next day having a look at your flame graph detecting where the Hotpot is questioning how why this actually is

[26:03] Happening help you to better become a better developer like understanding why this happening and also H write a more performance code and impact on the business because like your application is performing better Hill Brun is one of the many attendees and we talked just after he joined the talk about profiling but we also touched many other subjects like upgrading applications two newer Java versions my name is Sil bom I’m a Java developer so that’s what brings me to jall also to see what’s happening in the Java world and also to meet the other people and are you a regular visitor is this the first time you are jall no I’ve been here for many times many I can’t remember when it was the first time but I didn’t find someone yet who did all 20 no I pretty close I think yeah I think pretty close yeah yeah yeah what sessions are you looking forward to today what did you already see I saw a session about profiling that’s interesting for the project I’m currently working on to get some some better Insight in how the application is working and I’m also interested in

[27:22] More talks about a little bit about software development in general and how people approach things for example the keynote about software as an art was very interesting what’s your role as a Java developer what are you mainly working on I’m main I’m mainly kind of the lead developer SL architect and yeah working both back end and front end basically the whole full stack and which version of java because that’s a hot topic now yeah version 11 and 17 yeah yeah so one application is still running 11 and the new application is running on 17 but the migration from 11 to 17 should be easier than what we had before yes certainly because the big step was from 8 to 11 but we use gw2 t k m and we have some issues in migrating it to 17 especially with other libraries that we use that are not up to date yeah they’re not up to date yeah how do you see the move to a next long-term support version like 21 is that something which is welcome or is that a problem within the company no it’s no problem I think no no so it it’s it’s just not on our schedule yet but

[28:57] It’s no problem at all what do you think is most important by moving up is it new features is it developer experience maybe getting more performance all of the above all of the above yeah yeah when you’re working with the older version to say so like like mostly working on 11 and now just starting to work with 17 basically for a year or so but there so B developing you don’t look at what are actually the new features that you can use so now gradually finding out what you can use for example the records in you can now use in 17 with are take much less code but I think there’s still a lot of room for improvement to find out what kind of features there are and how to use them and that we can use them now are that the kind of things that you learn on a day like today yeah I try to but there are so many talks that I have to choose and then most of the time the talks about what’s new in Java then I think okay I can look that up later and there are more other interesting talks or I start talking to other people and then I forgot about the sessions because I

[30:21] Think I can always look at the sessions at a later time yeah indeed and that’s also the kind of content you can find on Foojay yeah yeah for example yeah okay I’ll just follow you on muston and fu. social that’s our Master on indeed yes indeed a small reminder if you’re looking for a new home on the internet to keep in touch with the Java Community you can create an account on our monodon instance which you can find on f.o during jall one of the Foojay community members joined us at the boot to talk to the visitors about the Foojay website if you watched this podcast on YouTube you probably noticed him during a lot of the interviews in the background but he also joined me on the microphone meet Paco I’m Baco I am here at jall to help Foojay in this case I was really wanted to go again because it’s one of the best one day conferences in I would say the world but definitely the Netherland I’m also from the Netherlands even though now I travel all the way from Switzerland here and I’m I’m here for yeah the people the community mostly because there are so many people I mean I’m from the nland I know

[31:29] A lot of people here so I’m here for the networking but I also they have great thoughts and there’s also a lot of cool companies around so both the talks and the exhibition Hall are important here yes definitely yeah I think I will be completely exhausted at the end of this day of talking to so many people what are you doing within the Java World so I work personally I work as a software engineer so I mostly do what every Java back at developer does and beside that I also try to speak at conferences spread a bit of knowledge as well which I really like to do as well in yaa commun and what is the topic that you’re talking about so I’ve talked a lot about mutation testing which I’m really big fan of and also working on a new talk related to code quality code reviewing and hope to spread some knowledge there as well things I learned from the companies I joined H how are you looking at the evolutions in Java because since we have this six month release cycle things are evolving very fast is that a good thing I think it’s a good thing but I also to be honest if you work at a company they

[32:38] Usually stick to LTS releases so it doesn’t move that fast for me anyway I mean you go from java 17 to I think 21 so there’s plenty of time to sort of already learn there’s c c talks and then VI it up I kind of like it because it also means that the features in the version in between already better tested instead of the Big Bang releases and then having to wait a couple of miners you’re sure do you think there’s a difference between big and small companies of how fast they adopt a new version I mean I can imagine that a small company might adopt faster especially if they but on the other hand you also want stability you also don’t want to be constantly working on they even though it’s not that much work to update to new job now yeah yeah it’s good question actually I don’t know I think LTS usually is for the support that people like it they don’t want things to be broken yeah and we close the j4 reviews with Willam he was already a guest in an earlier podcast as one of the organizers of the utre ju and it was great to speak with him again hi my name is v f and yeah I’m visting

[33:47] Jall every year to meet people from the community former colleagues other people I know and enjoy the atmosphere of the community you were in one of our previous podcasts because you’re also I’m also a j leader of the UTA user group and we had you as a speaker in h September and then you made the podcast indeed so and now you’re back and I’m back are you here to find speakers for the J for instance also yeah I’m here for meeting people networking and also watching some talks some probably interesting talks like what subject is but also so the speaker itself and to hear them and see them live yeah that’s true which talks did you already join well not anyone yet but probably this afternoon I have to see the schedule which I’m going to see it’s a bit fun to see that a lot of people are here and they find the interaction as important as yeah having a few sessions I think that’s one of the unique things of jall it’s the 20th anniversary now and every year I say it’s it’s like the party of the year I meet former colleagues other people I know and so the

[35:04] Networking is probably more fun than the talks itself which is also a big important factor of a jug yeah and it’s I think a proof of the community that we have a very good and active Community here in the Netherlands we have the anal jug with the events we have the local jugs like UT jug B Amsterdam r&m appledorn Ron jug rdam jug so lot of things to do and if you are a developer and you want to get knowledge to hear me to go to meetups there is every month you have several options to go in and here my colleague is even organizing them now in his living room yeah very small J inam so we and in Belgium now the bay J is also again so people have a lot of choice within a very small region but that’s the fun thing about the community everyone loves to speak about why they love Java what they are using it for and what they learned yeah and I think that at least here in this part of Europe is very active we also see how quick events like devox and jall will sold out it’s also a proof that people are willing to meet people but also to see talks to hear talks

[36:22] To learn from other developers because this is really Community event on stage are several developers and not only the Hot Shots from all over the world and that that’s very good U and also like the meetups as also like the logo meetups on average 45 50 people who attend them okay thanks for this talk I interrupted you on your walk to the food going to the barbecue I’m I’m a little bit hungry now so good to have food hey and that brings us to the end of the j4 reviews for parts to bring you all the interviews I had during the day covering many different topics related to Java and the developer life I hope you enjoyed these episodes and learned from it I definitely had a great time in the movie theater in Ada keep an eye on Foojay for future articles and podcasts about development and everything related to the Java World thanks for listening give me a give me a j give me the friends of OpenJDK

Found a mistake, or something to add? Edit this page on GitHub

Written by

Frank Delporte

Frank Delporte is a Java Champion, Java Developer, Senior Technical Writer at Azul, Blogger, Author of "Java Programming for Raspberry Pi - A Hands-On Guide to Electronics and IoT Projects", and Open-Source Contributor for Pi4J, Lottie4J, Sheetmusic4J, …

Related posts

Join the discussion