Foojay Podcast #62: Better Coding with AI: Friend or Enemy?
ConferenceJakarta EE

Foojay Podcast #62: Better Coding with AI: Friend or Enemy?

AI, LLMs, ChatGPT—these are just a few of the buzzwords of the massive revolution unfolding right now.

These tools are reshaping how we work, but they come with a catch: while they help us work faster and smarter, we need to be careful about placing too much trust in them.

I’ve spoken with several guests at the JFall conference in the Netherlands actively working with these tools to learn more about them. And I had a chat with Grace Jansen about a recent Foojay blog post.

Video

Podcast Apps

You can listen and subscribe to the Foojay Podcast on:

Guests

Content

00:00 Introduction of topics and guests

01:07 Introduction of Grace and the Foojay blog post

02:31 What is LangChain4J?

03:23 What is JakartaEE?

04:25 What is MicroProfile?

06:33 Compare these tools with Spring

08:30 About the demo application of the blog post

11:32 What is an LLM, and what can it do?

13:41 Short-term evolutions in AI

16:49 Long-term predictions…

18:36 IBM Watson code assistant for VSC

19:45 Sean Li: Java at Microsoft

21:56 AI products provided by Microsoft

25:09 Code upgrades with a VSC extension

26:44 John Sterken: AI as a coding assistant

30:50 David Vlijmincx: Project Panama in relation to AI

34:53 Urs Peter: Generative AI, LLMs, and LangChain4J

40:20 Joost Kaan: Organizing an AI conference

Transcript

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

[0:00] How can AI help us to do a better job let’s find outcome to the fjc all your news about OpenJDK AI llms jat GPT these are just a few of the buzzwords of the massive Revolution unfolding right now these tools are reshaping the way we work but they come with a catch while they’ll help us to work smarter and faster we need to be careful about placing too much trust in them I’ve spoken with several guests at the jall conference in the Netherlands who are actively working with these tools to learn more about it you’ll hear Shaun Lee about Java at Microsoft John Sten about consultancy work in various Java projects David flamings talks about project Panama B Peter had a talk about generative Ai and Y Khan helps organizing an AI conference in the Netherlands but let’s kick things off with gra Johnson who recently wrote a blog post together with Gilbert Quan on Foojay showcasing a demo AI application hi I’m Grace Johnson I’m a developer Advocate at IBM working primarily in the Java space I’m also a Java champion and yeah love doing stuff like this thanks for inviting me on the podcast and I see you recently got quite some nice

[1:22] Prize that you were honored yes yeah yeah I got the Rising Star Award for the UK IT industry Awards yeah wow congrat thank you very much it was a it was a fun evening yeah yeah I invited you for this podcast because you wrote an article on Foojay together with Gilbert Quan about let me read out the title run AI enabled Jakarta e and micro profile applications with LangChain4j and open Liberty H is that a challenge how much buzzwords you can get in one title hey well you’re intrigued right so it work work yeah I think it was just case of you know we didn’t want to necessarily focus on the fact that we’re just showcasing an openiv application the whole point was there wasn’t previously an example on the line chain for J GitHub repository of any application using chart and micro profile we thought you know there’s a lot of people out there using these Technologies we can provide a demo application and hopefully people can learn from it and understand how they could integrate Lang chain for J within their own applications so I mean it was fun it was fun coming up

[2:28] With the title I have to say you mentioned a few things so Lang for was already mentioned a few times in the podcast it’s a library to interact with llms or yeah really what it allows you to do is kind of have that standardization of being able to access those llms so instead of having to sort of figure out how you interact with each individual llm depending on what you’re interested in it allows you to be able to have that standardization which is obviously you know really helpful to be able to have industry standards and to have a singular way of being able to interact with apis or whatever it might be you that’s the reason we have so many standards standards in our industry you know micro profile we’ve got others and it’s a really helpful tool for being able to access I think it’s more than 15 different llms they have Integrations with now so lots of different Choice then the next one you mentioned is Jakarta e how did you use that in the demo application in the blog post yep so for those who aren’t familiar with chati yes you probably start with that because a lot of people

[3:35] Are like what is this thing so chat is an awesome community-driven specification so if you’ve ever used sort of java e this is kind of the downstream open source component of it so it offers lots of sort of Enterprise level Java apis for you to make use of when building Cloud native Java applications and it integrates really well with mic profile which is another specification which we’ll probably go to but in our application we’re utilizing tarti e in this particular app that we’re using we’re using Chata websocket so we’re enabling we’re using this API to enable two-way communication between the client and the chat service that we’re using being able to sort of make that HTTP connection to get messages in and out so that’s the particular API we’re using from that specification and then micro profile that’s the next one yeah so micro profile I feel like we’re going through all the buzzwords here mic profile is amazing again another community-driven specification and it’s the nice thing is with bothar and micro profile a lot

[4:41] Of the same individuals and companies work on both specifications so they’ve got really great integration together in fact the latest release of micro profile 7 now has a dependency on toarti E10 so real close collaboration they are meant to be used kind of together and it’s it’s nice because you get that sort of influence in terms of what’s being developed Within These specifications by lots of different companies so you don’t necessarily get that kind of vendor lock in and you get lots of flexibility and I would say the best mind working together which is really cool to be able to have lots of different people that you would normally work with working together on these industry standards so it’s another industry standard it is designed sort of to Really Elevate traditional sort of Jakarta e Java e that Enterprise level Java into the world of the cloud so adding additional apis on top that can be really helpful when you’re designing microservice based applications or just applications really it could be macros Services even monoliths that are going onto the cloud so it enables really

[5:46] Important apis like for example being able to check the health and metrics in your micro profile in your applications being able to utilize like I was talking about that HTTP communication through rest for example being able to utilize what else is there I’m trying to think through the because it’s changed in the recent one we’ve just added Telemetry which is really cool so micro profile 7 has actually introduced not just tracing but also the metrics and the logs from open Telemetry so again a lot more cross collaboration with other industry standards that are wider than just Java so lots of really important apis that it introduces that allow you to be most effective in the cloud when designing Java apps okay most of the Java developers use spring that’s still the well most known name how do you compare these to spring so i’ would say they serve very similar purposes in terms of trying to make it easier for application developers to build Java applications by enabling them to have those standardizations standard apis that they can use to be able to perform

[6:56] Certain tasks the main difference I would say is spring boot I would say is fantastic for really you know originally I would say it was much better at for startup if you had never developed a Java application it was really great really easy to get started I would say jakar and micro profile have now gotten to that stage but maybe a few years back it wasn’t necessarily that case that parity wasn’t there but I would say that traditionally people are just used to Spring Boot and so they stick with it the only downside I would say with spring boot is that you do have that vendor lock in so there is you know one company who’s producing spring and so really the future development of spring is dependent on what that company deems to be important and a priority whereas the nice thing which kte and microprofile is because it’s community-driven there’s a lot more collaboration there and a lot more in terms of flexibility and the sort of ability for you as an individual if you want to influence that strategy so it’s a lot more sort of collaborative as a

[8:00] Community Driven project but I would say a lot of the functionality between them is very similar yeah people who are used to the annotations of spring will probably recognize those of Jakarta e totally they say that if you can you know if you if you’re used to Spring you can switch to jakata if you used to jakata you can switch to Spring there’s a lot of commonalities as you say between the two and the actual way you program is very similar it’s just a case of sometimes you might have to use a different annotation rather than the one that you’re used to mhm okay back to the article so what is the demo application that you describe in the article so this is a it’s meant to be a super simple application just because you know we’re not trying to complicate things by trying to introduce a super complex application and you’ve got to spend five 10 minutes trying to figure out what is this even doing so it’s really simple it’s just a web application that enables you to it pops up a user interface through a web page and that just allows you to be able to have a text box to enter text and

[8:59] Send it to u a chatbot essentially so we’ve connected it to a hugging face model and you’re able to send text to it and get text back so it’s just an interface to interact with a chatbot so fairly simple in terms of the actual application itself and what it does and the chat functionality so interacting with a large language model that’s done with LangChain4j yeah yeah yeah exactly so it’s a combination of Lang chain for J and we’re using things like Jakarta CDI Jakarta web soft micr profile config and micr profile metrics in our application itself but in terms of the communication we’re using Lang chain for J and then obviously as I mentioned that web socket to enable that two-way communication but LangChain4j is just a library sitting in between but it actually interacts with open AI or another on API exactly it’s up to you as to which one you choose so large language models there’s lots available out there and they have different specialities they have different abilities so if you actually go to the Lang chain for J GitHub repository and you click in the read me it lists out we

[10:06] Have you know 15 different llms that we connect to it if you click on that link it will actually take you to a comparison page it’s a really helpful page where it shows you what each llm enables you to do it has different categories of sort of you know does this particular one enable text does it can it produce images you know what can you use this llm for so that can really help you to pick so in our case we’ve just picked hugging face it’s it’s it’s a text based llm so we’re not expecting images back on this particular case but that was good for us we just wanted it to be quite simple and IBM has a partnership with hugging face so it’s great for us as developers to get more experience with that when we were developing this application but as I said it’s just as you said it’s line chain for J deliberately makes it flexible so you could take this application and swap it out for I don’t know gemini or open AI whatever you fancy because that’s the whole point of having a standard is you shouldn’t need to change any of the code within our application to actually make that work

[11:07] So that’s that’s the cool part about using this kind of framework yeah and also probably bit the cost because some of these models of course cost money as soon as you start making a lot of API calls oh yeah it can quickly rack up you can just use a lot of them with the trial and then switch from one to the other yeah yeah if you’re just trying things out then we we’d recommend this yeah yeah there’s a lot of confusion about these llms so a lot of people think they are really smart but actually they are just text generation and image generation what’s your description of an llm to make it clear that it’s just text or what should we see it’s so funny because we use these acronyms and they make them sound so mysterious and powerful and you know it’s when you break it down llm just stands for large language model and then we break that down even further what is a language model a language model is literally just a machine learning model of natural language that’s based on probabilities and statistics so it’s essentially just taking text and saying How likely is it for a word to follow this word in this

[12:20] Sentence that’s it there’s nothing really that smart or clever about it it’s just How likely is this to occur as a sentence as a word after this word in natural language and then we add large to it and the large part just comes from the fact that it’s trained on potentially billions of different data points so that’s what we mean by large language model is it’s just a language model that’s categorized but it’s really large size now there are different ways that we can teach language models and really it’s up to us as to how we decide to teach them it could be supervised learning it could be self-supervised learning it could be a combination of different learning but really it’s just it’s as simple as you say it’s just text and the probability of it occurring so it’s it’s amazing that we’ve been able to produce these language models to be able to do so many different tasks but I think we have to keep in mind that it is just a probability sort of exercise so we shouldn’t necessarily not check what they’re producing is what I would say you know it’s a great tool to use a fantastic aid but I don’t think we’re at

[13:27] The stage yet with the fact of how they’re created how they’re made of replacing what we do yeah and they’re definitely not knowing everything they’re not a search engine we should not use them as a search engine how do you see this AI thing and LMS evolve in the short term they are already evolving a lot very fast but any idea what will happen first in the short term yeah so I think as you say a lot is changing a lot has changed over even just the last year if you look back a year ago we’ve got you know llms that didn’t exist we’ve got products that didn’t exist we we’re integrating more with these products you know things like co-pilot at the beginning of the year most of us probably hadn’t even used it and now by the end of the year A lot of people are using it in everyday tasks so I think in the short term I expect to see more and more individuals use it for regular tasks I think right now it’s it’s still not necessarily being used to its full capacity to help us with as developers being more productive so I see it being used for example

[14:40] Potentially things like really good learning tools so for new developers coming in if they’re unfamiliar with how to develop Java applications or even if you’re a developer who has switched as we were talking about switched from Spring to Jacarta or toart to Spring understanding what’s going on within that code block so being able to use things like the explain ability within AI functionality or being able to request tutorials and learning from AI tools I think that’s a fantastic place that we can already utilize it another way we can that I see people utilizing it more is things like test generation that’s becoming more and more common again that’s not to say we should just leave all test generation to Ai and never check those tests it’s still very important that we check them and that we make sure that we have full test coverage but to be able to actually start generating those tests and have have a starting point to work from I think we’re going to see that more and more other ways in which we could have it is things like suggesting code blocks starting to use that

[15:40] Functionality a bit more I think at the beginning we were very skeptical because as you say a lot of the code didn’t work I think it’s improved a lot don’t get me wrong I don’t think it’s at the point where we can just autonomously leave it to itself but I see that becoming a more everyday occurrence is just using it as as a sort of development Aid so to speak especially for those newer developers but I still think we need and I still think it’s important that we have things like pair programming code reviews and proper supervis of those AI tools so I think in the short term we’re just going to see more and more use of it and a wider use of it through different tasks that we might not have used it for before yeah but people just need to think for themselves if they start copying code it’s like it’s like stack Overflow right you wouldn’t just go to stack Overflow and be like yeah this must be the best code like I’m just going to take this and use it like again we should probably check that yeah I once called myself a full stack Overflow developer but that’s not

[16:45] A good approach I like they predict self-driving cars every two years that they will be available within two years do you dare to do any long-term predictions I think we should take a very good lesson from those self-driving car announcements I think it’s it’s way too early to be predicting anything in terms of you know it’s at this point you’re looking at almost a sci-fi movie you know it it’s it’s it’s so difficult to be able to predict with the rate of change where we’re going to end up in two years time five years time and how we’re going to be utilizing AI I think the rate of change is phenomenal we’ve not seen this rate of change quite to this extent before so it’s it’s a really interesting place to be but I wouldn’t want to make any predictions other than the shortterm let’s use it as a tool especially because you know it’s not just the just like with Drive self-driving cars right self-driving cars feasibly are possible it’s not necessarily the technological feasibility that prevents them from being able to be adopted there’s a lot of other factors involved here like

[17:59] Trust with humans like for example compliance and those those factors don’t disappear for software development it’s the same things in software development you know being able to trust those AI models being able to have explainability in those AI models all of these factors come into play when it comes to could we take this a step further and utilize it in an autonomous way and I just don’t think we have enough Insight right now to make those speculations okay so I invite you back in two years and we will see where we were heading to okay I like it anything more you want to add about the article about AI whatever only that it’s it’s actually a really great time to be recording this because literally this week IBM released its Watson code assistant plug-in for VSS code so if you guys want to give that a go it’s it’s a great model it’s brand new we’d love to get feedback so let know there’s a trial version so you can try that out and it’s actually it’s the first time we’re introducing Java specifically into it so enables you to have that those key factors I was

[19:07] Talking about so expandability Generating Co Snippets and things like modernization that’s a topic we didn’t talk about but modernizing your application to say the latest version of java or modernizing it from say an older runtime to a newer runtime these are all possible with AI tools like WCA so if you’re interested go and check it out because it’s now available a as a vs code extension and you can try it for free with our trial so yeah give it a go if if you fancy it check the show notes of the podcast or the links below the video for links to the Foojay blog post by grace and Gilbert and the other things she was talking about now let’s travel back to the jall conference I asked Sean Lee from the Java team at Microsoft what brought him to jall and learned how important Java is in Microsoft and what they do with AI he also shared more info about the vs code extension to make developers life easier what brings me to jall well I’m here to talk about Java Ai and manage services for Java a lot of people don’t know about Java and Microsoft as a matter of fact when I came here this

[20:15] Morning the first person came to my booth and asked me Microsoft does Java like yeah we do of course we do we have a lot of java offerings and they ask the person to come to my session and where I give a overview of all the Java offerings that we have at AZ yeah it’s really remarkable I have a background in C and I moved to Java when I joined the new company and then it’s remarkable to indeed understand that Microsoft is one of the many companies involved in the development of java and the OpenJDK oh yeah yes yes so we have a dedicated team they’re based well it’s a like any other team they’re they Global team and U yeah so that team is responsible for the Microsoft build of OpenJDK yes yeah so you make a build of OpenJDK but you also contribute back to opj because with every new version you have this nice slid with colored blocks and then Oracle is the biggest one doing most of but you have Microsoft bellsoft AO a lot of different companies but also a lot of people who just contribute because they like it or they found the buck and everyone can do that yes yes so you have absolutely right

[21:29] We are not only do we have their own verion of ow JDK but we are also a member and contributor of the OpenJDK Community and I think you also have one of the biggest group of java Champions working at the company yes you’re right about that almost forgot to mention about that yeah so among my group I have the honor of meeting working on a day-to-day basis with a lot of java Champions at Microsoft back to the AI so it’s a buzz word but what are the concrete products the offerings that you do with Microsoft that I as a Java programmer can do what can I use provided by Microsoft to build something with AI okay well well that’s just very B questions like I’m kind of as to like where do I even start there’s like so many things you can do with AI right well starting with open Ai and you know GPD 4.0 because that’s the time tested model that everybody uses there are so many models out there there’s so many applications just back in my session today I was talking about one based on one of my personal preferences where you know I was I happened to be traveling with my

[22:45] Family in Holiday and because I have a six-year-old with me and because I didn’t want to pay for the extra bed or the rollway bed I convinced my son that the couch is really the best place to stay for the night and he bought it because it was in six he got so excited right so then I’m on a mission to get extra accommodations to make up the couch from for my son so I picked up the phone and surprisingly and not surprisingly it was actually an AI on the other end of the call and over the course of Lifetime dealing with AIS I know the best way to circumvent these AIS may not be a direct answer because the these AIS are designed specifically to be very persistent so instead I figured what is the best course of action for me to do is say something really complicated it wouldn’t understand and you would have no choice but to rout me to natural human being so here I was I told the long winded version of my story 6y old he is sleeping on the bed need extra accommodations and then few moments later AI said we will send you extra bedding in just a few minutes wow that was like and you know

[23:58] Here I was in total shock and a few moments later a nice hotel staff came back and brought me some extra beddings with a children siiz pillow how cool is that right so that is you know just one example based on my own personal encounters where generative AI has significantly improved ability to understand natural languages and like there’s so many applications across the industry we’ve seen for instance in the U in the finance industry we’ve seen AI being utilized for fraud protetion right we’ve seen customer service AI been used for support right we’ve seen in the automotive industry AI is been used for do all sorts of automation and also for my team so like I said I’m from the Java on a team and we’re currently exploring how can we tap into the power of AI to help you migrate your Java apps onto Azure right so there’s a very a wide array of AI applications that you know which it’s that’s it’s fascinating how you can the possibility is really endless and the future of AI is really here is here today I don’t know if you are involved but I saw that there is some plugin

[25:12] For visual studio codes which also uses AI I think to evolve from java a to newer absolutely yeah that’s actually from a sister team that’s from the same organization where I’m from and we recently wrote A Blog about how you can use vs code co-pilot to upgrade from java a to a later version of java so yeah so that’s that’s from my team as well so again AI helping developers to write better codes correct yeah absolutely so the way we imagine is really AI is you can use AI for everything every new app will be reinvented with AI even if you’re not using AI directly in your application code well you can still use AI to help you generate the code test your code right right right different time test cases possibility are really endless yeah so as a developer I should look at AI it’s a buzz word but it’s more than a buzzword I should look at how can I be a better programmer and how can I build applications in a different way so there are two things there to take into account yes absolutely I think in my mind AI is a buzz word yeah it still is a buzz word but maybe a year ago you

[26:24] Know if you look at AI there’s just it’s it’s just the hollow buzzword but now I would say we’ve landed so many applications real real life applications that AI really is here today in the next Foojay podcast we will dive deeper into how tools like open rewrite can help you to keep your code and dependencies up to date my next guest is John sterken from chillit a Java consultancy company I asked him how AI is used in the various projects he sees in the consultancy work they do a little bit like we’re using llms of course to like personally I use llms sometimes to look for test cases that I haven’t looked at before or I for example had a very specific want with a stream where I had like a null element and I wanted the null elements out of the list for example and it was in know yeah it’s bit hard to explain but I couldn’t do it with like a filter for example that wasn’t possible so then I was like okay I write my test case I had like I knew what I wanted so I wrote the integration test I wrote the unit test for it and then I was like okay but now I just

[27:43] Can’t seem to get the stream right to get this what I wanted so I was like okay change this into what I want and it did it so for example in those small edge cases I would say but it feels to me like AI is becoming a bit of the new blockchain it solves all your problems and no I had like a for example something with a manager we were specifying requirements for a big project and then I got the question like oh can’t we solve this with AI and it’s like yeah no it like yeah it won’t think it can of course think of requirements for you but it cannot see your use case it cannot see the company context that’s what we humans are for we interpret the context of a company we know the company we know the struggles and we know why some solution works and why some solution doesn’t work and AI can well I wouldn’t say that it can’t ever do that but at the current state it won’t be able to yeah but I like your example where it generated some code for you it’s really like you can use it as a pair programming colleague to find some specific problem or solution for

[29:04] Something you don’t come up yourself yeah if if your either your solution is very simple and you just don’t want to write the code for it or it’s a very small scope problem so I wouldn’t say like tell it to write my application for me it won’t work because the more complex it gets it even forgets what it generated before so will just contradict itself after a while but yeah if you have like a very small scope problem and what you said as a like a pair programming tool it’s definitely something to work with I also had an example that I wanted to do I have a scanner which can cannot scan PDFs that are searchable for example so I wrote in combination with chat GPT a small application that could could parse the image and then make make a searchable version of that PDF for example like a OCR so it included an OCR library and stuff like that it was a very small simple application of course small simple utilities is definitely use case and code you’ve never written before something new like OCR if you never done that before it can guide you into which dependency and which code you

[30:24] Can use for that yeah definitely and explaining Concepts I’m definitely warming up to it as a learning tool so let’s say I’m I wanted some specifics about rabbit and Q that I wasn’t that familiar with so I asked to explain it to me and then like if I have specific questions I can just ask those questions I get an answer for example yeah David flamings came to JF to talk about project Panama an OpenJDK project that is important to make it easier to add AI capabilities into Java let’s start with the goal of project Panama it is a another option of j instead of using jni you can use project Panama to create Java code that’s interruptable with C code so you can actually use your C libraries in nice and easy way in your project and so to explain this idea of an OpenJDK project this means it’s not yet in Java it will be soon it’s already in Java I think it was added in 21 22 so you can already start using it but and then a project becomes some jeets so you have some enhancement proposals and it can keep evolving so there can be more features in the future yeah sure

[31:44] Yeah this it’s possible it’s for now it’s the for me for memory and function API so yeah to actually create some native memory and I’ll call those native functions what will be the advantage if I use is for a memory API well now you have to use the mapped bite buffer if I remember correctly that goes away because those have a limit of two gigs so now you can allocate all the memory you need and you don’t have to work with those bite buffers anymore but you can actually allocate that memory yourself and it’s all nice and safe so the whole memory management is also done for you and you say interrupt inter interact with codes what should I use then code for versus what should I do in Java well it’s all the unique things that c can do that Java can’t or still yeah maybe in the future like there are some C libraries maybe in the kernel of Linux that you want to interrupt with or interact with so all those libraries you can now start using like for example fuse or iing so all those libraries you can now integrate to your project that yeah aren’t part of java yet or never will be is it also something which

[32:54] Will be useful to move Java into the AI space one of the Holy grills yeah I think so it will because now you have to use some python library that also call some SE library now you can just keep using Java so I think that really helps yeah with the involvement AI yeah I I’m involved in the pi 4G project which is to enable programmers to interact with Java with the gpios of Raspberry Pi to control Electronics we have jni in that project a lot because again we use C codes to interact with the gpos it’s a mess I have to say this old code will this become better with thanks to project Panama yeah I think so because with j and I if you wanted to use C you really had to get over that fence and stay in that c world then you come back at some point but with project pan you can really go back and forward and it’s really it’s almost like writing Java it’s really you just work with method handles and that kind of stuff so it’s really yeah almost looks like Java code actually so this is the main topic of your talk can you condense it into a few minutes and give us the most important parts for people who miss it yes so

[34:04] To interrupt with the c code all you need is just some memory a method handle and that’s it all that’s all you need to invoke a c method and you can actually start integrating your own C libraries is it difficult to start I’ve never done this before I am involved in this p5g project I’m doing the documentation I’m doing the easy part is it easy to get into this how do I call a cclass and do something can I find some quick examples somewhere yeah EX on the FJ side there are some really great examples of how to do this some tutorials and everything so yeah to get started I you need like three lines of code and you can start going again check the show notes of this podcast for links to some of those Foojay articles about project Panama Peter who visits jall every time had a talk this year about gener Ai and unlocking its power on the GPM I asked him how the large language models are evolving yeah what you sees that these llms they start to get more protocols that are kind of compatible across different LMS and for these you need actually Frameworks so that you can swap one LM with the other

[35:18] And still maintain the self the same code so you’re using LangChain4j I’ve experimented with it only briefly so but what it tries to do this library is indeed bring you one API to be able to talk to many llms right exactly that is what it more or less is so there many abstractions so you can Define LM you would like to talk to but it’s not only LMS it’s also Vector stores that’s a term which is used for they all kind of fancy terms and I know if the listeners are aware of them but the V store allow to do something like similarity search which also a big thing in Ai and also for these kind of applications they have their nice abstractions what demonstration do you give during the presentation yeah so what I try to achieve in this presentation is first of all to bring the concepts that are in AI like what just talked about factorization talking to LM prompt engineering un like a bit closer to developers so in that sense I will also show the critical parts of LM they are kind of hyped to be the next big thing that can solve everything and I clearly going to show

[36:26] That they can do a lot but also quite some serious limitations we have to deal with and I do this by building live an application where you encounter all the different concepts but also the struggles and U yeah and challenges you will enounter along the way for people who are used to doing Java development for business application stuff like how difficult is it to get into this AI stuff the nine thing is before actually this whole generative AI hype you had data science and that was very math heavy but now I think we met a with some sort of Middle Ground where you as developer just pick a model you don’t make the model yourself but you just pick a model that does the task you think it does or if it doesn’t you choose another model so once you understand the concepts you can quite quickly create cool new stuff without being a data scientist and all the mathematical knowledge that is normally required so I said what’s important is to understand the concepts what you can do with it once you have that then you pick your framework you pick pick the right models to do your use

[37:29] Case and off you go within this llms you have this hallucination they call it I guess so that the model starts coming up with answers which are not right is that’s still a big issue is something you can help your model to prevent it it’s a very good question and it is still a very big issue and my conclusion it’s not only my conclusion just was recently a report from Apple and meta so companies that are very close to the fire when it comes to AI they come to the same conclusion because the core of these models is that they’re not made to reason they’re made to predict TX that sounds nice this is the core of all the LMS and now there are also in the industry a bit hyped as kind of Eng that can reason have the latest model of open AI o one strawberry which even has some reasoning capabilities but I said the core is flawed so if you expect these models to reason I think you’re going to be very disappointed which doesn’t mean that they can do valuable things but if expect to reason correctly like humans I think well you will have your nightmares yourself so this is a clear message we have to

[38:42] Add here so a text model is just predicting the most plausible next words that’s exactly what llms do and they do this as such that you as a user because they’re trained with so much data think they can reason I compared in my talk short short preview in that sense with a parrot can also make noises we humans understand but the parot S has no clue what it’s all about Lam is trained with a lot of data so it’s a parrot that has swallowed all the books in the world so you really think this is a smart parrot but he has no clue what he’s talking about you mentioned L chain 4 J are there other libraries which should know of within the Java World related to AI yeah definitely so Lang chain for chain was also probably the first and later on Spring AI joint so these are actually the two dominating libraries where you can do stuff that is more or less production ready I don’t know springy I didn’t try it I tried Lang CH for I know that they have a lot of examples so it’s very easy to get started it’s very easy to get started I also compare the two in my talk and to be honest in terms of features they’re

[39:46] More or less comparable it’s just a bit a flavor thing so one Frameworks addresses in a certain way spring of course there a lot of magic just by have some configuration whereas Lang chamber Chase with more model you have to configure yourself but you also know what you’re doing instead of just getting some beans you’re not really aware of what they doing and but definitely a big difference is that L also can use with other Frameworks like quarcus Micron out Kor whereas spring ey of course is only only for the spring users whereas spring still dominates the market with 90% market share so well okay it’s a good trade off exactly finally Yan business developer at IOD digital he has a message to share for everyone in the nether NE land who is interested in EI as he is helping to organize a conference around that topic IO has a partnership with Amsterdam yava User Group with K Chan and we organized a small scale Meetup about 70 people at our Amsterdam office and that was about spring Boot and quarkus mainly and the differences between them and what you can do with them Etc and yeah that

[40:57] Partnership was actually that went so smoothly that we decided okay let’s see if we can scale up and let’s see if we can get other partners connected so we’re now in contact with the Java User Group in Barcelona and we’re trying to organize an AI for devs conference we haven’t exactly decided to date yet so as soon as we have concrete information we’ll let you know but so one of the things that we’re really noticing is that AI is being used as a buzzword by management and it’s an annoyance for all devs and also for me is like somewhere in between Devon and management so we really want to organize a conference that is about okay so what are the use cases for developers specifically it’s going to be called AI for devs and you know we want a full conference with only use cases of presentations no slides just live coding and knowledge sharing on that subject because we do believe AI can make a difference for devs but show it like don’t talk about it show it I think I do some developments still mostly do dock writing but I see that AI can help a developer a lot in producing

[42:05] Example codes giving some review or an explanation of a code but I think it’s really difficult indeed to find use cases in production where you can use it on top of data and bring it outside in the outside world and I think those are the main challenges yeah but that’s with all new technology it takes a while until people are used to it and until they know the full value of it right and now in the AI boom it’s hard to see okay so which things are really useful and which things are marketing tricks right and that’s a process we are all in at the same time even I am even though I’m not developing you know I’m also looking at okay so which AI tools can I really use to make my day-to-day work easier right and that requires experimentation and learning from each other it requires trying out a tool and realizing okay this is just hot garbage I mean sure it looks fancy but it’s not going to make my work or my life easier and then sometimes you find The Gem right and like okay this is really going to make my life easier and that’s that’s the process we are all in at the moment you’re

[43:16] Looking for a buzz word filter something like that yeah something like that maybe we can make an AI buzzword filter that’s it for this episode many different guests many top topics we handled and I hope you learn something from it thanks for watching or listening to this podcast keep an eye on Foojay for future articles and podcasts about development and everything related to the Java world see you 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