The Better You Are at Programming, the Worse AI Looks

S00: The slogan a lot of companies are saying is AI first, and I say AI second. When I ask AI to do something that I’m a novice at, I’m at awe at what AI is doing. But if I ask AI to do something that I’m an expert at, I find it awful. So my argument is, with AI, we need more skill and not less skill right now, I think. I call this TDD because it’s threat-driven development, right? And we are threatening people to do things. (…….)

S01: So as I said, we’re gonna do it a bit differently this time. Usually I do welcome to the Marco show and then introduce the guest. This time we’re just gonna jump right in. I suppose people know you. You’re quite a known figure in the Java world and the Java universe. (.) And I saw a bit of your schedule because today you’re in Munich. We’re here at the new recording studio because our existing studio didn’t have people to work. (.) And you came from Bulgaria yesterday, I think. Now today in Munich. Off to a couple more places afterwards. And I saw that one of the talks you gave, or one of the keynotes you gave, was titled It AI, It Ain’t So. What specifically is not so? What is different about AI than we think?

S00: We are living in a very exciting time when we have a tool with us, which is remarkable in terms of what it produces. But like any technology, we are comprehending what its powers are. And the problem is, up to this point, almost everything we’ve enjoyed as developers has been fairly deterministic. AI is enormously non-deterministic. And what it produces is amazing, but how good is it? And how reliable is it? One of the challenges I think we’re dealing with is the people who are getting way too excited about it are also the people who understand very little about what we do. And that’s kind of the idea behind the talk is to illustrate both the power of the tool, but at the same time, the perils of using it as well. So I think AI is amazing for certain tasks. To me, one of the things that fascinates me about AI is its ability to detect issues, to find bugs, to do risk analysis. So in a way, you know, a bit of a tongue in cheek, but I am not as great in writing code as I am in critiquing code. And I find AI is also very similar in that. It’s not as great in writing code, but it’s amazing in finding problems. And I think that’s kind of where we need to really understand what it is and what it is not. And so to me, if we have a better understanding of the capabilities of AI, AI, I think we are better positioned to leverage it. And it also helps us to mitigate the fear that we have with this tool as well. (.)

S01: When you say it’s not as good as writing code, do you think, does that mean, for example, it produces overly convoluted code or too much code, or is it just bad code? How would you define it?

S00: All of it, just like us, just like us. And, and, you know, one of the things that I’ve been fighting for myself, right, I’m part of this as anybody else is, is as humans, we tend to really complicate things more than it should be. We write more code than we should. We eat more food than we should. (..) Pointing at me, we talk more than we should probably. And, and I think the minimalistic approach is a good approach. And AI is capable of doing it. But just like anybody else in every one of us, if we have a certain guidance to work with, I think we work better within that framework or the guardrails or the guidance. So, so the key I think with using AI is, if we unleash AI on a problem, it’s going to be a disaster. But if you provide a proper set of guidelines to AI and say, you know, here are the constraints I want you to follow. And within these constraints, I want you to, you know, produce the code. I think it’s beginning to do a better job. And, and that’s a realization we have to come to.

S01: Would that mean if I wanted to, for example, I don’t know, I’m creating a new feature for an online banking application, whatever it is, would you recommend people then really to come out with a, with a detailed plan themselves, a spec, so to speak, iterate on that spec, even with the help of AI or what, what would that actually look like until AI actually implements the entire thing? Would you even let the AI try and implement the entire thing? Would you really try and do it manually and, and, and just have AI assist you along the way? What would that look like?

S00: The first thing is to understand what that word you here actually is. you know, somebody random came to me and said, uh, you’re a programmer. Are you worried about losing your job now that you have AI? And, and that was a, you know, sudden question. I did not expect this person to walk up to me and ask this question, uh, in a, in a, you know, non-technical, non-programming, you know, situation I was in. And it really brought, uh, you know, opportunity for me to, how do I answer this question from somebody random who’s asking if I’m worried about losing my job? And, and my response was, when I ask AI to do something that I’m a novice at, I’m at awe at what AI is doing. But if I ask AI to do something that I’m an expert at, I find it awful. So, so to answer your question, I would put the question back at the word you. So if somebody who has no knowledge and no skill in developing a software system, uh, maybe a junior developer or even a business analyst who thinks that now that I have AI, I can just use the word just here, right? I can just use AI and I can generate the code is pretty dangerous. But if the person that, that you is an architect or our senior developer or somebody who has experienced developing applications, what I like about AI is AI can remove the manual effort that goes into developing software. The part I enjoy about software development is the problem solving. The part I like about software development is the design thinking and to critique and to evolve. But the part I don’t enjoy as much, in spite of the fact that I can type really fast, is the typing itself of the code. So I’ll give you an example of what truly excited me a few, few days ago. Um, you know, we are all good critiques in our mind. And, and before this time, when somebody comes to me and says, what about doing this? My immediate, uh, you know, reaction is what are the things I can present either to say that’s a good idea, or what are the things I can present to say that’s a terrible idea? We shouldn’t do it. And an often time when you’re convincing and sometimes it’s a bias we carry with us as well. But this happened about a week or so ago when, when a, when a particular feature was presented in front of me and, uh, and I, my immediate reaction was, gosh, that’s not a good one to do. But, but what’s a better way to convince and to prove or to showcase is to really implement it. But the problem with me is implementation took time and, and to prototype, it took time. But now that we have AI, I was immediately able to churn out a prototype literally within minutes and go back and demo this. And then they are like, oh, so that’s interesting. That’s exactly what I was thinking. Well, here are the reasons why this is not a good idea. And that was much easier to discuss and then reject that idea and move forward. So I think the key here is not as much about the capabilities of AI, but the capabilities of the user of AI, I think. And, and if the person using has experience putting things in production to be able to maintain applications, I think that person is in better command as to use AI because I think the ability of somebody to verify, ability of somebody to evaluate is all the more important now than the, the fact that they can produce that code. And, and so I think the burden is on the person using AI more than AI itself these days.

S01: I think the next question that would be, how do I become an expert person? Because the people I’ve talked with also professors at unis for that, they have been telling, well, people use more and more AI to, you know, to do the homework, to the assignments, super tricky. And you can actually feel that people are using AI more and more to, to shortcuts. You know, the, the, the, the painful, I don’t know, uh, adventures that we’ve had in the past, kind of fixing a broken semicolon, so to speak, or whatever. Well, when, when I’m a junior nowadays, how do I become an expert person? Because AI, AI is always there to give me a quick answer and to kind of, I don’t know, give me the, the, the, the, the cheap, quick win, so to speak.

S00: I think the science of that is, or has been around for several years, if not a few decades now. Let’s step back for a minute, right? Ignore the AI for just a moment. (..) Probably you and I, and several others we know, we developed software very differently before the time of IDEs. When I was a young developer, there was no IDE. We had to use tools like VI and Emacs to open up source code and edit it. And with the IDEs, we are more productive. But often I tell my young developers who are getting into it is, don’t get too hooked up into IDEs. So take some time and try to see how you can run this program on the command line. And, and yes, IDE is short in your, you know, effort. But if you only rely on IDE, you don’t understand how things are put together. But I think it’s the same exact thing we are facing today. Yes, go ahead and use AI. That’s great. But don’t forget that you have to learn the fundamentals. You have to learn the basics. And I think there are going to be people anytime, everywhere. You know, I was teaching a course in a fairly large insurance company. And right in the middle of my class, I went to a developer who is a full-time developer on the project. And I said, (.) let’s, let’s take a look at your class path. And he looked at me and said, I don’t understand what you just said. And this person has been developing application for a few years in Java, but doesn’t know how to go look for things about a class path. But on the other hand, I know several developers who use IDEs but can tear up things at a moment’s notice. So I think that is the key is that one of the most important things today, even more important is critical thinking. And if people don’t forget that the tools and the ease of development should not really, you know, convince us that we don’t need to think anymore. So, so if, if developers, new young developer students still realize that they need to take the time to understand the fundamentals, I think we’re going to be okay. But if they’re short circuited and they feel like their only goal is to produce results and not really understand how those results are produced, I think those select people will be in trouble. But the good ones will eventually realize what they need to do to get, get better at what they do.

S01: It’s true. But I feel in general, there’s always a general pressure in the industry to produce results and maybe not as much understand, you know, the, the inner workings, so to speak. You don’t have the time most often just to really, really get deep down into it then at a certain level. And I feel there’s a lot of pressure to, to take, to take these short circuits routes.

S00: There clearly are. But I think that’s really where the maturity is. I’ve been extremely fortunate, maybe, maybe that’s the word to use, that almost in every single job, not there are exceptions to this, but mostly I’ve had bosses who are extremely balanced. And yes, they were in pressure, but they also were mature enough to understand, uh, you can’t go just fast. You have to, they realized the concept of sustainability. And I think that’s really, you, you’re going to have people who are mature. You’re going to also have people who are not as mature, but I think eventually, uh, success will be in the hands of people who understand that I think extremes are really bad. One extreme is getting into this analysis paralysis where we keep looking at, digging at things and never produce results. And the other extreme is be in a rush all the time. Don’t worry about quality. Don’t worry about anything. Just produce what you can produce. I think either extremes are bad. And I think a middle ground is something we will quickly begin to understand. The, the one that I like for myself is, um, I like the concept of time boxing and I don’t want to rush through things, but I don’t want to spend way too much time on things as well. So I often ask the question, how much time do I want to give on a certain task or a certain problem? And at the end of that, I got to make progress. And I think if we can learn, this is what I, I also part-time teach. And this is what I tell my students is, I am not going to give you the answer the minute you ask me, but I’m also not going to go, let you suffer indefinitely because that doesn’t produce any good. So I tell them, I want you to time box this, give yourselves an hour and do everything you can to discover the solution. At the end of the hour, tell me what you have done. That’s an, this is not an exam. This is not a judgment, but tell me what you have done in an hour. And then I will evaluate that. And if you’re still stuck, I’m going to tell you how to solve this. I think that builds us more strength, uh, rather than just going for these quick answers all the time. Because if I don’t build that strength, the inner strength in myself, uh, I become weaker by the day, then I lose the ability to evaluate. I lose the ability to verify solutions. My recent aha moment was, uh, to kind of relate this back to AI. (.) I was driving a car, uh, so I didn’t have access to anything, you know, except my hands are, were on the steering wheel. Right. And I had somebody call me and they said, Hey, we got this, uh, you know, a quote and here’s the amount. And we’re going to get this amount of discount. And after the discount, here’s the amount. And sure. We, you know, I was, I spent most of my life after the days of calculator, right? So if you ask me, do you sit down and do math by hand? No, I use calculators. I, in fact, of late, I use computers more than calculators to do my math. But when the person said, this is the amount, we’re going to get this discount and here’s the amount. And as I was driving, I said, hang on, can you run that by me again? I don’t feel the numbers are matching up. I didn’t have to be good in math to know there is something wrong here. Right. And, and how do I, how do we, how do you get to that point? It is, it is being a bit aware. And if I, if I quit being aware, and if I say garbage and garbage out, then I think other people who are aware are going to get ahead than me. And, and, and the response in this case was, oh, hang on a second. Let me, let me check. Oh, you’re right. That was a wrong number. And yeah, I didn’t have to use a device to know the numbers are wrong. It just doesn’t feel right. And, and, and that is the key thing. I think we should really be able to evaluate, but how do you get good at evaluation by taking the time to question these things. And I think that’s something good managers, good leaders don’t focus only on quick results. They focus on sustainable results. This is one of the things I’ve learned from my own bosses, uh, which I, which I respect after 40, you know, 40 years is I still remember my early days as a young programmer where, uh, they would sit down and coach me on what I should really focus on. I was this impulsive little kid, right? I want to get this done. They’re like, yeah, you can get this done. But if you slow down, you can actually get this done and still, you know, maintain something you create. I think that will happen over time. And, and we will gravitate towards, uh, groups of people who will better be able to use these tools and not just fall through the cracks.

S01: Mm-hmm. Have you ever noticed or heard about people who now, instead of brainstorming with colleagues, for example, or taking time just to chat with each other, they just really use AI as the main person, person, so to speak, they communicate with and bounce our thoughts with?

S00: I do. And I think that’s a terrible idea. And I’ll tell you why it’s a terrible idea. Uh, in fact, I’ve been using a different slogan. The slogan a lot of companies are saying is AI first. And I say AI second. And the reason I say AI second is, uh, when somebody takes a problem and immediately bounces out of AI, they lose two critical things. One is they haven’t really let the problem sink in. So, so I’ll give you an example of this. Um, one of the, one of the consequences of being in this field for a while is, uh, you get approached by publishers to review books that are in production. So I’ve got a publisher that I work with, uh, that asked me to review a significant number of books. And I love reviewing books in production because, hey, I get to learn quickly from an author who is writing. I am very greedy for that. I want to learn before anybody else learns, if you will. But I also get the opportunity to, in an ever so small way, influence the book by saying, hey, this is something you can improve on. So I really enjoy the journey. But, but just to give you an example of that, when I started reviewing books for this particular publisher, they would send me a link where, uh, every one of the reviewers can post their reviews and you can add to it. Now, good news. This is convenient for the author because in one place they can see all the comments. And the very first day I saw this, I went back to the publisher and said, not going to happen. You’re not going to have me put a comment in a place where others have put comments, uh, because I want to take the time to think about it. The reason why you want my review is you want my thoughts. And if my thoughts are already influenced by a comment by some other people, it’s very hard for me to think through this problem. So I want to be able to read something. I don’t just look at the wall, stare at the wall and think about this for a few minutes. And to me, that is extremely important. So when a problem is given to me, I want to, first of all, again, time boxing, right? I want to time box my effort and say, I’m going to spend 15 minutes on this problem. I want to think about it. And then once I think about it, now I want to have a conversation with my colleagues and I want to come with my ideas, but I want to hear about their ideas. And then I want to bring AI and then see what AI is bringing to the table. If I go through this process, I’ve got a much rich, rich set of ideas. Then I had just jumped into AI to begin with. So, so what it really comes down to for me is the quality, right? Quality over quantity always rules for me. I want to be able to come up with really, really powerful ideas and the way for me to do. And I’ve got empirical evidence towards this. I was running a workshop a couple of days ago just to illustrate this. We took a problem and I told my group of software developers in the room, I said, analyze this problem and identify the characteristics from the problem. And they did. And then about an hour later, I said, now that we did this, put that away. Now take the same exact problem, but not our analysis, feed that into AI and see what AI says. So we took both of these and what we found out was there was an overlap, but there were also things that developers identified that was not identified by the AI. And then there were things that AI identified that the developers didn’t. So at the end of this journey, we had a much richer set than either one of those. And the group was like, yeah, that’s actually a really interesting thing that AI pointed out. We didn’t realize that when somebody else said, but also notice what we identified that AI didn’t. And just for the sake of record here, we used three different AI models, not just one. Right. And so this was accumulative from a group of developers and three different sets of AI as well. And the union of these ideas were richer than any one group or any one AI was able to identify. And to me, that is, I think, the realization we have to go through. And if we are in the mode of a rush, rush, rush, rush, rush, and I’m going to just take the problem, throw this into a tool, take what it gives and keep running, I think we are going to get some results. But after all, as we know, the goal is not just to get something working. The goal is to also get something working that is reliable, maintainable, good quality, meets users’ expectations, provides value. There are so many other factors. So I think that’s what is going to set us apart. In fact, I would even argue that maybe, maybe now that AI is reducing the cost of certain aspects of software development, why don’t we spend a little bit more time, not a lot, but just a little bit more time, on other quality things that we wanted to maybe, but just couldn’t. So I would actually use this as an opportunity to improve other aspects than to drain those, in my opinion.

S01: But in that context, what do you think about companies when you hear about it online that encourage people to token max? I don’t know if you’ve seen that these leaderboards where you ranked employees by token spend. I think they’re now going the other way again.

S00: They are. And I think that’s actually a really good example, because stupidity is not sustainable, period. I’m sorry, but I’m not trying to be rude. But stupidity is not sustainable. When I heard about token maxing, I’m like, go for it. This is fantastic. Because there is only so much you can spend on stupidity. And eventually, humans will have to come to senses. And when people are driven by that desire, I think it’s a good thing. Because then they’re not sitting there and complaining, I wish we had done it. You know what? Yes, you did. It didn’t work out. Now let’s go use our senses. I think where they are turning now is where we should have been to begin with. But that’s okay. I think progress is never linear. This amazes me for everything we have done as humans. We are here. We really need to be here. But never have we gone from here to here. It’s always bouncing back and forth. And that’s essential as well. The mistakes we make, the foolish things we try, I think are important because as long as we learn from it, right? Wasn’t it what Einstein said? He said, repeating the same thing over and over, but expecting a different result the next time is the definition of insanity, he said. I think it’s okay to make these mistakes because that’s how we figure out what works and what doesn’t. Has there been time when what we didn’t expect ended up being really brilliant? But how would we even know that it could be brilliant? So I’m all for trying stupid things. But at some point, we have to be able to file that away as stupid and then go off and do things that make sense. And I think that the tools are amazing. If we apply our critical thinking, and if we ask the question, how can we benefit from these tools and not be misguided by the sheer power we see? And I think the key here is to keep in mind, it is a tool. And I often relate, you know, relate interesting, you know, my mind is wired, unfortunately, as a programmer. And I was traveling through India several years ago, and I was I was spending the week there. And then next week, I was down in Houston. And it fascinated me because I was in a bus and, you know, going from one place to another. And the bus stopped and it was looking outside. And literally, there were maybe about 50 people forming a line, and they were desilting a shallow, you know, area of water. I don’t know exactly what the place was. But this was, I was just watching this in awe because these were humans, deep down, some of them with water neck level, and then forming a line through the shore. And this person would go down, you know, desilt, pass this down, and then they would dump this outside. And I was just watching this. Well, on one hand, that’s about 50 families being fed that day, right? So there’s something good that comes out of it. But on the other hand, the sheer amount of manual labor. And then the next week, I was in Houston, I was jogging through a park early in the morning. And there were two guys, one standing there, just to be sure nobody comes near, and the other one on a big crane. And he was there pressing a button, and they were desilting. And I just paused, and I had to stop and just look at it, because I was trying to relate these back together. And I was thinking about this, and I said, the people on the ground were low skill. They didn’t need to know a lot. All they had to do is to dig up some soil and then pass it down. But the person on the crane better know what buttons he is pressing. He presses the wrong set of buttons. We don’t know the amount of damage this person could create. So my argument is, with AI, we need more skill and not less skill right now, I think. So this is a call for rethinking what that skill is. So I don’t think developers are going to diminish moving forward now that we have AI. I think that skill set actually is going to sharpen. You may need fewer people. And personally, I would say I’m all for it, honestly. The 100 people who are desilting, versus these two people who are getting almost the same job done. I’m a capitalist at the end of the day. Maybe in a good way, maybe in a bad way, that’s for others to decide and judge. But I’m not for a bigger workforce. That’s just not me. I also emphasize this. I am not keen. I’m not interested in programmer productivity. I don’t care. What I care about is business agility. So my desire is to produce better results, not better programmers, with all respect. I’m a programmer. I’ve been doing this for 40 years. My desire is not to make programmers productive. My desire is to make the results much more effective. That’s what I care about. So I think we really need to focus on better business agility. I think we are having a tool that can help us to get there. But I think we should rethink about the skill set we need to develop. This is a chance for us to rethink, not a situation to be fearful about, not something to be reactive about, in my opinion. I’m actually quite happy and positive about where we are. But I think we should be more realistic realistic than being misguided by the tools and ask the question, what kind of people do we need to move forward rather than thinking the tool is going to do everything.

S01: So if you were a CTO today, I don’t know, in an insurance company, maybe responsible for a couple of dozen teams, whatever it is, what would you do now? I mean, how would you approach this in terms of would you tell people, hey, here is an AI budget, for example, along those lines, would you say, well, what could people, CTOs or team leaders, what could they do nowadays to kind of follow your line of

S00: thinking? I would say the first thing I would do as a person in that position is to really identify (..) developers who are making sensible use of these tools, not really. So the problem with metrics is when the metrics become a goal, it ceases to benefit anybody. And, you know, this was a, this is a, I wish this was a joke, but I was visiting a company in Boston and years ago, and they said, our bonus depends on the number of bugs we fix. And I said, that’s terrible. And they said, no, we love it because we put bugs in this release and then we fix it in the next one and we get the bonus. That is the problem, right? If we provide bad metrics, people will gain it. So the key here is not to put a budget and say, you got to spend that or you got, you should be, you know, exceeding it or be lower, whatever that metric is. But to me is the first question is find those glimmers or the shining points in your organization. Who are the developers who are making sensible use of it? What results are they producing? And once you find them, the funny thing I find in most organization is they work in silos. I walk through a building and I see people doing brilliant things here and then only a few feet away, meters away, there are people who don’t even know and they are still suffering the consequences of not using it. So that’s one of the things I would say is find the people who are doing really good work with it and then have them collaborate with others so that rest of the people in your organization can learn how they are effectively using it. I think we get a better result when we can collaborate and learn from each other. And if we do that, then we are not forcing people to do stupid things. But instead, if we tell them here’s your budget, you got to spend this or if you’re not using this, you’re fired. We are we are forcing people. I call this TDD because it’s threat driven development, right? And we are threatening people to do things. And at that point, we are going to have certain set of developers who are mature, who are also financially maybe in a position where they can be courageous to walk up to the boss and say, I’m really sorry with respect. This doesn’t make any sense. But a lot of developers, they are not going to have that courage, not because they don’t have the courage. They may not have the financial means to exhibit that courage. Hey, I can get fired by saying this to my boss is a very common problem. And not many people can walk to the bosses and say, I’m really sorry with respect. This doesn’t work. This is silly. We shouldn’t do this. Most people are going to be quiet. One of the things I’ve learned from my bosses is good bosses is they would come to me and say, I’ve got this thought. Tell me why I shouldn’t proceed further. And I remember this one experience I would never forget. My boss came to me and said, we want to use this. Go. What are your thoughts? And I lay out the pros and cons of doing it, right? Here’s what you can gain from doing it. Here are the consequences. And he’s like, did not think through all of those issues, but that’s very helpful. So you’ve given me reasons why I should reconsider what I have in my mind. I think that is the maturity of being a good boss. It is. And I think that helps for an organization is find those, you know, spots, the stars who are making good use of things. Spend some time with them, understand what they’re doing, how they are benefiting from AI, and then tell them your job now is to collaborate with others so others can learn from your experience, from your journey, and see what the results are. And I think that would be a much better outcome than forcing people to do things. And here’s the thing. It may have worked really well for John, but it may not work well in this particular case. We need to be able to find what

S01: that is. For personal development, if I wanted to, I don’t know, up my Java game or whatever, whatever it is, would you recommend personally, go read a book, use AI to build you a unique custom learning path? Come up with exercises yourself? I don’t know. What would be the go to for you nowadays to level up in some certain technology framework, anything it is really? To me, one of

S00: the key things is to really ask what is the unknown? So the problem is, I don’t even know what I don’t know. And if I don’t know what I don’t know, how can I actually be effective in making use of that? To me, the problem is not about knowing. The problem is about using what we know also. What good is knowledge which we cannot apply? People often ask me, what should I learn? And I say with respect, learning is important, but applying what you learn is more important as well. This is one of the reasons why I still go to user groups. This is one of the reasons why I still go to conferences. This is one of the reasons why I still hang out with friends who are software developers. Because when I sit down, when I’m having lunch or a dinner, or I’m in a user group, it triggers things in me that I don’t even know, or gives me a different angle, a different perspective. I mean, honestly, in the back pocket, I always have a piece of paper. And I have a pen here. And the minute I hear something, (.) I was in Bulgaria yesterday for a conference. And three or four of us are just standing around and talking during lunch. And just by way of talking, there are a few things each one of us is saying. (.) And in all honesty, I have some notes written down from yesterday. Because they’re like, oh, I should really read about that. Or I should explore that. Oh, I should think about it. Oh, So to me, there are so many places from which you want to, you know, gain things and get users exposed to things that are unknown. And a lot of times, my querying AI is more of a structured way, because I have a problem I want to solve, maybe I will look for things related to it. But when I’m in a user group, when I’m in a conversation, when I’m at lunch, when I’m in a train ride with somebody, it is something that bringing topics in a unconventional way. And now I have a new book to read, or a new topic to explore, or a new idea to think about. And, you know, I, one of my very first books, I’ll never forget this experience. I was in a conference, and I was there to speak, but I was sitting and listening to a talk by a by a fellow speaker. And then I had done my talk, I’m sitting and, you know, just listening to this talk. And there’s a little background thread in my mind. And he says something, and that triggers a chain of thought in my mind. And immediately, my thought was, wait, it’s a book I should write about. Not the topic he was talking about, but about a tangential one, but that came out of something he said. And immediately, I take my piece of paper, I write down, and a few months later, that’s a book I wrote. And to me, I’m selfish, because to me, these are the things I cherish the most, right? Where do you get that idea? You don’t know where you’re going to get it from. And I was thinking about this, honestly, the other day. I think about a lot about the keynotes I give, or the talks I give. Most of my talks, I write when I’m away from my keyboard, when I’m away from my desk. I was jogging on the streets last week. It was about 5.30 in the morning. And I’m jogging. And as I’m jogging, my thought is wandering. And I’m working on a keynote I’m going to give in a year from now. And I’m just thinking about things I want to use in the keynote. And suddenly, a thought pops up in my mind, away from computer. And I’m on the jogging trail. And I slow down just a little bit. And I’m noting down, because I don’t want this to slip away. And I get so many thoughts on a hike, so many thoughts on a jogging trail, so many thoughts when I’m sitting and talking to a friend. And to me, yes, AI is great, but learning for me is not a tool-based learning. It is a conversation-based. It’s a critical thinking based. So my thing is expand your thinking. That’s what I often tell people. Don’t focus only on what you can hear. Focus more on what you can think, what you can produce. A lot of times, when I start creating things, I’m writing a little stupid code. And I’m playing with something. And that raises a thousand more questions. That’s when the learning happens for me. And I think that’s important to start investing the time. You know, often people say, oh my gosh, that’s going to take time. Bingo. To me, that is the only thing I have, is the more time I invest in digging deeper, is when I get the results. If I don’t spend the time, I don’t get the results. And I think that’s important to invest into it as well.

S01: By the way, on that note, because I mean, I’ve had a look at your talk schedule. And as you’ve mentioned, there are dozens and dozens of talks or keynotes you’re giving. You just mentioned that (.) sometimes you get a new thought for a new idea into your head for a talk in one year’s time. How long does it, on average, take you to produce a talk? Is that really like you’re planting seeds like a long, long time or maybe even years back? And then at some point it just, I don’t know, pops in, it dwells into a bigger talk? Or what’s your process there?

S00: Oh, so I always think about a story to tell. That’s my thesis these days, is I got a story to tell. And it may be just a little seed that, you know, sparks in my mind. I’m like, oh, that’s a really good thing to expand on. And then I start really, if it’s a technical talk, I would say, technical talks are a lot more easier for me these days. I would say maybe three, four months to prepare for a technical talk. So I would say, oh, I want to really talk about this particular language or a framework or a approach or a, you know, tool. And then I would start really preparing for it. And to me, the way I prepare for a talk is very different now than when I used to when I started speaking is to really gather a lot of examples for a technical talk or gather a lot of thought process into it. And then to build that narrative arc. But for keynotes, typically, I would say it may be a year or even two years before I build a keynote. Because when I have a little thought in my mind about something I want to talk about, literally, once I realized this is the topic I want to work on, every day, like I said, I was in a conference yesterday. And as I was just talking to somebody, and we were just bouncing off certain things. And I said, it’s an interesting thing to think about. You just sparked an idea in me and immediately putting a note towards the keynote. So then I dumped all of this into a file. And at this point, it’s pretty raw. It’s about 30 or 40 different examples and stories and anecdotes. I may be walking through a museum. I was walking through a museum in Stockholm, the Nobel Museum, actually. And I was taking photos of certain things for a keynote. And I got a few ideas from there to put in a keynote I was working on at the time. And so then I would just dump all of this into a file. And then about a month before the keynote, I would sit there and just go through this. And it’s more of a process of elimination than inclusion at that point. I’m like, yeah, that’s appeared to be an interesting thought at that point, but no. And then once you distill it, and then the sausage is made the night before. So you sit down and you’re like, okay, tomorrow is the keynote. Let’s put this together now. Is that, by the way, how it is? It absolutely is.

S01: Do you, do you, uh, I was thinking maybe you do rehearsal runs a couple of times or a

S00: dozen of rehearsal runs. No, I don’t rehearse talks anymore at all. Okay. Um, so, so what, what goes into the talk is, is the content. And then what I do is something very different now than I did decades ago is because I’ve spent a year or three months, whatever it is, I’ve internalized these very much into my mind. So this is not what I’m just reading before a talk. This is what I’ve been thinking about and playing with or critiquing or evolving or arguing about with a friend. So a lot of these things have been internalized a lot. And at that point, it’s purely the narrative arc. And then late at night, I would sit down the night before the keynote and just sit there for technical talks. I don’t do, uh, PowerPoints or keynotes, uh, slides anymore. Uh, but for keynotes, uh, I do a PowerPoint or a keynote slides and I sit down and create these slides. And, uh, at that point, one of the reasons I don’t create slides early on is to me, slides are too limiting because a lot of thoughts get thrown together and I don’t want it to be in a structure where it becomes harder to bring in or throw them out. So a plain text is amazing for that purpose. So I would move things around in a plain text. I would keep things in a side. I would say things that I’m discarding or things that may be in it, but may not be, I’m not sure yet. And then eventually it’s like, okay, I’ve got a fairly good idea what I want it to be. And then I start creating the slide at that point. And, and I would say I would probably give the keynote once. And then if I’m lucky enough to be, uh, have that keynote present again in a conference, which invariably happens these days, thankfully I would probably refine it like one more time based on my thought process in the first time, but a lot of time goes into it, but, but not like practice. There’s zero time in practicing the delivery. There’s a lot of time in preparation of talks. Do you feel stage for a tiny bit of stage try though? I mean, a tiny bit. A lot, a lot. Uh, I was, I would never forget this. I was in JFocus a few years ago. Uh, I was, and as you know, there’s thousands of people in the conference and the person who was going to set up the air, you know, AV, uh, she was putting the, you know, (.) microphone on my shirt. And, and I think she could hear my breathing pattern. And, and she said, uh, is this your first talk you’re giving? And I said, no, it’s a 10,000 talk I’m giving probably. And she’s like, gosh, you, you sound very nervous. You’re like, I am nervous. Yeah. You’re going to do well. I’m like, thank you. But that’s, that’s, that’s, I think that’s a good feeling because that I think being nervous is your, uh, human response to say, you better start focusing. I think the day that I’m not nervous is probably the day I should quit doing it because it’s just the natural thing to trigger to say, why don’t you just focus on this? So, so before I give a talk, um, especially if it’s a keynote, I would literally walk behind the stage and I don’t want anyone to talk to me for the next five minutes because I really want to just clear my mind and just focus on getting up on the stage. So to me, this is one of the things I look at is does the first minute of your talk either breaks or makes it. If you don’t grab the attention of the speakers in the first minute, you probably lost them for, for the entire session. So, so what do you want to do when you get up on stage? How, what are the, what are the things you want to say to begin with? And, and I think to focus on that is where the nervousness comes in my mind is to say, it’s, it’s a little alarm that says, all right, you need to calm down, focus on the talk and don’t be distracted. And I think that, that, that helps in general. But once I get on the stage and start talking, I don’t even remember being there at this point. (..) Has anything ever gone really wrong? Oh my goodness. Yes. Many times, but I’ll give you one situation that probably is unforgettable. It’s, it’s on YouTube, uh, which is, which is even more fun. I haven’t watched it. Uh, but I know it’s on YouTube. Um, I was in Kyiv, uh, for a conference, JEE conference back, back before the time of the pandemic on a, and I landed the airport two hours before what could possibly go wrong. And, and I, you know, take, take a taxi, get to the venue. And there were about maybe 600, 700 people. And what was not, it was a technical keynote, which is not too often that I do, but, um, it was something related to what we can learn from five languages on the JVM or something like that. Um, a dozen things you can do with five languages on the JVM or something like that. So I was backstage and I opened my laptop. I can hear this weird noise of it shutting down in a, you know, very unpleasant way. I’m like, okay, it’s dead. So it took its last breath and it’s dead. I’m like, okay, that didn’t go well. And the conference organizer came to me and said, so you’re ready. We got, we got everybody set. You’re good to start. I’m going to start introducing you. I said, yeah, but, but, but, but my computer is dead. He’s like, what do you mean your computer is dead? Do you need a battery? Do you need a power? Like, no, no, it’s, it’s dead. It’s, it’s gone. It took its last breath. He’s like, oh my God. Okay. Why don’t you give me your slides? Uh, if you have it on a, you know, memory stick, I don’t use slides. He looks at me. He’s like, okay, help me out here. What are you going to do? You have no slides. You don’t have a computer. (.) And, and I can see he’s getting panicky and I would do, and I was panicky too. And I said, hang on, hang on. It’s calm down. It’s like, what do you mean calm down? Do you see all these people waiting? I’m like, do me a favor. Can you just get me a Mac? If you get me a Mac book, we’ll get this done. And he looks through, finds a, in the middle of the room, this is where luck plays out. Right. And there’s a gentleman sitting there with the computer. He’s like, hey, you come over here. And the guy’s like, me? He’s like, yeah, come over here. So he starts walking. He’s like, no, no, no, no. You go back and bring your computer. I don’t need you. I need your computer. So it’s just a gentleman close to the computer and like, hey, I’m really sorry, but thank you for coming. (.) Do you mind if I use your computer? He’s like, yeah, I guess so. Here you go. He’s like, no, no, no. I don’t know how to use your computer. You need to be with me. So we’re going to do this presentation together now. So this random person from the audience, right. And, and I say, okay, so you, it’s a conference that, you know, Java developers, I’m sure you have things. Hey, I can’t use your IDE because I don’t know your environment. Give me a command line. And I’m going to just do everything from a REPL because I can do REPLs. It doesn’t matter what your language is. REPL is going to be my home. And he’s like, yeah, we can do that. No problem. And then I’m talking about stuff and I’m suddenly, I realize this person probably doesn’t have all the five languages on his machine. So I’m just giving a talk and I’m saying, Hey, uh, we’re going to be using Scala. And I look at him. It’s like Scala literally is doing brew install Scala before I walk up to his desk. And then he opens a REPL and says, go. And I’m just coding Scala on the REPL. And then I’m like, thank you. And I walk away from the stage. I’m talking. And then I’m like, well, let’s take a look at how Cartland does it. I look at him. Brew installs Cartland. He is just installing language libraries on the fly. And people thought this was completely staged, but it was absolutely (.) unpracticed, unrehearsed. And, um, I was like this. I did not, I did not think we could pull through this. But you pulled it off. And we had another talk tomorrow. So the guy is like, dude, you want to be with me the next day. When I, when I got home, I sent him a pile of books. And I said, I cannot thank you enough for the help you provided timely. Uh, he was extremely generous of his time and machine to make this happen. But how do I find it on YouTube? I’m going to say on YouTube, if you Google for, you know, JEE, Kyiv, Venkat, uh, and maybe, you know, multiple languages on the JVM. Uh, if I find the link, I’ll send it to you as well.

S01: Okay, yes, yes. I’m going to look it up right after. (…) When you, when you talk about, I don’t know, uh, just, you know, wandering around hiking, having thoughts popping into your head and getting, you know, new ideas from a, from a museum in Stockholm. Um, what, what keeps you going in general? What drives you? I mean, well, do you have some sort of an inner drive just to, you know, I don’t create, create, create? Uh, I think I’m generally excitable. (..)

S00: Um, I, I like, I, I really, let me, let me step back for a minute. Um, this kind of brings back a bit of a rough memory as well. Um, I had a really hard time as a student. I was a failing student and, and I was a failing student. Uh, what does failing mean? Just grade wise? Grade wise, grade wise. I, I never passed any class when I was a child. Uh, mostly it was a social promotion, I would think, uh, if I remember back in time. Um, and years later I was in a conference and somebody, you know, I, I, I went on to get my PhD and, uh, people who knew me as a child, uh, (.) doubted I would be able to finish a PhD. And, uh, but I had a fantastic professor who called me up when I was finishing my master’s randomly, right? He just calls me up. He says, Venkat, uh, what are you doing? I’m like, oh, professor, I just finished my master’s. And, and before I could complete the sentence, he said, uh, well, you don’t need to answer anymore. I want you to enroll in a PhD and I want you to finish a PhD. He had confidence in me, knowing me as, as a student. And, and so years later, somebody asked me, you know, Hey, uh, what, what advice do you give for children? And, and it just brought back memory and I said, oh my gosh, this really made me realize something I’d not put into words and suddenly I blurted out. and I said, I just realized I hate studying, but I love learning. And that distinction was really not visible to me. I hate studying, but I love learning. My childhood was all about studies and I hated that. But once I got that past that time, I went into learning rather than studying. And learning is liberating. Studying binds you and locks you in, in my opinion. So, so to get to your question, what excites me is that aspect of learning because it’s very humbling for me when I realize I don’t know something. And I truly get excited when I don’t know something. If I don’t understand how something works or if I, I’ll give you an example of this. Um, I, in, in Cortland, you can take a, a, a, a lambda and you can attach the lambda to a random class. And then you can say, you can call that lambda like it’s a function of a class. And when I saw that, I said, I don’t get it, right? How could you do this in a statically type language? How could you do this? And, and I, I’m like, I gotta think deeper into this, right? And not in the sense, like I gotta go query this in AI, right? But I want to know why this is working. And immediately I’m sitting there and thinking, okay, so this is working. And these developers are amazing, very smart people. I have a deepest respect for the people behind Cortland, but, but what, what, what’s the motivation here to make this work? And then I realized, wait, I know JavaScript. I know in JavaScript, you can attach a function to an object and execute it. So literally I open up Cortland REPL and I wrote the syntax that I use in Java in Cortland to bind a lambda to a object. And that syntax worked. And I’ve never seen anyone show that syntax ever before. And when that syntax worked, I am like, whoa, this is JavaScript syntax working in Cortland. And now I can see how the Cortland syntax, you know, emerges from this JavaScript syntax. And then tying it back to that concept that already exists in one language, but that’s morphing into this other language was like a light bulb moment in my head. This is just one example of, of the type of things that excites me. And, and the minute I saw this, I have a story to tell. And now I’m like, okay, this is a discovery for me. This is my journey, right? So to me, the key here is for any speaker, I would say, right? What quality do I have to give a talk, right? I’m not a language author. There are brilliant language authors who give talks. I have the deepest respect for them. I love listening to them, learning from them. So what is it that I can bring? I cannot bring to you about a language design because I don’t design languages. But what I can bring to you definitely is my journey. That’s all I’ve got. And I can tell you my journey, my experience, my aha moment. It’s kind of like trying to describe your joy of watching a movie to your family or friends. And, and to me, that is the excitement I often have, not about music. I’m sorry, not about movies, but about programming. And, and, and once I realize that I want to share the joy, that’s basically what comes as talks to me is, is, is a light bulb goes in my head. And now I want to share that journey and the joy of realization. So most of my talks are created around these journeys. And, and I get excited and I feel that I should share the excitement with others. And hopefully others

S01: are excited as well to, to listen. I think they are. And I can see the joy and excitement on your face right now. Um, to, to get, to go back to your point, because I actually do, I do like the topic of learning myself as well, very much. And, uh, having worked with many different nationalities in the past, uh, now in IT, um, is it fair to say the Indian, um, school system is very, very competitive in terms of, studying for the sake of studying or the, the grades as the only goal, but not terribly. So I’ve been out of the

S00: country for about 40 years now. So I have a very limited knowledge, uh, about the system there, but a little I hear from, from people when I visit there is it’s only gotten worse. Uh, and, and, and, uh, and then that’s unfortunate in my opinion, because to me, uh, to me learning is lifetime. And, and when, when, when you take the joy out of learning, uh, it becomes a burden and, and children lose their childhood. Because if you really, really think about it, and this kind of makes me tear a little bit as, as, as you, as we talk about it, is some of the skills I think have been very helpful to me today are the skills that I was punished for as a child, because, um, those were not going to help you to get grades, but how naive it was, in my opinion, looking back. And, and this is one of the things that shaped me as a parent in terms of how I looked at my own children in terms of their learning is to take the emphasis away from a grade as a, as a way to measure outcome, but to really look at the outcome very differently, right? I think, I think as an education system and just not within India, I think this is true almost, uh, anywhere in the world. Um, I, I tell my students, I teach part-time and I tell my students, if I had the power, I would take away grading completely because grading is motivating students to focus on getting the grades rather than taking the time to learn. In my own courses in a certain way, I probably should be careful what I say on camera. Um, I’ve shifted more of the weightage in my courses on where they get the grades based on their practice rather than their performance. Uh, because if you practice a lot more, you’re going to get better grade in my course than to perform. So I’m not going to give you a homework and grade you for the outcome. I’m going to give your homework, but grade you for the effort you put in and how you show the incremental development. A lot of these things were shaped based on my own failures as a child. And, uh, and I think, uh, good teachers, I think, uh, that I had, uh, recognize that in me, but unfortunately those were foreign few. Uh, and, um, but I think if we can really help, uh, children, uh, learn, this is something I, I learned from my own children, uh, is they showed me the true passion you can have for learning, not by way of saying, I’m going to show you what grade I have. The grade was almost and never a discussion in my family, but instead about, can you show me what you created? Or can you share with me what you were curious about? Um, can you share with me something you create and you can demonstrate? Uh, I think that there was, there’s more joy in that kind of learning than to produce, uh, what grade did you make? I tell my own students these days, I’m sorry, I don’t care what grades you make because you could have the highest grade, but you cannot do anything practical. Uh, it’s a theoretical response. And I’ve learned a lot from my students as well. over the years, they have, they have shaped me in terms of what to teach and what to prioritize. And, and I think students are great teachers. If to parents and to teachers, I think, uh, children are great teachers of parents and, and students are great teachers for, uh, teachers. I think if you’re willing to learn from, from the ones that we are supposed to mentor and guide, I think we gain a lot

S01: more as a society from them. But it’s really telling to, and I’ve mentioned that before, how your face lights up when you, when you talk about the joy of creation instead of just, you know, grades and then doing something for a grade. I mean, it’s, it’s, it’s, yeah. Yeah. Right. Um, (.) I wanted to ask you about, um, also Java a tiny bit, um, in terms of where you think, where you think the language stands today, how it has been, how it has evolved the last 10 years or so, because there’s been many, many, many changes. And what, what do you, what do you think literally is ahead for Java?

S00: I have to say that, uh, I’ll be absolutely honest about it. I was one of those guys on the other side of the picket line, constantly complaining that Java is a bad language. We shouldn’t use it. Uh, if you, if you, if you’re on YouTube and you’re looking at any of my videos from 2010, uh, 2009 timeframe, uh, I was that guy on the other side of the picket line, you know, constantly complaining about the language. Um, to me, the, the game changer was Java up eight in my opinion. And, and I remember coming back from a trip telling myself, why do I care? I’ve, I’ve seen skull. I’ve seen groovy. I’ve seen closure. Uh, all these languages have closures land lambdas, big deal that Java has lambdas. And, and I came back from one of my trips. I was just playing with, uh, Java eight, three, four years before Java eight was released. I just downloaded a pre-release playing with it. And I have to admit, I just stood up immediately at my desk and said, (..) this is going to be different. And for the very first time, I was truly excited about Java. Okay. And I saw the laziness of streams. I saw the implementation of lambdas. And I was convinced that Java is pivoting in a very different direction. When we look at a language like Java, we look at, we look at it as a language and yes, it is. But the people who have been working in Java are not the same people anymore. Uh, with respect, right? The, the initial people who worked on Java did amazingly for their time, but it’s not those people working in Java anymore. It’s a, it’s a very different set of people working on Java. And so, so to say when the next generation of people came in to move Java forward, they had a different vision for the language. I often say ideologies can be problematic and Java’s ideology right or wrong was an object oriented ideology. So when, when the initial version of Java was introduced, this is the reason why we went the route of anonymous in our classes, because it was a OO ideology. It’s got to be objects. So what did we do? We took functions, single object, single functions, and we created SAMs, single object, single abstract methods, abstractions through these methods. And we created classes that literally had a single method in it. because the ideology was you can only pass objects around. And in a way I would argue with, with respect, right? There were good reasons for it, but in a way it set us back by a few decades. Um, I always tell people, imagine if Java in Java 1.1, rather than introducing anonymous in our classes, had introduced lambdas, it would have been such a difference so early in the game. And, and so when Java decided to pivot and introduce lambdas, that’s when I got truly excited about Java. And I started really talking more about Java in Java 8 than any time before that. And ever since then, you know, things were a little slow in the beginning. But I truly, I truly say this, one of the genius efforts behind Java was literally decoupling the development of Java from the release of Java. For every single person in the world, we talks of who talks about agile development. My kind request is stop and look at what people behind Java did. To me, that is true agility. Agility is not a scrum development, a two week cycle or a month long cycle, right? That, that’s not where the focus should really be. Where they were able to decouple this development from, from the release really made a difference for Java. Uh, now that the Java is being released on a six month cycle, but is not being developed on a six month cycle is huge in my, in my mind. And that gives the liberty for the developers behind the language to really take the time first to figure out what makes sense for the language. They’re not infatuated. They’re not saying, oh my gosh, there are, there are guys like Venkat screaming loud. We should, we should maybe put more stuff into the language. They are way more mature than that. And they’re taking the time to ask the question, what should Java be rather than all the noise about things you can have in the language. And then they’re taking the time to evaluate whether this will be successful. And then to be able to bring that in as a pre-release. And, and what’s the whole thing about agile development? To me, agile development is feedback driven development. That’s brilliant because they are putting this as pre-release and they are taking the time to see how this can be used by so many people in the world who are able to come back and say, hey, this is working well, or this is not working well. And they’re able to take all this feedback and then decide whether they want to continue implementation or maybe make it change, alter it, or maybe even pull back and then rethink about it. I’m excited truly for Java.

S01: Is there one, by the way, one specific feature even that in the last couple of years really excited you? Anything in the last, I don’t know, five years or so, where you said, well?

S00: It’s quite a number. But to, to state one, I would say, honestly, I am super excited about virtual threads. Part of the reason I’m excited about virtual threads, go back to the exact reasoning I gave, is with virtual threads. You know, I know it’s, it’s hard for us to accept, but JavaScript got this right. And when JavaScript was introduced, they decided to focus on asynchronous programming instead (.) of parallelism and concurrency. Fast forward 20 years, 25 years later, we are realizing that business applications, microservices, the world we live in will benefit a lot more by asynchronous development. Not that parallelism is not important, but asynchronous is so important. But what I appreciate with virtual threads is they did not again say, oh my gosh, we’ve got to do asynchronous. Let’s see what JavaScript did. Oh, it’s async and await. Let’s look at what C-sharp did. Oh, it’s async and await. Oh, let’s look what Cartland did. Oh, it’s async and await. Duh, it’s async and await. But that’s what I love about what they did. They realized, so with all respect, again, if I’m, if I’m an architect, one of the things I, as an architect, I want to be able to do is I want to come up with simple solution. I want to entertain the last responsible moment. And then when I have a better understanding of performance is when I want to bring solutions into my, into my application. So a wise architect would want to solve a real problem with a better understanding. (.) But unfortunately, if I’m using JavaScript, if I’m using C-sharp, if I’m using Cartland, (..) my question as an architect is, do I need to make this asynchronous? And you’re going to tell me, hey, an architect, you decide this today. Why not? Why? Because if I don’t decide it today, the cost of the change is high in the future. Why so? Because if I make the application code asynchronous, the cost of making it asynchronous is high. Because I got to turn all these methods from regular calls to async and await. I got to put suspend. I got to mark them as async in the case of JavaScript. In the case of C-sharp, I got to return tasks from each of these methods. The change can be huge. Sure, you can use AI based tools today to make the change, right? But testing becomes difficult as well. But the developers behind the Java language said, great, we got to, we got to focus on async. But how can we bring asynchrony without fundamentally changing the structure of the functions? Now, everything has pros and cons, right? Nothing is perfect. So you could argue, hey, when I look at a function in JavaScript or Cartland or C-sharp, I can tell you from a mile away, that is an asynchronous function. But in Java, looking at a function, I cannot tell you whether it’s synchronous or asynchronous. So there’s pros and cons. But the cost of the change is flat when it comes to Java. So that I really appreciate. From an architect point of view, that’s a good news for me. Because I can make it synchronous today. And if I need better performance or a reason to scale, I can make it asynchronous with almost no cost. That’s a good point, yeah. And that I love as an as an ability to postpone that to a last responsible moment. And that’s what I look at things that they have done. And to me, the innovation in Java, at least again, with no disrespect, innovation in Java is not coming up with features that nobody has seen before. But innovation in Java for me is to come up with a feature in a way that nobody has seen before, right? To me, that is the distinction. It’s not a feature nobody has seen, but it’s a feature that nobody has seen that way before. I think that gives a touch to innovation. And I admire that. When I look at it, that’s kind of the, you know, to me, the joy of looking at solution is somebody looking at an art appreciates it and is able to say, here’s why this art is beautiful. To me, that is the art form that comes as an engineering to you. But to me, that is the consequence, right? So the consequences, because these decisions were made, it gives you these consequences. And I tend to really have that kind of appreciation for things. And that excites me. (…..)

S01: Is there maybe to end up with anything you think in the next five years? Anything super exciting you

S00: see on Java’s horizon? I’ll tell you what I’m looking forward to from more of a, I’m not a, I’m not a person who looks for flashy things. I’m, you know, expressive code. Yes, it’d be lovely to have expressive code. But I want to really look at solving real problems. One real problem that I’ve faced on my own applications that I work for my clients, one that I remember very well, is we had this application where we have to deal with billions of computations. And we were using Lambdas everywhere. One of my developers came to me and said, I’m really surprised how much you are using Lambdas. Lambdas. And he said about his own architect, right? He said, I had an architect in my job, in this company. He doesn’t, you know, work here for anymore. But he used to talk about Lambdas and say, I wish Java had Lambdas. And my architect had a vision to use Lambdas. And you came into this project, and now you’re using Lambdas. I can see his vision come to truth in you, he said. But on that project, I was worried, are we going to have performance issues because we’re using Lambdas? No, we didn’t have any performance issue because we use Lambdas. But we had huge performance issues. And the realization we came to was, the code would run super good on a small problem set. But then when we threw the real problem set, where we had these 50 billion computations on it, it would run, but it would take forever. And we were like scratching our head, what’s going on? And then we started profiling it. And we found most of the time was being spent on garbage collection. And the reason why it was spending most of the time in garbage collection was we had a huge number of generics, which were of double. And this was taking every single double and auto boxing the doubles into the big D double and creating generics of double. And I’ll tell you the most painful part of this application was converting all these collections into raw array. Because we wanted to minimize the amount of garbage we were creating in memory to avoid garbage. I’m sorry, to avoid auto boxing and unboxing and garbage collection. Yeah, we were able to speed up things. But by rewriting code using array of doubles, rather than using generics. So to me, what would be super beneficial for a lot of applications that like that is to have generics with value types, I think is going to be super helpful. Because I jokingly say, I wish I can run just a code with generics and value types, just at least once before I retire. And it’s not too far. So they better get their act together. Very quickly. I’m getting there. So before I retire, if I can run that code once, I think I’ll retire and sunset happily.

S01: Right. All right, all right, okay. Let’s see how that turns out. All right, then. As we’re coming to an end, what I told you before this interview is that we always do a licensed raffle. Licensed raffle means you get to ask the audience a question about you, about your work. It’s an estimation question. People, you out there, the viewers can have the answer and put it down in the comments below the video. Whoever comes closest gets a license or merge from us. Do you have any such question for the audience? Oh, gosh. Well, okay. So it’s because

S00: it’s about me, I would say, how many user groups do I normally talk? And I want to really ask this question because we are in a decline right now of people showing up at user groups. And I think as a community, it’s important for us to get back to being a community. And so that’s why I’m going to bring this question, not because it’s about me, because it’s an emphasis back on user groups. So I’m going to ask the question, how many user groups do I speak on an average every year? Every year. And how,

S01: and would I meet that average this year? Right. And knowing you, the minimum is at least a hundred. (..) All right now, folks, put your answer down below. Right. And then it’s my turn, actually, because as I also told you, I asked ChatGPT before every interview, come up with some rapid-fire questions. Last time they were really stupid. But what I do is, I asked ChatGPT, hey, we have Venkat here. He’s originally from India. He lives in Colorado. He’s in Munich. We talked about Java, so and so forth. Yeah. And give me, give me a couple of questions. I’m going to give you some, and let’s see what will happen. Okay. So if Java were a dish, would it be more Indian Thali, Colorado campfire food, or a Bavarian pretzel? Ooh, harsh. I’m going to say Colorado campfire,

S00: because it gives you much more variety, I think. Okay. All right. No disrespect to any Bavarian food.

S01: All good. Okay. Then a rather abstract one. OOP, data-oriented programming, and functional programming, walk into a Munich beer hall. Who starts the argument first, and who wins?

S00: I think OOP will start it. But as we all will say, functional programming always wins.

S01: All right. And maybe last one. Chai, American beer, or Bavarian lager, which one produces the best

S00: architecture decisions? You know what, I have to admit, I’m a non-alcoholic, so I have to admit, I don’t know the answer. But I would prefer a chai any day. But I’m more of a coffee drinker myself. More of a coffee drinker myself. Okay, let’s go with coffee. (..)

S01: Thank you, Vankat. Thank you for coming here and sharing. (.)

S00: Thank you so much for having me, and it’s great to be able to just sit down and talk about it. I hope the viewers get some entertainment and education out of it as well. But I really thank you for what you do, and thanks for bringing all that excitement to the community as well. Yeah, thank you very much. Awesome. Thank you, Vankat. Thank you, Vankat. Thank you, Vankat. Thank you.

Similar Posts