Foojay Podcast #64: Interviews at JFall about opensource, OpenJDK evolutions, Project Loom, JVM,...
CloudConference

Foojay Podcast #64: Interviews at JFall about opensource, OpenJDK evolutions, Project Loom, JVM,...

Let’s wrap up this year with more interviews from the JFall conference.

In this episode you’ll learn more about Foojay, JVM internals and writing your own programming language, Project Loom and structured concurrency, learning at conferences, code reviews, creating desktop applications with Java, infrastructure as code, JUG Noord, and much more!

Video

Podcast Apps

You can listen and subscribe to the Foojay Podcast on:

Guests

Content

00:00 Introduction of topics and guests

01:09 Geertjan Wielenga: OpenJDK evolutions

01:47 The goal of Foojay, the website for the Friends Of OpenJDK
https://foojay.io/

03:49 Nataliia Dziubenko: What you can learn at conferences

04:48 Writing your own programming language on top of JVM

07:30 What it learned her about the Java compiler

08:38 How it influenced her career as a Java developer

11:20 Hanno Embregts: Project Loom, structured concurrency and scoped values

14:04 Playing music during conference talks

15:09 Important OpenJDK evolutions

17:07 Hinse ter Schuur: Learning at conferences

17:58 Best practices for code reviews

20:03 Anthony Goubard: Creating desktop apps with Java
https://www.japplis.com

22:45 Steffan Norberhuis: Infrastructure code for AWS
https://www.rocketleap.dev/

23:50 Java as a Cloud language

24:54 How developers look at infrastructure

26:03 Is getting locked into a single cloud vendor a risk?

28:03 Paulien van Alst, Lutske de Leeuw en Johan Hutting: Introducing JUG Noord
https://www.meetup.com/jug-noord

29:20 Introducing VoxxedDays Amsterdam
https://amsterdam.voxxeddays.com/

29:40 NLJUG versus local JUGs

30:06 Starting as a new speaker at JUGs

30:24 How to contribute to opensource

31:24 How to speak at JUG Noord

31:53 Learned at JFall

32:38 Outro

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 Foojay podcast from 2024 with some more Java insights from jall Welcome to the Foojay podcast all your news about OpenJDK let’s wrap up this year with some more interviews from the jall conference in this episode you’ll hear paen van Al L and Johan huting about ju Nord Stefan norber helps companies with infrastructure as cat anony hubar about desktop application development with hin shares what he learns from conferences and his talk about code reviews Hano embre tells us more about project Loom and structured concurrency and Natalia gienko about gvm internals and what you can learn from writing your own programming language let’s start with the Foojay master himself here tan willinga maybe you’re listening or watching this podcast but didn’t visit the Foojay website yet heran explains the goals of the Foojay project the future plans and how you can join as a contributor I started with asking here tan which are the most important topics to keep an eye on in the OpenJDK world there are so many but definitely performance and security are top of mind I think for many large organizations

[1:17] So those are clearly topics of interest and many of the presentations here today are around that but I think your favorite topic Java effects is super important as well because there are all these you know large organizations you don’t really know much about you don’t hear about but behind the scenes are doing all kinds of desktop work and so Java effect is also super important so yeah I mean all the standard topics are of relevance and are represented here really well at J today for the people who don’t really know Foojay can you explain the goal of the website and all the things you’re doing yes well I think you should see Foojay as your reliable place to go for daily information around Java it’s a community platform it’s a website it’s a slack Channel and you can participate and share your insights and your tips and tricks and you know your own tutorials you can republish your own blog content it’s it’s a Gathering Place it’s a water hole for anyone using Java or any OpenJDK based language such as cotland as well and we’ve been around almost five years now and going

[2:28] Strong many organizations are showing interest and signing up and participating in The Advisory Board we have this wonderful podcast that just keeps going and there’s more and more content we’re promoting a lot of jugs jug content yeah it’s just the ecosystems place to go for information insights and enthusiasm and a clear message to the community you can join Foojay you can cross post your blog post you can join the podcast if you have an interesting topic so that’s also an important message yes it’s a collaborative platform it’s it’s it’s for the community by the community so anyone can sign up it’s simply on the site it’s simply a WordPress site so you get a user login and you just go in there you queue up your content every Monday morning we take a look at what’s there and we propose a schedule for the week in the slack we say Hey you know this is what’s what’s in draft we propose the following sequence here are the topics here the Articles and people can agree or disagree and people discuss this different channels for different jugs yeah so it’s

[3:31] Really participative collaborative something that we all do together and you know you can see that in other communities me python has its own Clear website for python its own channels and so on and other languages and that’s really what future aims to be for the espe especially the Java language I met my next guest Natalia jenu for the first time at the UT ju some time ago she was a speaker at a few of the previous jall editions and one of her talks was about the language she developed herself on top of the JVM and what she learned during that process and how it also influenced her career what does she want to learn from a conference I actually come to j4 for a couple of years now and these days is more for networking like meeting friends and people communicating with all the other wonderful speakers that are here and yeah it’s and watching some talks of course because I really have something already in mind that I would like to watch and so yeah just enjoy the day and enjoy jall today so today you’re a visitor enjoying the talks but you were a speaker here a

[4:43] Few years ago or twice I think even what were your topics I was talking about some Java under the hood so my first talk was actually about creating a JVM language that I created for fun I wanted to figure out how Java bite code Works what it is I had I figured that I actually didn’t know what it looked like so I decided to take a look and somehow I ended up building a my own programming language and basically it was yeah it was generating the bite code and when you generate the bite code you need to understand what this all operations do how it all functions and how does it look under the hood in each moment of the time so I had to learn on that and then I thought okay I can actually share this with other people what I learned and this is how my first talk was born and then actually it was like a snowball coming from there because people were asking questions and I was like oh yeah it’s interesting to know about this as well so this is how other talks were born as well so people may may not realize so if you have Java codes and

[5:53] You run Java C you end up with bite code but the same kind of B bite code is generated by other languages is like think cotland Scala They al do the same so what you did was write another language in the family of java cotlin yes it was another Lang JVM language so it looked just exactly the same as Java bite code under the hood just a different compiler yeah I believe cotland looks similar under the hood but about Scala it’s hard to say for me because they have a lot of scary stuff did you have a fancy name for the language I called it MAA it’s this means the language in Ukrainian my native language that’s a nice name and is it used do you use it yourself for some development I had an idea that it can be used by people who are not very technical so it could be written as natural language sentences but I guess now it’s no longer relevant no I don’t use it myself it was just for fun project and I have actually not touched it since maybe only for like small other F projects but that was just a fun project it’s really fun that you wrote your own language I know one

[7:07] Presenter we had I think at devox who wrote the Rockstar language yeah there was the also there was no I don’t know that one but I also know about annotation based language actually was the presentation today I think in the early birth sessions I have seen it before but it was also crazy and super cool also like cool experiments like that so you wrote your compiler to convert your language to bite codes what did it learn you about how Java works or the gvm it learned me about why certain things look like they do like like certain constructions on the higher level and how maybe different formulations and different pieces of code can translate into a very simple small thing and maybe a about some things that you can depending on how you write it can be interpreted a little differently and yeah just gave me a little bit more on in of insight on why certain decisions in the language were being made and yeah this kind of small things but mainly how Java actually executes the pro how JVM executes the pro program how it interprets it and

[8:25] Then I also of course started learning more about jit compiler like I didn’t really Implement anything like that yet or whatsoever but it was still very interesting to look into it a bit is it something as a Java developer you should do look into how the gvm works or can you just go with the day job and use Java as the language or can it help you to make more performant applications to be honest I think it doesn’t it didn’t influence me for a long time I didn’t know how the bi code looked like and I was doing my job and it was okay it’s not like it’s it influenced a lot of my daily work but if you are more interested into you’re more interested in this domain or you’re actually working with more lower lower level things then you of course it’s it will benefit you a lot if you know that so it’s not something that I expect every developer to know but I think they might be interested or curious and it might give you like just more understanding and appreciation of the language you’re using it was a pet project for you I guess it was not part of your job so you became a speaker

[9:40] Because of it how did it influence your career or what you have been doing since then it’s influenced it in a way that I was speaking a bit more after that because as I said it’s a snowball that keeps pulling one thing after another but as I mentioned I was really into the domain and probably because of the networking and talking with other people who thought oh that’s so cool and maybe connecting with people on the subject this is how I found my current job which is actually in the domain that I’m really interested in so that is super cool I think how this community this networking can drive you to the point where you actually want to be so you’re now working as aul your current job is inside the gvm what do you do now it’s how to say I’m I’m a backend engineer I’m working in intelligence Cloud Team so it’s a Some Cloud solutions that help developers but it’s not like I’m actually doing a lot of lowlevel work right now but still I the insights that I have about how JVM Works and what JVM does they really much help me to understand the domain because still I

[10:58] Need to use this term use this information to communicate with other teams that do actually lower level things like the agent guys so it does help me a lot and it’s more of a con like connecting what I am used to doing a lot so backend work with my interest which is JVM and all this internal stuff just like the previous years H EMB visited jall as a speaker and asked him what his talk this year was about I did a talk project Loom but not the virtual threads part I did an intro but the focus was on structured concurrency and scoped values which is the work that’s being done because virtual threads are now available so I did an introduction did a few live demos yeah project cloom virtual threads we talked about this these J OpenJDK projects before these projects they go into different versions of java because of jeps so you can have still Evolutions within these projects so project glom is still evolving yeah it is yeah it is it one of the first deliverables was virtual threats became Final in Java 21 and still parts of the project are being released to the

[12:15] Newer Java version so structur concurrency and scop vales was one of them and those features are being reviewed in 23 and also 24 probably based on the feedback they get from developers and few API changes like it goes with all Japs I guess so yeah virtual threats what should I use them for so any place where you would use regular threats right now but you are seeing a lot of waiting time on iO so you’re calling a database or an external service you can improve those situations with virtual threats because the waiting and the blocking part of the classic threats is being swapped out when you use Virtual threads because they don’t block the classic threads anymore right the blocking part is done on the virtual thread but that’s a JVM only construct so the actual OS threads are no longer being blocked and if those periods of time are quite large then you will get a much better performance out of that so also you can also conclude if you’re your problem is CPU based yes so you’ve got large computations that take a long time virtual threats won’t at the performance there because there

[13:31] Are no blocking waiting times so if I do API calls and I’m waiting for an answer or I’m loading database content that’s when virtual thread can help yeah that’s exactly the situation yeah but indeed they are not the solution for everything no no actually if you would try to use them for CPU intensive work probably they will be a bit slower because there’s a scheduling step involved the virtual threat has to be scheduled to run on a platform threat and that’s some overhead that you are not or you’re not getting the time back right with CPU intensive tasks so yeah your talk was it again with the guitar I do a lot of talks with guitars this talk wasn’t about music but I’ve done an extra talk the ignite sessions during this day that was about music together with Mariton from jet brains and we did a just a fun talk about how you can sing the words public static for main to a number of songs and we just played a few songs and let the audience guess which songs we were playing so I’m not sure they learned anything from it other than that we pointed out that public CTIC void main is going to be void main right from java

[14:41] 23 and onwards so we said like we have mixed feelings about this right because it undermines the idea for a talk but overall I’m I’m happy with that jab actually because it helps people who are learning Java to skip some of the more confusing Concepts and just immediately go to a main method that they can write so overall it’s a good addition I think so it’s one of the many Evolutions in Java you also talked about virtual threats what are some of the other main topics in Java Evolutions that we should be following there is so much stuff happening right now I have been very interested in the pattern matching side of things but overall everything that comes out of that project project Amber is really interesting because it immediately influences the language and how we use it so that’s an interesting tangent to discover and research I’m also quite excited about the new ideas for the new serialization feature or as they call it marshalling now which also will use elements from pattern matching so for example deconstruction patterns that you

[15:50] Can Define in a class to configure how a class is deconstructed first that feature needs to be available in Java so that will take probably another one or two versions and then afterwards the you know that will pave the road for a new version of serialization and that’s a very exciting at least I’m very interested in it because this is also one of the areas where Java doesn’t have the best image and I think I would really want to see that image improved and I think the marshalling Endeavor can really help there yeah it’s one of the things that Java evolves slowly although we have this six month release cycle but on the other hand it’s nice that you mentioned it so this pattern matching the way they implemented already envisions other changes within the JDK so it’s really important how one change influences another yeah yeah yeah and I like the way that they coordinate these changes amongst each other so there has gone many thought in let’s introduce it now and let’s introduce the following feature after that so that we can build towards something else that is then released based on the right

[17:04] Foundations and I think that’s a very clever process hin is another regular conference visitor and speaker I talked with him about what you can learn from a conference and his talk about code reviews jall is like a great Community event which I go to basically every year or at least when I when I’m able to so we met before at another conference there we were speaker not today I think no today I’m not speaking I’m just attending the conference there are a lot of great sessions actually too much to choose from basically what sessions are you focusing on today what’s what’s the main topic you want to learn today I typically I don’t have a main topic I try to go to diverse topics so technical ones like maybe the geeky ones and also the more like soft scale style so I like the diversity okay can we go back to your talk the last time what was it about so last time I did a talk about code reviews and some best practices around code reviews some highlights that you can say what is important if you go to a code review if I have to review the code of my colleague do I have to be

[18:16] Polite what are the things I have to take care of course you have to be polite but it works yeah so it starts with the basics like use the word we for example instead of saying you that really helps request something not demand like okay it must be done but okay should we do it like this and this and it’s also important when asking for a review that you’re also open to feedback and realize that it’s about the code and it’s not about you although sometimes it can feel like you put a lot of effort into that code and it’s like maybe you’re baby and then it feels really personal if you get comments or critique about stuff so if you realize that beforehand and you’re open to comments that really helps I read a few articles about a code review is actually too late it’s better to go into an approach of pair programming so that what needs to be reviewed was actually already reviewed is that a better approach according to you yeah it also of course depends on what you try to achieve with the code review so I think to get the code out I think

[19:27] Parent could could be good but you can also have like knowledge sharing is an important thing with code review so you could do that in a par and you have some knowledge sharing but then you run the risk of being in this having the same tunnel vision basically so then a fresh pair of eyes could could really help there but then the code review is different less on specific details but more on more High over so then you have a different review so I think that’s probably a better model but that’s that’s not always possible okay so again it depends and a combination is probably the best solution I would say so yeah asan said in the first interview in this podcast Java is also used a lot in companies to build user interface applications Java ax is only one option to do that anony hubar has a long list of such applications created with swing I starting swing in I think in 1998 so I’m quite used to it now yeah so you have look and Fields compared to Java where you’re more it’s more like CSS with a very fix look and feels then swing you also have lot of resour online

[20:36] For components that you have also now more also with Java fic so yeah I’m also more used to it and I think one of the advantages of Swing is that it’s also included with a standard Java release so with Java fix you have more to integrate it and then you have different thing for Mac OS and fux and so on so but I’m used to swing so as there’s nothing wrong with swing I’m still continuing with swing that’s why can you bit promote your own product so you have a lot of different applications what are the most important or popular ones yeah so all my application are free to download and a lot of them are freeware some of them are free to try the rest so go to jes.com so I have a file manager very for more also most for developers with a lot of feature like with integration with gate and thing like this I have also some image editor like decoration pastel poster fonts that you can also have very beautiful fonts to create logos anything like this have a text toolbox that’s called a Japes toolbox to do text manipulation that you have that I often need to do for example checking

[21:55] Regular expression thing like this as a developer yeah so for example also return a plugin for intell eclipse and net bins that basically will start your own application as an applet inside the IDE so applets are used to work in browser so now they just start inside your ID so recently for example I integrated with Java fix so now if you have a Java fix application you can read it inside your IDE without doing too many changes at least this you don’t need to change the code you need to write like maybe an appl. HTML or TLP file but and then it will start inside the IDE and this can also work of course with swing application and so all these kind of different tools Stefan norber house was looking for a solution to make it easier to manage an AWS system as a Java developer to achieve this he founded rocket leap which is a new product based on a cdk where you can build your ads platform very easily accelerate your development and fix problems with security and scalability and the cool thing about ads cdk is that it transpiles to other languages so one of the languages is

[23:17] Yava so yava developers can natively build infrastructure scode using Java so they don’t have to leave their environment they know how it works so they don’t also need to learn a new language that’s why I’m at jall infrastructure codes you mean setting up servers networ stuff like that yeah everything that you need to configure in ads can be done with ad cdk and we build a product for that and you can use Java to configure it yeah so you’re running Java in the clouds there has been a lot of discussion about Java was it was not designed for the cloud it didn’t exist yet is Java a good citizenship for the cloud yeah so you have multiple components infrastructure scode is more declarative it runs not in the cloud but you run it once and you have like a yaava bite code template of how you want to configure your Cloud there it works fine it’s it is a bit heavy in syntax but running Java is inside the cloud it’s a bit memory heavy but you can just configure your resources to use more memory and then if it works perfectly fine and there

[24:39] Used to be also a time where lambas actually have an advantage using yava because you have snap start so you can copy your memory and then it starts with that copy of the memory okay so you’re here at the Java conference how do Java developers look at infrastructure is it something they like yeah so that’s that’s also one of the questions I wanted to answer at this conference I think there is still a big gap between the devops people which are mostly focused on the Ops and the developers and for me my personal Journey was also I am a developer myself from my background but the more I dived into AWS I found that I can solve problems more easily using the services that ads provides where I can build more scalable more reliable more observable if I invest more in the knowing about the infrastructure and that’s also what I want to bring with rocket leag my product to allow developers to easily take control and own their own Services instead of it’s it’s someone else’s job that the whole develop cycle of building deploying testing and owning it is

[26:01] Doable in one team you talk a lot about AWS is it a problem of buying in that you get locked to the services of a certain provider of course not only AWS Google others if you select one of these platforms are you stuck with them forever or is it still easy to evolve or combine it with others a very good question I think the industry right now is at a point where if you stick with one the return on investment is always bigger if you stay with the same vendor and switching is really hard I did some preparations for migrating and there’s no benefit in migrating to other clouds it takes a lot of work a lot of experience is also acquired over the years so you have to restart that Journey so now it’s really like if you pick one you should stick with it and it is a bit of Fender locking but the prices are not really different between clouds except for on premise but you so the answer is yes you are locked in you are locked in but it brings you a lot of benefits at the same time yeah yeah I really believe if you if you’re a small company you should accept this and then also dive

[27:25] Deep into it because then you get more benefit if you don’t do it and you you’re scared of f the lock in then it becomes more painful isn’t the problem of these Cloud providers also that they have so much services that you can choose from and they all have this speciality and then one specific function they provide is it difficult to keep up with what they provide yeah I struggle with that myself as an ads expert keeping up with all the new release is hard so it’s also not doable to do multiple clouds to conclude the interviews of the jall conference I have three guests at the same time who came to the Foojay boot to introduce a new Java User Group I’m L I’m Yan hooding and I’m going to talk and I’m poos one speaker batch one programming comme but you are here together because one special reason we are from y Nords the newest y in the north of the Netherlands can I say that the Netherlands is the most active ju country give our take I think Germany is also doing quite well but we’re coming along but the Netherlands is smaller so maybe in average we have you have way

[28:45] More Dy okay a new J so did you already have an event or yes we already had two events in September and October and our next event is next Thursday actually next week so we have a monthly Meetup that’s the plan now a monthly Meetup so a lot of pressure finding guests finding venues or do you have a fixed venue well we have two venues one with in Leen and one with do and Cronan so hence also the nor we are trying to C it to people in the northern provinces and we do have the location so we can actually come people invite them in they know where to go but you’re also involved in the new Fox days correct yes I’m from Fox days Amsterdam that’s the new defox in Amsterdam and hopefully in a couple years the New defox Amsterdam yes so a very Vibrant Community this is this event is organized by the nlj so how did you compare nlj versus your ju is it a different type of organization or different ID you it’s a smaller community of course because it’s regional and what we also aim to be is like a step up for beginning speakers to yeah to have a Podium to try out their talks and then maybe

[30:02] End up here someday so yeah it’s on a smaller scale yeah yeah so people who want to start be as a speaker a jug is really something where you should start or where you can learn it it’s a good start because it’s a small community and yeah small audience so it’s very easy and good going to start your career there we have one speaker which is a speaker today because I know what is your talk about open sourcing a library how hard can that be it can be hard there are quite some challenges what are the challenges let’s start with that what are the challenges well people were telling me it’s incredibly hard don’t do it but then I started okay I want to see how hard it is and it turns out nowadays it’s fine and that’s what my talk is about but also covering what are you running into as a developer or as someone wants to open source a library because there’s challenges there becoming part of the open source community I think for most of the people here it’s either something they dream of but on the other hand it’s quite simple you can just start talking to people here or at the job you just open source code and just

[31:12] Upload the GI up it’s already open source but you want a community as well and community building that’s also creating a job having people speak sharing knowledge and I think that’s also what’s part of Open Source if someone wants to start becoming a speaker he lives close to you what should they do they should go to meetup.com and look for y n and then contact press the button and all of us get an email and we can get in contact with you also do something like shorties quickies yeah now we have all always two speakers at night but we also want to change that and do quickies and stuff but that really depends on the speakers and how much we have to build up something you learned today that you didn’t know yet about Java there are too many talks because they have eight talks at the same time I guess so hard to choose yeah and it’s also a community event so you also want to network with people and stuff and they’re recorded so we can see them later on the talks I heard this before I don’t come to the conference for the talks I come for the community is that always also the case partially last year I Vis the

[32:22] Three talks and it just talked the entire day with other people that’s yeah that’s what it is you mean a lot of interesting people you learn some new stuff I didn’t learn anything new about Java today but one of my colleagues was having a talk about organizing coding events to have some competition with people it was quite interesting to watch that’s it for this year see you in 2025 for more OpenJDK news thanks for listening or watching and thanks to my guests of course keep an eye on Foojay for future articles and podcasts about development and everything related to the Java world see you give me a food give me a Jak give me the friends of OpenJDK

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

Written by

Anthony Goubard

Java developer since 1995, I've seen, in so many years, many technologies: from J2ME to the cloud, from sockets to GraphQL. Working now as freelance for clients or for my passion which is to write Java Swing applications (japplis.com).

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, …

Written by

Geertjan Wielenga

Geertjan is an open source and Java enthusiast, Java Champion, Apache Member, and leader of the Amsterdam Java User Group.

Written by

Hanno Embregts

Hanno Embregts is a Java Developer with a passion for learning, teaching and making music. In his day-to-day job as a Teacher / Technology Advocate at Info Support, Hanno prefers work that is fast-paced and versatile. This is why he juggles Java development, …

Related posts

Join the discussion