Tag Archives: Podcast

François Martin: Teaching Java, Contributing to Java

Duke’s Corner Podcast with François Martin, a full stack developer from Switzerland who loves teaching Java to students and contributing to the Java community. This conversation ranges from teaching students Java from scratch, the value of test driven development, the lessons from NASA’s Apollo project, the benefits — and surprises — of contributing to open source projects, and so much more. Even open source marketing and The Cluetrain Manifesto came up! François is passionate about coding in Java and sharing his experiences with other developers at JUG meetings and conferences. Java was the first language he learned and that seems to made all the difference in the world.

Interview Archive

Transcript

Francois, Francois Martin, welcome. Welcome to Duke’s Corner. Yeah, welcome, Jim. Thanks a lot for having me here. It’s great to meet you. We’re actually meeting here for the second time. You and I met virtually, let’s see, when was like, I guess it was about a month ago on a community call with Bruno Souza’s community in Brazil.

0:18

Exactly, I think one or two months ago, yeah.

0:21

Yeah, I really enjoyed that. That was like almost three hours. I think I wrapped up at three o’clock in the morning my time. But it was great. We had a lot of conversations with the community down there. And you were there, but you’re in Switzerland, right? So what’s up with that? You joined Bruno’s…

0:37

Brazilian call, but you’re in Switzerland.

0:40

Well, actually, he has two different calls. And, you know, I joined the one that is in the European time zone and there is another one that is in the Brazilian time zone. So another one in the Brazilian time zone is at 2 a.m. in the morning. So I’m not sure if you participated in both or.

0:54

No, I just did one.

0:55

I just did one.

0:56

Ah, then it was in the European time zone. But there were a lot of Brazilian people as well because, you know, they’re really eager to see you. Oh, cool. Yeah, it was great. This was kind of a compliment for you.

1:05

Oh, well, that’s very kind. Thank you very much. I mean, I think it was about 20 or so people and I was really happy with it. I was a little nervous, but I’m not used to being asked questions, to be honest, right? So usually I’m on this side. I can present simple things, community things.

1:22

I can present and I can do interviews, but being interviewed is a totally different skill. True.

1:30

I have to say, you didn’t seem nervous at all. I have to say, I know what you mean. I’ve been starting to interview other people as well a little bit, and I know what you mean. I was kind of surprised.

1:40

I was really flattered as I got a lot of compliments by others at how good I was at interviewing others, which I really enjoyed, of course. Good.

1:48

Good, excellent. So you’re a full stack developer and you’re in Switzerland. So yeah, let’s talk about what you do. What’s up with full stack development these days in Switzerland?

1:59

I have to say it depends on, you know, I feel like in full stack software engineering, there are quite a lot of different kinds of people. There are those people who… They just do strictly the front-end and the back-end. This is kind of like, I think, what the traditional meaning of it is.

2:13

But in my case, I kind of expanded a little bit further. And to me, it goes towards being interested in a lot of topics that a lot of people may not be as interested in, like testing, performance, security. deployment, monitoring operations, you know, things like this. So in this regard,

2:32

I kind of consider myself to be a full stack dev, you know, really from all kinds of corners, I would say. I don’t meet that many people that go that as far as I do, but I would say, you know, it doesn’t really matter.

2:45

It’s just that I have a lot of interests and this just happens to be why I have so many things that interest me. I kind of like to do a lot of different things and this makes it even more enjoyable for me.

2:56

Cool. Interesting. Well, on that call, on that Brazilian community call, one of the things you said that is that you were a teacher or at least had taught at a certain period of time than university students. And I’m really interested in this. So let’s talk for a few minutes about your teaching experience because – I mean,

3:15

I talked to a lot of advanced developers now who might be, say, in their 40s and 50s, and they learned a certain way versus how you would be teaching a 20-year-old today. It’s a totally different world. I mean, that’s like 40-year difference, right? So talk to me a little bit about teaching Java or teaching computer science or

3:34

whatever it is that you taught, right? What was that experience like?

3:37

Sure. Yeah. So yes, that’s correct. So I was teaching university students. I was doing two courses. One of them was I was teaching specifically university students that just started out and we had two variations of the same course. We had one variation where it was for the more advanced students, which I didn’t teach, you know,

3:57

for the ones that already programmed before and for the ones that have next to none or no programming experience. Those were the ones that I was teaching. And I have to say it was really, you know, a cool experience. It was the first time I was teaching people from scratch to be able to code.

4:12

And we were also using Java, by the way. So we were teaching them in Java. You know, me having worked with Java almost my entire life or, you know, really for most of it, Java itself wasn’t a problem. It was more like getting to know how to teach in the most effective way.

4:29

I feel like I had maybe less of a hard time with that because I was already giving talks at conferences. So this kind of helped me because I had this experience. But still, what it really helped me with as well was, you know, I had a little bit of this stage fright, which probably most of us have,

4:45

I think. But it kind of helped me get rid of that in a way, which was like a nice secondary benefit, I would say, because I was in front of students every week. But it was really interesting and I loved doing it. You know, I feel like as well,

4:59

that’s from my perspective and also from what my students told me. I was able to teach Java quite well to people that never coded before, especially because I remember when I was learning to code in the beginning, I was in the same place. I was studying and that is how I learned Java through those courses.

5:19

And I know how it felt to never have programmed before. This was kind of something that I always got told by my students. They were telling me, oh, you know, it’s so great that you still have somewhat of an understanding of how it feels to not understand everything instantly. And also I have to say,

5:35

I wasn’t the best student back then, especially in the beginning, because I was really struggling. It was very hard for me. And I remember I was, especially in the beginning, I didn’t have that good grades. And I always told my students, you know, when they were feeling really let down, I told them,

5:51

you have to realize I back then was just as you. I never coded a single line of code. And I also really struggled, but I persevered through it to see where I am now. And I’m also not shameful for telling them that I really had bad grades. You know, I told them, you know,

6:07

in my first programming course, the one that I’m teaching to you now, I just had a barely passing grade. which kind of is insane to believe if you’re looking at it now. But I feel like this kind of really motivated a lot of students to see that, you know,

6:21

even if you are struggling and if you are not the best student, you can still make it through it. And I was especially glad to see that there were students that started out really struggling, but to see how much they worked for it and how much they improved and seeing, you know, I mean,

6:35

there are always those students that are great from the beginning. But I find it even more interesting when I have a student that, for example, struggles a lot in the beginning and they make a huge leap in terms of the grades, for example. Or you notice how, you know, for some people, it just clicks in a way.

6:51

And then it, you know, they start to understand it. And I find this to be a really cool moment. And I also love supporting the students that struggle. And, you know, especially since I was in the same situation before.

7:03

I totally agree. That’s really interesting because when I was young, I struggled too. And I remember taking classes. Well, I struggled with everything, but let’s just focus on the computer stuff. I took a class in C and I remember I really liked it, but I can do the simple stuff really well. And I liked the conversations.

7:25

I liked working with You know, my peers solving simple problems. But when it gets complex, you know, when the problems got like toward the middle and the end of the year, when the problem sets got to be more complex, I couldn’t handle the math. And I was very, very frustrated. But I got through it okay.

7:41

I got to be, I think, in my first C class. And I took some earlier classes as well, you know, Pascal and basic and stuff like that. And then I took C++. And what a nightmare that was. Oh, my God. I just fell on my face. I just could not handle. C++.

7:57

I don’t know whether it was the teacher or just the structural language or whatever. So I totally know what you’re saying. As a result, I’ve always been interested in learning technologies, tools. Back then, we had no tools. I was just staring at a SparkSong workstation, just a blank screen with a cursor blanking.

8:17

No IDEs or anything like that. That’s a while ago. But I’m always interested in how students learn Java now, you know, in this time period, because it’s a very different world. They are already familiar with so much technology. And they have really great tools now.

8:35

On the other hand, there’s a lot to learn now as opposed to 20, 30 years ago. So do you think from your experience learning versus how you’re teaching, what do you think the delta is? What do you think the difference is between how you learned when you were younger versus how they’re learning now?

8:53

I would say it’s quite a bit different, but in a good way, I would say. Because I remember when I started out, we were just coding in the IDE and every time we needed a library, we just pulled it in as a jar file that we put into a folder and used it this way. However,

9:11

now that we have already back then you had build tools, but back then they were kind of, at least at our university, they were not really considered to be simple enough to be manageable by the students. So we didn’t use them. But of course, you know, we managed through it, right?

9:26

But this is maybe one change I see that now we are using build tools as well. So like Maven and Gradle that you can use and that does make the setup much easier. You know, so students, they can start out really easily. And also we are using Git now, which we haven’t been using before.

9:42

Before, we just had our own projects. And when we wanted to get some feedback from the teachers, we had to send it to them by email or something like that with the code. which now is, you know, was much nicer of an experience because they could just, you know, submit, you know,

10:00

push their code and then they could, you know, let me know in a chat, you know, just please have a look at my code. I’m struggling with that and that and whatever. Or, you know, it was much easier for me to get the context this way when somebody had a question.

10:14

which is maybe also another change, I feel like. Back then, the only real way we were interacting with the lecturers was via maybe email, but we weren’t really conversing with the lecturers via email. It was mostly official information that was coming from the lecturers. But that also changed more in the way that For example,

10:33

now we embrace more the chat functionality where I feel like it’s also for students, they feel less. I feel like for emails, you kind of have to, you know, it feels a bit different than having just a regular chat. If you have an email, you have to, with a chat,

10:46

you have less of a barrier compared to email, I would say. Yeah, yeah. it’s much easier for them to reach out. And I feel like they are using it, which I really like because I prefer them reaching out to me. I always told this to my students, you know, I prefer, you know,

11:00

before you waste hours on end, you know, on a simple problem to just message me and I’ll get back to you. And, you know, maybe I’ll let you know, you know, what, you know, you know, some information that you can make use of to help you out so that I can unblock you in this way,

11:15

because I don’t want them to get frustrated, you know, I feel like it was kind of an advantage having been a student back then and having had some of those frustrations and being able to kind of, you know, because I also always thought about things that I could do to make it easier for the students. Like,

11:33

for example, one thing that I suggested to my university already when I was still studying was to maybe try starting with, you know, a build tool. And this is something that they now implemented. I’m not sure if it was due to my feedback, but you know, it’s still great to see.

11:48

And also one of them was test-driven development, which we actually kind of are doing now, which is really useful in my opinion. So in the beginning they get some Hello World example, of course we don’t, but otherwise it’s really useful because when we give them exercises,

12:03

usually we give them a unit test in the beginning and then they can code and then they can run the unit test and they can see if the code works that they have written. I remember in my time, it was a bit more difficult because I mean,

12:16

we did have like a solution that was provided to us by the lecturer for each of the problems. But as the nature of coding, especially if you are in the beginning, you are not really able to tell if your solution is different, which happens very quickly in coding, even if the problems are very simple.

12:32

You’re not really able to tell sometimes, at least that’s what my experience was, if the solution is correct or not. And then you had to go to the lecture and then maybe they didn’t have time for it or whatever. And now I really like this quick feedback loop that they are having,

12:47

which I feel like they also told me that they enjoy. And then by the middle or towards the end of the semester, it kind of changes a bit. We show them how to write the tests themselves. And then they are able to write tests by themselves. And in the live coding,

13:01

we also go by the approach of writing the test first and then writing the code afterwards and so on. And also we started doing exams now, for example, that are on their own laptops as well, which was something that was new. I still had to write my answers with a pencil on just paper. Yeah.

13:22

And now it started to change and there we usually also provide tests to the students, which I feel like is also very useful for the students to see did they already solve the problem in a sufficient way or not, which I feel like is a really cool way for the students to get instant feedback.

13:38

And it makes it, of course, closer to the reality, which I think is also a very important aspect to me. And I’m really grateful that they started implementing those things. And that’s also why I definitely did those things. And I think it has really gotten better a lot with all of those aspects.

13:54

That’s really cool. I’m really glad you mentioned test-driven development. I was just talking just a few days ago to Venkat Subramaniam, and he talks about test-driven development all the time and how important it is. And I did a whole podcast with Ted M. Young from San Francisco Bay. I think it’s in Silicon Valley.

14:13

And he’s a Java developer, and he focuses on test-driven development. And I didn’t realize that it was the test first and then the writing of the code. So it’s a different way of thinking about When I was at Sun years ago, I was on the Open Solaris project, and the team I worked on,

14:30

one of the teams I worked on, was the test team. So I was hanging out with test engineers. These are developers who are building test suites for Solaris.

14:39

Mm-hmm.

14:40

which is a very big piece of software, obviously. And so these tests are very, very sophisticated. And sitting in these meetings, I really became super appreciative of tests. And it makes sense. I mean, this is just basic science here. I mean, you’re testing a hypothesis, essentially. I mean, you have something, you’re testing it.

15:04

And so you got some code, that’s your hypothesis, and you’re going to test it. It’s a very simple way of thinking. But boy, those meetings went on and on and on. And the sophistication and the ramifications of testing Solaris and Java is no different. I mean, I was talking to some of the test guys in India, actually.

15:21

And it was a similar team that I used to work on. I just really appreciate the mindset of the test engineer. I don’t know why. It just really struck me. And so I’m glad you brought test-driven development up. And I think that’s very important because it’s important.

15:37

Ted was actually talking about that not a lot of kids learn this. So that I think is really good that you were into that and you were suggesting that and you were using it. That’s really cool.

15:49

I agree with you. I know what you mean. It’s interesting that you mentioned this scientific aspect. I never have seen it that way, which is kind of interesting. The only perspective I was kind of seeing there was that I remember my fiance, she also was interested to get into programming and she was trying to solve my

16:08

materials on her own that I gave her from my classes that I took. And she was really struggling. And I remember at some point I kind of realized she was especially having trouble realizing what am I kind of giving into a method and what do I expect back from it? You know,

16:26

like it wasn’t really clear to her how she would need to structure the code, how she should start, you know, kind of she, you know, she stared at her screen and she was not sure how to continue. And I kind of thought, you know, as an experiment, I was like, you know,

16:40

maybe I’ll try showing her test-driven development. You know, it was a bit weird at the time because, I mean, they didn’t do it at university because they considered it to be too difficult. But from this experience, this was kind of what made me suggest it actually, because she was in the end really successful with that.

16:59

So she, as soon as I’ve shown her test-driven development, She suddenly started to be able to understand it much better just because before she actually started implementing something, she was able to focus on first thinking about, you know, what do I expect to take in and what do I expect out of it?

17:16

And this really helped her shape the implementation a lot. I was always thinking more about this aspect, which I feel like really also helped me in a way. And you’re right, it’s really unfortunate that many don’t learn this very early on. When I first started studying, I remember there was a class that I had,

17:32

which was called Software Engineering Basics in a way, which wasn’t about programming strictly, but about, you know, methodologies and software engineering and so on. And, you know, the last part of the lecture was writing tests. And this was something that really interested me. And they introduced me to test development kind of the first time, but I remember

17:54

They mentioned to us, you know, like, oh, you know, it’s fine if you don’t understand it from now on. You know, it’s fine if you don’t code in Testium development style, because I have to say a lot of my peers were really struggling with it. A lot of my peers, you know, were really cursing and saying like,

18:11

oh, you know, I don’t understand how to do this. You know, why would anyone want to do it this way? And I think I was the only person in the class that really enjoyed doing it in a way. Yeah, and that kind of also shaped me in that way. But yeah,

18:25

I feel like that’s a good point that you brought up about this, you know, thinking about this hypothesis and then proving or disproving it. That’s absolutely true.

18:34

Exactly. I mean, if you have, you know, in science, I mean, if you’re testing something, if you have a hypothesis and you set up an experiment and stuff, I mean, that’s a test, basically, right? And then it’d be great if somebody else could replicate that. and falsify it or confirm it.

18:50

But this whole concept of tests just seems like ramifications. If you’re building a website, okay. But if you’re building a navigation system for a supertanker, you kind of have to make sure things are right. I also, I don’t know if you, like when you look at the NASA videos of the engineers working on the space shuttle

19:12

and the Apollo programs from the 1960s and stuff. You see this constant testing, testing, testing, this whole iterative process where you’re building something and it blows up, you know, and then you got to rebuild it. Fascinates me.

19:25

Did you? I’m not sure if that is just a weird coincidence, but did you happen to watch my talk? No, no, I hadn’t.

19:32

I just… No, why? So did you actually talk about this?

19:37

Yes.

19:38

Really? No kidding.

19:39

Yes. That’s why I’m laughing because… You know, I remember, you know, so I gave a talk, it’s called One Small Test for Men, One Giant Leap for, you know, quality.

19:52

Oh my God, that’s so funny. I’ll find it and I’ll link to it. That’s great.

19:58

Yeah, because it was, you know, really a great talk and, you know, it’s totally described everything you just mentioned, you know, this iterative approach and this focus on testing and so on. You know, there I kind of, you know, looked at the document which came out after the Apollo 11 success of the mission and which was called,

20:14

you know, what made Apollo 11 a success that hardly anyone knows for some reason. I mean, also just came by it just by accident. And I looked at this document and I kind of looked at what made it a success and a lot of those aspects were actually testing, as you mentioned, right?

20:30

And it’s so funny, you know, hearing you mentioned that. I’m not sure, have you seen the document yet or have you known about it? What’s your talk or the other? No, I mean the document that was called what made Apollo 11 a success.

20:43

Oh, no, no, no, no. I don’t think – but I’ve seen similar types of videos. And there’s a whole bunch of books, obviously, about the engineering of these things. Yeah, so I’m sure I’ll trip over it because I like these kinds of things. I like how people solve problems. That’s why I’m in this business, you know,

21:01

and particularly with software because software is so flexible that – Unlike construction, I used to be in the construction business when I was young. That’s also filled with craftsmen, obviously, just like software developers to me are craftsmen, craftspeople, and they’re using tools. They’re using their head, their hands on a keyboard, but they’re interacting with a tool.

21:24

As opposed to a hammer, they have an IDE. I’ve seen people do some amazing things with a hammer, just a hammer and some scrap material on the construction site because it’s in their head. And so I’ve always been fascinated with this. So that’s the kind of content that I consume. So that’s why I like developers,

21:43

like people like you, because I get to ask you these types of questions and I get either validation or rolling or rise, you’re crazy. But no one’s ever said I was crazy yet. But even though I do struggle with complexity, I’m somehow drawn to it. Maybe it’s just because when things get really, really complex,

22:02

I wonder to myself, how do these people solve these problems? How do they have the mental capacity to use whatever tool they’re using, but how do they have the mental capacity to go very, very deeply into thought? And find a solution and sort of hack their way to a solution. They’re doing an iterative process with themselves.

22:22

They try this, try this, try this, try this. So that’s what I’m really fascinated with. So for yourself, learning Java, why Java? When did you trip over Java? And then why did you stick with it?

22:38

Java was just the first programming language that we learned at university. It was the first one that you learned, really? Yeah, it was the first one, yeah. I mean, already back then we were learning Java. I mean, it was version 8 and it just came out.

22:51

I remember it was like, you know, one week before it came out. And I was really grateful that, you know, my university really tried to stay up with the trends. And so we were already using Java 8. And of course, in the first class,

23:04

we didn’t really use many of Java 8’s features because they were not as relevant, of course, because, you know, in the first class where you’re starting to learn programming, You’re trying to understand, you know, what inheritance is and all of those things. And there are many more, you know,

23:19

language features that are far more important than the ones that are introduced by Java. Not to say that Java didn’t introduce any important aspects. It’s just those are more advanced concepts that you won’t really necessarily need in the first semester, I would say.

23:32

But the cool thing was I remember my lecturer in one of the breaks reading a book about Java 8 and trying to get educated so that in the next semester were the advanced courses that they already could start implementing some of the things and show us some of the things that were added in Java 8.

23:50

Which I really appreciate because that’s also something that I often hear from others when I talk to them. They also mention to me that often universities are outdated and the lecturers don’t try to keep up with the trends and things like this. So this is kind of how I got into Java, I would say.

24:06

It was difficult, but I don’t think it was difficult because of Java itself per se. I feel like it was just because I was starting to learn to program, of course, right? You know, I remember, for example, struggling a lot with the type system in the beginning.

24:20

But again, not because Java has a very complex type system, not at all. I really like it a lot. It’s more that I feel like I was struggling because I kind of had to learn all of those concepts first before I could really write a single line of code that made sense in a way.

24:36

And that’s still something I feel like that we were discussing among lecturers. Like, do we want to maybe switch to another language that maybe requires less overhead and maybe that you can start out by not programming with types? But I always said that I kind of enjoyed having to get forced into learning them

24:56

because I feel like if I was starting out with just learning a language that doesn’t have any types, then I would have trouble getting to learn all of those types because I would feel, oh, you know, are they really that necessary? I was able to get by with them. Without them, fine, right?

25:11

Why should I start to learn them now? And they kind of really forced me to understand a little bit also of how it works in the back, you know, as well, you know, in the, let’s say, nitty gritty implementation details that are kind of hidden from you in most languages. Yeah.

25:27

And this was also really interesting to me, you know, to learn those things because I feel like ultimately they made me a better software engineer. Because I remember when we first started learning JavaScript and TypeScript was not really a thing back then. I remember I was kind of struggling in the other way around because JavaScript didn’t,

25:47

of course, it has some sort of typing, but it’s not as explicit. And sometimes there are really weird gotchas that happen that you don’t know about. And I remember when I was implementing a function that incremented a date by just one day, I ended up having the experience that the function didn’t work when I tried it out

26:07

in the browser. And I didn’t know why, so I logged what the result was of the method and I was a bit confused when I saw that suddenly there was a number like 47,000 something. And I was like, why is there a number here? You know, it doesn’t make sense. And then I thought, oh, you know,

26:23

it’s like, I think if I remember correctly, the dots that I added in between to format the string into a date, it kind of then with the plus sign didn’t interpret it as a concatenation, but instead it interpreted it as just taking the ASCII values and adding them up, which resulted in this huge number.

26:41

which was kind of frustrating. And in Java, this wouldn’t have happened because I would have thought, you know, more consciously about the types and had to specify them explicitly. And I would be reminded by the compiler, which is another thing I really enjoyed about Java. You know, before you ran the program in a lot of cases,

26:57

especially in the beginning, of course, you will get notified by the compiler if you make a mistake. And this was also very useful, especially as we were not having any tests back then, or it was more difficult to interact with the lecturers, I would say. This made it a lot easier, especially back then.

27:15

That’s really cool. That’s really cool. So let’s talk about the community for a little bit. Java community, I mean, obviously Java has been around for a long time. It’s been constant development for 30 years, 30 years this year. Same thing with the community. Java has always been an open project.

27:31

It’s many projects now, but I mean, it’s always been open. And so it’s always been community driven. I did see on YouTube that you have some sessions. So I have to go back and look at your moon bit. So I assume you’re out to conferences and you’re doing, you know, obviously you’re doing the teaching,

27:48

but you’re also doing conferences and interacting with the community. So what’s the community like in Switzerland? I’m sure there’s a jug there. And, you know, do you interact with that? What do you do with the community?

27:59

Yeah, so there is actually a jog in Switzerland. And as you can imagine, Switzerland is quite small. So in Switzerland, we just have one Swiss jog in a way. But there are two different locations where they do talks. But essentially,

28:11

I feel like the culture in the jogs is not as huge as I’ve seen in some of the states, for example. Like usually we only meet up for talks and not, you know, just in general, like once per month or something like that. It’s really just you come together for talks.

28:26

And I feel like there are also less people that are engaged in JAX compared to the US when I think about it. But still, I feel like every time I interact with them, I always really enjoy it because usually there are people that really share something that I’m very passionate about, which is coding in Java.

28:44

And this is great because you can share it together and talk to each other. And I talk to people from the jugs, from the organizers at many conferences as well, where I have the most contact with them, I would say. But they’re all very great people and I always enjoy spending time with them,

29:02

seeing what community efforts they are making. I don’t remember exactly what the tool was for, but I remember that Our local job, you know, the one in Switzerland, it started to develop a tool that was also open source to make something easier. I think maybe make something easier to manage something like that. But I mean,

29:22

it doesn’t really matter, but I really liked seeing, you know, they mentioned that they were working on this and it was cool. You know, they were really passionate, showing me the tool and then, you know, seeing like what I think about it and, you know, get my feedback and

29:34

I also gave them some ideas with how we could maybe help improve, you know, the community to work together a bit more on this project, for example. I wanted to actually speak at our job already last year, but we didn’t manage to get it through, you know, in terms of timing.

29:51

But this year I definitely plan on doing this in one of ProLocation essentially. And it’s kind of interesting also to hear because I heard that the communities are also a bit different depending on the location. Like in one of the locations, they are a bit more technical, you know, they’re like more seniors, more hardcore, you know,

30:08

people that are like hardcore developers. And in the other, they are more juniors and more beginners as well, which I feel like it’s really cool to see that, you know, there are also different dynamics that establish in the different communities, right?

30:21

Yeah, you get the differences in skill levels or, I guess, years of experience, but also difference. You step over the border, you go to different countries, you have different cultures. So it’s always fascinating to me. But the jugs are very, very important because that’s the first level of the community. Some of the jugs are massive.

30:41

I mean, you go to India, these jugs have thousands of people in them, you know.

30:46

I agree, yeah. And what I kind of like about the jugs in Switzerland actually is that, I don’t know if in other countries they have a similar concept, but what I find is cool is that they kind of have like a membership where a company can get a member of a jug. And if they are doing that,

31:01

all of the people that work at the company, they also get free access to everything that the jug provides, right? by the company paying for them essentially which i think makes it a lot more accessible to everyone that wants to become a member i mean even if you don’t

31:14

become an individual member i actually recently became like an individual member in addition to being like a member for my company just because i wanted to support them a bit more you know which i felt like was a great way to do this even though it isn’t strictly required of course but yeah i agree totally with you

31:30

Yeah, it’s a really important point you make about companies because, you know, developers will, you know, open source developers, Java developers will form groups, right? Communities, I mean, community building is inherent. You know, it’s in human genes. I mean, we form groups. That’s what we do. It’s how we evolve. Without that, largely we die.

31:50

We are not isolated individuals. Yeah. And so we form groups, and this is how we collaborate on whatever, hunting, let’s say, raising a barn while hacking on code. So this is a very natural experience. Developers will do this naturally. However, it’s just smart. It’s a good business sense for the company to get involved as well,

32:10

or at least encourage their developers to go form a jug and that kind of thing, spend time doing that sort of thing, because they’re training each other. This is free training for the company, right? You go, I’m not so sure how to…

32:23

do this x y and z thing in java so i go to a jug and i i hang out on my own saturday and sunday on my own time right and i’m learning from these people and i’m contributing something they’re contributing things and i’m building a network there

32:38

as well that helps the company because you know if the company is contributing something upstream and there’s a problem you know the company maybe the managers and the executives you know they don’t know who to i mean who to call but you have a relationship in

32:51

the community you know you you might be able to help something upstream i’ve seen this happen multiple times it’s not like i’m making this up you know and so you know the executive will call the director director will call the engineer oh yeah no i can i can handle that upstream no problem

33:05

Because he has the relationship there in the community, right? This is not a secret, right? So this has real business value, especially if the company is involved in the project and contributing upstream or just involved in Java in any way, right? So it’s a really, really important thing. And I know from Oracle, I mean,

33:25

I actually did a podcast on this where I was talking to the test team in Bangalore at Oracle, a very large team in India. And they do all the testing on the Oracle product. And so they also contribute to the user group. The engineers on the team go out into the community. They do presentations. They run conferences.

33:50

as well, open source conferences. And they interact with the community in Bangalore and they get critical product information directly. And so this is all very good business. This is the value. These engineers are getting direct information feedback, and in many cases, contributions. Absolute degree. Yeah, it’s a big deal. And I’ve seen it, there’s many, many experiences.

34:19

So it’s really, it’s just a good practice for companies to be involved in open source projects.

34:26

I absolutely agree with you. And I find it quite interesting as well that you mentioned this aspect about this not being a secret, which I totally agree with you. But I’m always a little bit surprised when I talk to certain people how this kind of seems like a secret to them. I know. Even after all these years.

34:44

Yeah, right. I mean, you know, to me, it’s not really surprising, but it’s always surprising to me how many people they still don’t know about them. And I feel like every time I tell them, they really are very interested in it. And this is, I think, a great sign for sure.

34:58

And I feel like it’s definitely a great strategy where companies get like a membership at the JAG and then all of the people that work at the company immediately also get the membership in this way and they can participate. Because this way they can also have all of their engineers educate themselves.

35:14

And this also helps the company in turn, not even just for the relationships, but also, of course, I mean, you hear talks there and you talk to people and then maybe exchange ideas on how to solve a problem or You learn some things by talking to other people and then, you know, oh, you know,

35:31

this is a great way I could solve this problem I never thought about. And also maybe you learn about some people that are specialized in a certain field and then, you know, ah, you know, those people, they know this very well. So when I have a problem with that at work, I know who to call, right?

35:46

It’s the same thing you mentioned, right? So…

35:48

Absolutely. And you see this in conferences. And a lot of the jugs, particularly in Europe, a lot of the jugs have been around for a long time that they now run annual conferences. Some of the really cool conferences in Europe are run by Java user groups. They were founded, basically, by user groups.

36:05

That’s how important user groups are. But you see this in the hallway track all the time. You see people hanging out on the floor, laptops out, talking. And sometimes they’re coding together, sometimes just talking through problems. Just that human relationship is very, very important. We can’t work – again, we can’t work in isolation.

36:26

And a lot of times working behind the firewall is in isolation. You need to get out. You need to get face-to-face interactions with people in the community.

36:35

Totally agree with you. I think technically you could work on your own, but, you know, at least for myself, I wouldn’t want to because I just prefer working together with others. I feel like always when I work together with other people, the result has gotten better than what I could achieve on my own.

36:51

And I feel like this is a very important reason why you should do this.

36:54

Yeah, and I also, I mean, I’ve worked in six different industries. And this is the only one that has at its foundation collaborative development. Even if you’re working on, even if you’re an engineer in a closed source company, you’re working on a product, there is a certain amount of collaboration that comes with just software engineering.

37:13

But open development is a little bit different because it’s obviously global and you’re scaling across many, many firewalls. True. But not all fields have this. And when I talk to some older friends that I’ve had from previous industries and I describe what an average software developer is doing in these open communities like Java,

37:35

they just have no idea sometimes. It’s really interesting to me because I’ve been here for so long that I take it for granted. Yeah. I see what you mean. I was watching his presentation once. The video is online. I can’t think of the guy who did it, but it’s not that old.

37:53

It’s about, is software development actually engineering or something like that? I thought it was a really great presentation. He actually brought this issue up of other engineering fields looking at software development. One of the things they’re very jealous of is that software developers have Like version control?

38:13

Version control.

38:14

Version control. Which I think is rocket science, by the way. How you manage all those different versions, all those developers. Yeah, they have version control. And other engineering disciplines don’t necessarily have that. Unless there’s a software component to it, obviously. But I thought that was fascinating.

38:30

But again, I’ve been here for so long that I don’t have the perspective outside here. Maybe I should go into a different field at this point. Yeah.

38:38

Maybe, I don’t know. But yeah, I totally see what you mean. I feel like this is what happens with time. And I’m kind of glad that I was still able when I was giving lectures to understand how the students feel, because this is something I kind of feared, you know,

38:53

that maybe I would be too far away from it already, that I would not be able to relate with them enough anymore. But I was kind of glad about this aspect. I feel like it still is just because I came from a different field and changed into IT and I was struggling so much because, of course,

39:10

struggling isn’t great in a way. But on the other hand, I kind of liked that I struggled because it was so much more memorable. And for example, this also led me to collaborate with others, to form groups, to learn about different things, to you know, explain to each other different concepts like, you know,

39:29

sometimes maybe I understood something and a colleague of mine understood something else and then I was able to talk to them and then you made also friends this way, which was also a good experience, of course. And I remember there was one time we just started learning streams and lambdas at the university.

39:46

I have to say, I’m not sure, you know, I wouldn’t put the blame on the lecturer. I mean, I also just struggled a lot, you know, as I mentioned earlier. But I was really struggling with learning streams and lambdas, and it was really difficult because you couldn’t find that many things online.

40:02

Since Java just came out so recently, Java 8, there wasn’t that much information on it. But I remember there was a talk that was posted online from Venkat about this, or like two or three talks maybe, and I’m not sure. these were the ones that really helped me out to understand it.

40:17

I remember us sitting in the room, like three people in our small little study group in a way, and we were just listening to his talk and then suddenly it clicked in my head and then I was standing up, I went to the whiteboard,

40:31

I explained to the other students in my group how it worked and this was really a cool moment like this. I’m glad I was able to meet Venkat like two years ago at the workshop days in Switzerland, which is about doing workshops, which he always joins every year.

40:49

And I remember I was really grateful being able to talk to him and just thank him for this because he kind of saved me in a way because I was really struggling so much. And just by watching those talks, it really helped me out a lot,

41:02

which I think is also a reason for why it’s important to give talks about things because I also had a discussion with Venkat about that. We were discussing about a talk that I was preparing, which was about micro benchmarking in Java and performance testing and those kinds of things.

41:19

And he said, oh, you know, this is a very interesting topic. Maybe you should write a book about it. And then I was kind of surprised. I was saying like, oh, are you sure? Because I mean, nobody knows me. Why should I write a book about this? You know, and there are already books about this out there.

41:36

And then he mentioned to me this analogy, maybe you’ve heard about this before, I’m pretty sure, where there is at least one teacher that kind of shaped you as a person in a way in your childhood. And he said, you know, this one teacher doesn’t have to be someone who is able to explain something, you know,

41:58

incredibly well or is incredibly famous or whatever, you know, a very high profile person. But it is fine. You know, it doesn’t matter because in the end, it just matters that maybe they explain it just in the right way for you. And this could be different for everyone else. Maybe, you know,

42:15

half the class doesn’t understand the teacher and half the class, you know, finds the teacher brilliant just because it happens to match in a way. And he told me, you know, it’s still valuable for you to write a book about it because maybe your style,

42:29

most likely your style will be different than the style of other people who have written books before on this topic. And maybe it’s just this exact book with your style of explaining that is valuable to other people, which I also didn’t realize.

42:42

I think those are all of those aspects, which I think is so great about the community. And I don’t know, but I especially noticed in the Java community, there’s so many great people that I’ve talked to and made great relationships with, which I’m really thankful for.

42:56

Yeah, I totally agree with you. Just with Venkat specifically, he’s a teacher’s teacher. I mean, he genuinely believes in the concept of teaching. I mean, yes, he’s obviously a professor, but he does lectures and he does workshops and stuff like that. But it goes to his heart, and you can really see that when he’s interacting with somebody.

43:15

And what he told you is very real. And it’s – when I do this podcast, that’s how I feel about this podcast – I don’t care necessarily that it’s just a little podcast. But if there’s one or two people that listen to your story and are turned on by what you say, then that’s great.

43:36

We made a connection. It doesn’t have to be… Big and grand and have all kinds of sexy things, music and graphics and all the different things that podcasters are doing. That’s fine. I’m not criticizing it, but not my style. What I want to do is to have something very simple.

43:53

What I want to do is to have conversations with you, people like you, to get your story. That’s all I’m interested in. When I look at how I’m motivated to go learn something, I’m seeking. And there’s other people who do that too. And they come trip over this. They hear your story. Oh, I’m in Switzerland too.

44:10

I’m going to go meet this guy. You can be right next door and not even know. And then you’ve reached one person. That one person could be spectacular. You might have saved that person’s life, right? Because in reality, I have spoken to people who have said software has saved their lives. They’ve actually saved their lives.

44:28

This is a big deal. Communication is a big deal. So that’s how I feel about this.

44:34

I totally agree. And maybe just the style of you doing your podcast is also something that one person prefers to others. And maybe at least I prefer this more simple way. I don’t like music in the background or something like that. I’m more distracted by it, I feel like. Yeah, it’s really different from person to person.

44:52

And that’s also the reason why I’m doing so many talks at different conferences, because of this exact thing that you mentioned. You always have some people that come up to you afterwards and tell you how thankful they are that you taught them something.

45:06

And it’s especially nice for me to hear when they say something like, oh, you know, you know, on Monday I’m going to straight, going to go and implement this, you know. And this is so cool for me to hear, you know, having this impact on people.

45:20

And also this is what I liked about teaching so much because you have so many students who really appreciate you. And it’s always nice getting messages from people and, you know, them telling you that, you know, you really help them out a lot. And And they may not have been, you know, at the point they are,

45:37

if I wasn’t, wouldn’t have been there, which, you know, is very flattering to hear and makes me very happy to hear that I was able to have such a lasting impact. And I feel like for you, probably with your podcast, it is similar, I could imagine, right?

45:49

Yeah. I’m floored when anybody says that they listen. I go to a conference, somebody comes up to me and they says, oh, I heard your podcast. Really? Somebody listened? Yeah. Because I just can’t imagine, to be perfectly honest, I can’t imagine anybody listening. But a certain number of people do. So it’s just this very humbling.

46:14

And I try not to talk too much because I’m really more interested in hearing about you guys. Sure. All right, Francois, it’s been great talking to you. I have a new friend that’s great. I need more of those. And I’ve never been to Switzerland. I’ve only been to really just a handful of countries in Europe.

46:32

So Switzerland seems like a nice place, famous place to go to if there’s a conference or event I can go to at some point. We’ll have to get together. Is there anything that we haven’t talked about that we should have talked about or anything I forgot to ask you? Anything or any final words?

46:51

You know, I kind of wanted to talk about Java Champions a little bit as well because… Oh, yeah. I remember I went through the list of Java Champions recently, and I kind of was curious to see, of course, who is a new Java Champion. Because it always happens that people already know and appreciate they just happen

47:08

to be Java Champions, and I want to congratulate them, of course, when I hear about it. I remember looking through it, and I was kind of curious. I noticed how many I knew of the list, and then I started counting them, and then I came up to, I think, around 60 people. Oh, wow.

47:23

which seemed crazy to me. I couldn’t believe that by, you know, especially most of them I’ve known through conferences. And it was kind of surprising to me to see how many of those were Java champions. This kind of proved to me as well in a way, you know, how great the Java community is.

47:40

Because, I mean, those 60 people were people that I talked to, that I made a connection with. I mean, sure, I didn’t talk to each and every one of them for like, I don’t know, for hours, you know, this is for sure not possible. But still, you know, meaningful enough that I would be able to remember them,

47:53

which it’s so nice to be able to know so many people. And I have to say every Java Champion that I’ve met so far was someone who was really passionate. It also shows how many meaningful connections you can build if you go to conferences or participate in communities, of course, in general.

48:10

And it’s always great knowing so many people because I remember recently at the conference before the last one that I went to, I met someone who is a maintainer of JMH, which is a Java micro benchmarking framework. And I did a talk on how to use it and so on.

48:27

It was really interesting for me because I never met a maintainer before. And it was really cool because nobody knows the code as well as the maintainer or one of the maintainers of the project. And it was really cool because you noticed as well how passionate he was about what he was doing and so on.

48:44

And it was really cool to talk to someone who has all of this know-how and I took the opportunity to ask him, you know, if you could have a look at my talk and give me some feedback, because of course, you know,

48:54

I want to present the framework in a way that is something that helps them as well, right? Because, you know, this way you kind of help each other out in a way. And since it’s like, you know, open source as well, everybody profits essentially, right? Because in the end, by making something better, it improves it for everyone,

49:12

which is something I really enjoy about open source as well in general. I remember I was in a project at the customer and we had a bug that was kind of a blocker because as soon as we deployed the application, every customer that was using the application, when they visited the website, it was simply blank. And,

49:31

you know, we got a lot of support calls from that and they were mad about that, of course, right? I mean, as customers are usually right when it doesn’t work, which is definitely understandable, right? Yeah. And I remember when I investigated this a little bit, I found out that we actually or I mean,

49:48

I wasn’t yet at the company back then, but they had the same kind of issue already one year ago. And I remember I really remember our project manager really well because I really enjoyed, he was the one that really made, I think he made the right decisions because he told me, you know, this is really embarrassing.

50:07

There are tons of customers that are affected by this. And, you know, the way that they need to fix this, by the way, is by just emptying their cash. But this isn’t something that regular people will remember to do, right? I mean, you know, we may do this. But regular people won’t do this.

50:23

And he told me, you know, this is embarrassing. This is affecting so many customers. It has happened the second time. So, you know, he said, like, you know, I won’t spare any expense for this to get fixed. And it took me eventually a week to fix this, but I was able to fix it.

50:36

And it turned out it was a bug in Angular’s CLI, you know, in the open source library. And there were a lot of issues related to that, even some issues where people didn’t even realize that it was this exact bug that was affecting them.

50:50

And there were tons of posts and tons of comments in them where people were complaining, you know, oh, this doesn’t work, you know, and then over years, like always saying like, oh, you know, this still doesn’t work, you know, can somebody fix this, please? And, you know, of course, you know, me being in open source as well,

51:06

every time I hear something like this, I’m thinking, you know, you could fix it yourself. It’s open source, right? But I mean, I understand it was a very complex problem in the end, but I was able to solve it and it gave me so much joy seeing that this fix not only

51:19

solved the problem for the customer that I was working for at the moment, but also for so many more people that are using it because, you know, as evidenced by the issues that I’ve seen, I’ve seen there are a lot of people that are affected by this and they are probably very, you know,

51:33

happy to see that it is now fixed. And also, you know, it’s so nice that by doing something like this, you can have an impact for so many people, which I really enjoy about open source community. I feel like in other industries, there isn’t like an equivalent to that as well. You know, you mentioned in the beginning

51:48

You know, that there aren’t also some other equivalents in software engineering in general, but I feel like this is another aspect where this kind of open culture is also something that’s not really seen in other industries, I would feel like. Or what is your experience there?

52:02

Yeah, exactly. I mean, I sometimes, like in scientific communities, I mean, I’ve worked at universities where I’m around scientists and PhDs and veterinarians and human physicians in different disciplines, right? And so they definitely have a culture of… collaboration in the scientific community. It’s slightly different from how software engineers do it, but there’s still a culture there.

52:28

In the construction business, there’s a definite collaboration concept there as well. Construction goes back 5,000 years, so there’s a long history there of really well-defined ways of doing whatever the discipline is, real meritocracy, which is something I really value. But in other disciplines, no. I don’t find that in marketing, to be honest.

52:54

I don’t find that in other things. But I will say this. When I was on the Open Solaris project, we open sourced our marketing. So we brought our marketing people, our marketing team into the community, and they functioned just like the engineers did. in an open source way. But those are people working on the open source project.

53:14

So they were doing marketing in the community and they function fantastic. But in general, marketing is more of a non-collaborative sort of a discipline.

53:23

It’s true. However, an advantage about open source can be that it can be marketing as well, right? Oh, sure. Because I remember there was one project that I was working on, which was about making sure there would be a secure way to exchange encrypted, anonymized data for science purposes between universities and the people that were doing research.

53:45

And there was no standardized way to do this in Switzerland, which is why they launched a joint project between three different universities. where it was the goal or their idea was that if they find a solution that works for those three major universities, probably it will work for all of them because, you know,

54:03

this was definitely a struggle we had because each of the universities were slightly different and we had to find a solution that would work for all of them, which was, of course, tricky. But I remember, you know, I told them at some point I was kind of advocating for open source. I was telling them, you know,

54:19

I really would suggest you to open source this code because by doing this, you really make it clear that the code is secure because this is a topic that is very critical in terms of security, right? You want to make sure that the material that is encrypted in this way, which is used for science purposes,

54:38

doesn’t go to somebody else. I mean, even though it’s anonymized still, sometimes you’re able to de-anonymize, you know, data. So it’s still very relevant. And I said, you know, if you want to really get the trust by, you know, other people, make it open source because people will see that it is open source.

54:54

They can look at the code. They can see for themselves, is it secure or not? And this, you know, also helped because I remember there was a funny thing that happened at some point. Suddenly somebody wrote in the chat, oh, you know, we got a contribution from somebody that never contributed before.

55:11

This was actually after we open sourced it because, you know, they eventually, you know, they agreed with my aspects when I mentioned them previously. So when I mentioned to them that they should open source it, they eventually understood and they were actually thinking it was a great idea.

55:25

And they told me I should do it and then I just put it open source. And we worked on the project from then on. And I remember there was a moment where suddenly we got our first external contribution from somebody who we didn’t know.

55:39

And it’s funny because one member in our team had the idea of Googling the name of that person. And they found that actually that person was a streamer and they actually stream them using open source projects or contributing to them. And it was so cool seeing that somebody discovered on their own or project that we

56:00

were working on and was submitting a contribution. And it was also really cool because it gave us an opportunity to see how it is for somebody who never interacted with the code base before, how it feels like, because of course we worked with the code base for so long already.

56:16

we were kind of blind in this aspect and it was really nice to see like, you know, what aspects is this person struggling with? How can we make it easier for other collaborators to join in? But of course, I mean, since the streamer has some visibility, this also makes the project more visible,

56:31

which in turn is again valuable, you know, in terms of marketing. So I feel like those are also aspects that are often not talked about of how valuable open source can be in those kinds of ways.

56:42

Absolutely. Everything you said is true. I’ve lived it my life completely on Open Solaris and Java. And I’ve worked on the NetBeans project. I’ve worked on OpenOffice, MySQL, lots of different open source projects. And it is one of the things I tell engineers is that when you do your work in the open,

57:02

you are literally building the community. Most engineers just feel that they’re just working on the code. I say, yes, you are. But the fact that you’re building infrastructure You’re building the code. You’re interacting with other engineers. You are literally building that community with your bare hands. Now,

57:20

my job as a community builder is to sort of facilitate that, but you’re doing the actual community building. That in and of itself is a marketing function. Have you ever read the Cluechain Manifesto? No, I didn’t. That sounds interesting. I need to have a look at that. Clue Train Manifesto is a book written in 2000.

57:37

It’s 25 years old. It’s written by some Linux guys. It’s open source marketing. That’s what it is. And it is obviously an old book now, but you read it and you just change the language because the world has changed a little bit. You understand that markets are conversations. It’s the open collaboration, right? Yeah.

57:59

And we used it a lot at Sun when we were opening, because Sun was opening all those different projects. Solaris, Java, Linux. Actually, we had a Linux team. We had NetBeams, MySQL, Juxta. What else was Sun? OpenOffice. And piles and piles of other projects as well as Spark.

58:20

So a lot of us, a lot of the marketing teams used it back then. And it seems to have been forgotten now. But you read that book now, it’s really thin. And it articulates more or less what you just said, that everybody involved in the project, if you’re having the conversation in the open.

58:37

This is where Java is so valuable. OpenJDK is the central platform. There’s a canonical project for Java, right? How many million lists are there? They’re all active. You can see the code. It’s got a governance system. It’s an entire community. And so, yeah, absolutely. And that in and of itself helps to build everything.

59:00

So it’s the coolest thing in the world. It really is. We’re so lucky to be doing this because there’s just so many possibilities. And it empowers people. You’re not just slogging through pushing paper. I mean, so you’ve learned language and technology and some tools that can change the world and change your life.

59:24

It’s not the same as just clocking in nine to five. It’s very different. It’s a very different thing, you know.

59:31

True. I mean, I just recently learned about JCP, which I mean, you know, surprisingly enough, I mean, I’ve been working with Java for so long, but it was very impressive to me to see how the JCP was working and how in the open this also was. Right. And I was very impressed by that. Yeah,

59:49

I’m always surprised about, you know, even, you know, more and more things as much as time goes on, because there’s so many of those things that you don’t really hear about often, but they are very, you know, interesting in those ways that you mentioned them, right?

1:00:01

Yeah, absolutely. All right, Francois, I’m going to go to bed.

1:00:04

Yeah, sorry for keeping up.

1:00:08

It’s almost 2 a.m. and it’s been a great conversation. I learned, yeah, I live an alternative lifestyle, can I say? It’s fine. But, yeah, no, it’s been great chatting with you. I learned a lot, as always. And we talked about test and teaching and community and learning and contributing to open source, contributing to Java, Java user groups.

1:00:32

I mean, really wide variety here. It’s really great. I’m glad you pinged me. I’m glad we met at that conference a couple of months ago. And, yeah, we’ll see you maybe sometime in Europe at some event someplace.

1:00:46

Totally agreed. Same. Yeah, definitely. I’m also very glad that it happened, you know, and it was really nice chatting to you, too. I also really enjoyed it. And I’m really glad to hear that you learned something. You know, I didn’t come into this discussion with the expectation for you to learn anything,

1:01:00

but I’m even more glad to hear that. You know, this makes me really happy. I always learn. I always learn because I’m looking to learn. And so you guys are good teachers. Thank you so much. Yeah, I think that’s true. I’m also doing the same. Yeah. I feel like it’s also kind of a mindset question, right?

1:01:16

Because if you’re not in the mindset to learn something, then you probably won’t, right?

1:01:22

Absolutely.

1:01:23

Yeah. But thank you so much for the opportunity as well. I really enjoyed being here with you. Cool. Cheers. Cheers.

JavaOne Preview: Marit van Dijk

Duke’s Corner Podcast with Marit van Dijk, a Java Champion and also a Java Developer Advocate at JetBrains. Marit will present on developer productivity with IntelliJ IDEA at JavaOne March 18-20 in California. Go to javaone.com!

Interview Archive

Transcript

Marit, Marit van Dijk from the Netherlands. Welcome to Duke’s Corner. Hi, Jim.

0:04

Good to see you.

0:05

It’s great to see you too. Listen, hey, Java 1 is coming up real quick, March 18th to 20th in Silicon Valley. So I understand you’re a speaker. So let’s pitch your session here a little bit. What are you talking about?

0:18

So I’m talking about developer productivity in IntelliJ IDEA, my favorite IDE, and we’ll look at some of the features that can help you read and write code more quickly, make you a more productive and happy developer. And it’s going to be a 100% live coding session.

0:34

Good. No slides. I love it. I’ll be there. I love productivity issues, and that’ll be really cool. And by the way, lots of other developers are doing all coding sessions as well. So that’s great. Hey, listen, is this your first Java 1?

0:49

It is, actually. I’m really excited. Yeah.

0:52

Yeah. So what are you looking forward to? What have you heard about Java 1?

0:55

Well, there’s going to be, of course, lots of people who actually work on the Java language, which is amazing. Lots of Java champions like myself. And I always enjoy meeting people from the Java community and exchanging our experiences in the hallway track.

1:11

Yeah, excellent. That hallway track is really important because there’s a lot of people hanging around. It’s going to be a lot of people there, very important people, and a lot of people from the community as well. I’ve been to about 10 Java 1s, and they don’t disappoint.

1:23

So for everybody out there, March 18th through 20th in Silicon Valley, just go to java1.com. Everything’s there. And thanks a lot, Marit. We’ll see you soon. See you there.

Venkat Subramaniam: Be Agile about Being Agile!

Duke’s Corner Podcast with Venkat Subramaniam, who is a Java Champion, professor, programmer, and a conference organizer. The conversation ranges from the upcoming JavaOne conference in California in March 2025 to building the Java community, engaging the next generation of Java developers, the importance of going to Java user groups, career building, the evolution of Java technology, agile development, release models, and his upcoming book — Cruising Along with Java. This is a jam packed episode that has something for everyone.

Here’s quick bit from the interview from Venkat: “One of the biggest contributions Java has made is to truly show to us the developers what agile development really should be!” I like it.

Interview Archive

Transcript

Venkat, Venkat Subramaniam welcome, welcome back to Duke’s Corner!

0:05

hey, thanks, Jim, for having me here it’s a great pleasure always to talk to you and and i i can’t believe it’s a new year and i’m gonna see in a few months actually so excited to talk to you now and again in a few months

0:16

Yeah, it’s great. It is. I cannot believe it’s 2025. That’s shocking to me, actually. And yeah, you mentioned a few months. We’re going to actually see each other in California. Java 1 is right around the corner, which is one of the reasons why I wanted to chat with you here today.

0:31

And I saw your name on the schedule. Of course, I expected that. So tell me a little bit. Let’s just start off with Java 1 since we’re going to actually since that’s in March, March 18th through 20th. What are you looking forward to with Java 1 this year?

0:45

Oh, I’m super excited. I’m definitely very thankful for getting the opportunity to speak there as well. And one of the reasons I’m excited about being in Java 1 is, A, it’s in California. So I have to say that being on Oracle campus absolutely excites me. Don’t get me wrong.

1:04

I’ve been to a few different Java 1s over the years, back in time when it was in California, again in Vegas. But for some reason, I’m truly excited about being on the Oracle campus this time. To be at the home of where a lot of these things happen means a lot more than being

1:24

in a huge conference venue out in Vegas. So that’s part of the excitement, not the only, though.

1:29

And it’s a short flight from where you are. It really is.

1:33

It’s like an hour or so, right?

1:37

Totally. How many Java 1s have you been to?

1:39

Oh, I can’t remember. I’m going to say definitely quite a number.

1:45

So you’ve really seen sort of the evolution, not only of the conference itself, but of obviously the people, but of the technology as well. So actually, let’s just stick with the conference for a second. What are you going to be talking about there?

1:56

Yeah, I’m going to be talking about really a talk focused on knowing your Java. And it’s funny, you know, you may ask, well, wait a minute, Java is starting 30 years. We got a lot of people with a lot of experience now. Do you really need to talk about Know Your Java? And exactly my point. So essentially,

2:17

what I’m going to be talking about is, I favorably call it as, tuck your toes moment. I have seen a lot of developers in my consulting work. And to be very honest, myself, stub my toes and say, ouch, when I implement a certain feature and then begin to realize that the code is

2:38

behaving very differently than I expected it to be. Sometimes out of my ignorance or out of the ignorance of people who are using it, sometimes it’s just not thinking through the consequences of what the code may do. And I often say, you don’t want to get the call at 2 a.m.

2:57

on that Wednesday saying that your code has failed in production. So what I’m going to talk about are things I’ve seen in production that have led to problems because developers either have not fully understood a certain idea or it comes back to bite them in the back, me included.

3:16

And I’ve decided to take a very interactive approach towards this rather than, you know, just pressing slides and talk about stuff. What I do is obviously no slides in my talks, but I show them a piece of code and then interactively they tend to figure out what the code is doing.

3:36

And this counts really well for a larger audience because I use an interactive tool to pull their response. And then I show them the poll of the response. And I’ve given this talk a couple of times. And it’s really fascinating to see how many developers figure out what the code actually does.

3:56

Then we dive in and talk about the actual behavior of the code and then extend it to things we need to pay attention to become really good developers with it. And in fact, what’s fascinating about this is even AI tools quite often don’t get these things right. That’s what is the scary part.

4:19

People often jump in and say, oh, I don’t need to do this right because I can use AI to do this. Well, I’ve actually seen AI tools fall into the same trap that programmers fall into. Well, guess what? Because AI has been trained on the two code that a lot of us have written over the time,

4:37

and if we have collectively made that mistake, it’s no surprise that AI is going to make that mistake as well. So that’s kind of essentially what I focus on in the talk, is the things that can bite you in the back, things that you need to know.

4:51

And then it’s a very example-driven presentation where we look at a code, take a poll of the behavior, reflect on what we collectively identify, and then analyze the code, and then draw some conclusions on how to become better at dealing with similar code as we move forward. And to just emphasize things you need to know from this,

5:14

this is one of the things I often emphasize is you look at the syntax, but you should really see the semantics. That, to me, is the essence of programming. Syntax is what we look at all the time. But as developers, We need to really take the time to see through the semantics.

5:34

And this talk is really focused on the semantics. You know, I’m a huge fan of testament development. I like to write test cases. And every single example I show in the talk, compilers don’t catch the problem. Any serious effort with unit testing often will not catch these problems. That’s the scary part.

5:58

You can’t delegate this to the tools and say or the techniques and say, gosh, I do all these. I don’t have to worry about it. No, you do, because with all respect, we want to rely on compilers because they allow us to get early feedback on certain problems in the code.

6:16

And if a code passes through compiler, we can be confident to a certain level. Similarly, I’m a big fan of automated testing. That gives us confidence. So I’m not rejecting those tools and techniques, but those are necessary but not sufficient. Your knowledge of semantics still is relevant and important in spite of compilers

6:39

and test-driven development and AI tools, and that’s kind of the emphasis of the talk.

6:44

This is fascinating to me. I’ll tell you a little story. I’m going to comment on a few things you’ve said, but in this framework here. When I first met you, it was 2017 to 2018, and you were doing a keynote, and it was a coding session. sort of thing, obviously,

7:01

and I’m sitting there because I didn’t know you at the time and I had to sort of get to know you really quickly because I was going to do an interview with you, a streaming interview right after your keynote, and I had to go up and introduce myself and then drag you off to the corner to do

7:14

this interview. So, I’m watching this keynote, and you’re talking about, obviously, technical things, about software and stuff, but I was following it because I was getting this message from you. You were really looking at things from not only a micro level, but a macro level.

7:30

And I was seeing how I can apply that level of thinking to writing, you know, English, and… project management, because it was a way of thinking. And it sounds like everything you just said now, it sounds like a perspective you’re taking in terms of writing code,

7:47

not just relying on a tool to find the errors and stuff like that. But as you’re writing, it’s the perspective up front, especially with test-driven development. And it’s interesting to me how, as a non-coder myself, I can follow what you say. That’s fascinating to me.

8:04

It’s interesting that you say this, Jim, actually, because I was reading something yesterday and they were talking about the use of AI versus critical thinking. And I don’t want people to take this negatively, but this is something for us to really think about because we are living at that

8:22

tipping point where we are going to benefit a great deal from a new evolution of technology. But it comes with a certain caveats. And that is, with us, we have some amazingly great tool. But unfortunately, we can’t compromise on critical thinking. In fact, we are living in a time when I think critical thinking is even more important.

8:53

And that’s exactly to your point. This is something I had to take the time to learn along the way because, you know, oftentimes our schooling doesn’t teach us the necessary skills we need to survive and succeed in this world. These are things we stumble upon, figure out, maybe have a good friend or a mentor,

9:14

and then you kind of observe and say, And then you accidentally stumble upon these things. And that’s been journey for me. But to me, that is one of the things I would encourage younger developers who are at the conference are trying to learn and apply is don’t be on a fast track.

9:35

Don’t try to solve problems too quickly. Yes, we want to solve problems. We want to deliver value to our business, definitely. But there’s a risk of being too rash in our development because we don’t take the time then to understand the consequences of what we do. And to your point,

9:57

that I think is the critical thing is to really emphasize is that we need to really improve on our critical thinking. And to your point, critical thinking applies to program development, but it applies to every aspect of our life. It’s every decision we make, every problem we solve, every solution we consider, it requires that.

10:22

And I think that’s kind of the essence of the talk as well is to say that, hey, we can go beyond what we see at the surface. If we start thinking through the consequences of what we are using, we tend to identify the issues a lot more.

10:39

So I often say sometimes we have to slow down in order for us to gain speed. We are in this mode of, can I go faster? Can I go faster? Well, there are times we have to slow down. And if we don’t slow down, then we’re going to end up in a ditch. And we didn’t gain speed.

10:58

We actually resulted in more of an accident, right? So that’s kind of the, so to your point, you’re absolutely right. That’s what fascinates me as well.

11:06

Yeah, well, I’m really looking forward to your talk. I’ve read the description and it was kind of interesting to me. And now that you explain it, I definitely want to attend it. I’m actually the photographer for Java 1, so I have to be at your talk, so I have to shoot it.

11:19

But I’m going to make sure I hang out there because I really enjoy your talks from this actual perspective here because you can get micro and macro simultaneously. And I really learned from that. And I pick up a little bit of coding along the way as well.

11:33

But I’m always fascinated in this concept of learning and efficiency and development. It’s one of the reasons why I like talking to developers is because to one degree or another, they’re struggling with these very same issues and how they learn complex things, how they’re able to focus and go very, very deeply into a topic.

11:52

And just like you said, the ramifications of not getting something thinking you’re right, but you’re actually wrong on something and then finding out later when you get that two o’clock in the morning phone call when the bank goes down and, you know, in Asia and, you know, that is your code. Right. And so.

12:08

i can’t i can’t imagine i was talking to a developer one time and he says yo yeah i was writing some stuff and you know the bank actually went down and i said oh my god that actually happened that’s just no that actually happened you know as well

12:19

he was a junior developer and he says but that’s okay i learned a lot from it i says oh my god you know i I don’t know if I can, that’s just stress to me. It’s like becoming a surgeon or something. So, all right, that’s really fascinating. I’m really interested in this. Cool.

12:36

So, okay, so let’s talk a little about your feelings about Java. Like what’s new these days in Java? I mean, Java is very interesting from one perspective to me in that there’s always these constant releases now every six months, right? So you get new bits that are coming out. every six months,

12:55

but you can also obviously follow the stuff that’s under development on the open lists, on the open JDK lists. And so let’s talk a little bit about what’s new now, but also the evolution of Java. Where did it come from? I guess it’s 30 years old, but it’s also very young as well.

13:10

I’ll be honest about this to you, Jim. I was one of those guys on the other side of the picket line, constantly complaining about Java, that it’s not moving forward. I was ready to, you know, say the last rights for it. Java is dead. Really? When was this?

13:27

When was this?

13:28

Actually, it’s fascinating because I’ve saved some of these emails back in 2010 timeframe. This is funny if you think about it, but it also could be frustrating. I used to get hate emails from people. I hate you Venkat because you hate Java. It was a crime to hate Java back in time, but rightfully so in my opinion.

13:53

And to be honest, All that changed for me when Java 8 came out. And you may say, well, wait a minute. What did Java 8 do to get you convinced? And I remember literally standing up at my desk one day. That’s how you know how shaken you are seeing something. I’ve seen lambdas. I’ve seen functional programming.

14:16

I’ve seen functional pipeline. I’ve used it in Scala and Groovy and other languages. I’ve done things like Erlang. So these concepts are not new to me. And honestly, I said, big deal. Java has lambdas. Why do I care? Because I’ve seen it in other languages. But this is where I’m willing to admit when I’m wrong.

14:40

And to me, that’s very humbling. When I can realize myself that I’m wrong and I’m looking at Java, I looked at Lambdas, I’m like, big deal, right? I can do Lambdas in other languages. I could do it in Scala, for example. Why do I care? And I truly looked at two things that blew my mind.

15:00

One was Invoke Dynamic, and Invoke Dynamic replaced the need for inner classes to do Lambdas, which is what languages like Scala and Groovy on the JVM were doing back then. It fundamentally raised the bar for any language on the JVM to implement Lambdas and functional pipeline very efficiently.

15:24

The other thing that blew my mind was the lazy evaluation of streams. You know, when I wrote the first book on functional programming in Java, in fact, it was released the day Java 8 was released, and I’m very thankful for all the guidance and reviews and help I got from the core

15:42

developers behind the Java language because I was writing the book in parallel to evolution of Java 8. But one of the things I said in the book, and my editor called me on the phone and said, are you serious you want to write something like this in a technical book?

15:57

And I said to my editor, hey, I live in Colorado. And she’s like, yeah, I’ll let you slip through this. And I said in the book, Landis are the gateway drug, streams are the real addiction. And what I meant by that is… You get drawn into the feature by looking at lambdas,

16:17

but when you realize the functional pipeline and the lazy evaluation that streams provide, that’s when you really realize, oh my gosh, we are sitting on something that’s extremely powerful. Because as programmers, we know one thing really well. You can look at a code and say, oh, that’s cute. That’s easy to understand. That’s easy to maintain.

16:42

But with all respect, that’s not going to sustain if the code doesn’t give you the performance at the end of the day. And while lambdas give you the conciseness and the cuteness of the code, it’s the lazy evaluation that brings the performance and, of course, the dynamic and concepts like that.

17:04

So what fascinated me and completely turned me around from being a person talking ill about Java to saying, I got to really pay attention to this because this is going to make a huge difference in production for organizations that have heavily invested into Java. And to me,

17:26

I often say that functional programming is fascinating because it reduces the accidental complexity in code. But with all respect, with respect to reducing accidental complexity, that’s a problem we deal with for development. That’s important, but that cannot really replace an efficiency in production. So as they often say that when it comes to these concepts,

17:55

functional programming relies on lazy evaluation for efficiency. And Java, you know, there are languages like, don’t get me wrong, I love all these languages, so I’m not saying these negatively. But when you look at language like Ruby or JavaScript, they provide you the functional style of programming. but they don’t provide you lazy evaluation.

18:22

So that’s why I call them functional style, not functional programming. And to me, Java developers behind the Java language could have just said, yeah, you know what? You want Lambdas? I’ll give you Lambdas. Let me go home. But instead, they took the time to not only provide a syntactical benefit to reduce complexity,

18:44

but they took that down to providing performance at the execution level as well. And on that day, I realized that Java is ready for a huge evolution moving forward. I mean, as a person who didn’t believe in Java, I woke up to realize, and that’s why I said I really stood up at my desk and I said,

19:09

I’ve got to focus on this one because this is going to be huge. And fast forward literally, I don’t know, 12 years now since the day I realized it. Java has not disappointed me. In fact, it’s surprised me every single day as I look at the evolution of the language. So since that time,

19:30

I would say one of the biggest contributions that Java made, personally in my opinion, is to truly show to us the developers what agile development really should be. I mean, I say this sincerely, right? We are in a crazy world right now when everybody is chanting, be agile, do agile development.

19:52

Well, you don’t do agile development, you be agile. And one of my aha moments is when the people behind Java figured out They can decouple the development cycle from the release cycle. I wish more people really thought about it and figured out what an amazing idea that really is. Because it’s silly when you see people say,

20:22

we’re going to do sprint and two-week development. The folks buying Java said, nonsense, we are not getting results from what we are doing, or we’re not going to run behind agile development like everybody else does. We’re going to decouple development from release cycles because they figured out what was holding them back.

20:41

To come up with an arbitrary set of features to be released ahead of the time of doing any work on it is definition of insanity. And we have been doing that, and the folks behind Java were doing that too. And they realized, wait, what if we give a six-month release cycle,

21:00

but we’re going to allow people to take the time to develop the features that with the utmost quality and feedback cycle it needs by using the pre-release versions. But then when it’s ready, you get to release it within six months and not have to wait arbitrarily for synchronizing with some feature that somebody decided to put together.

21:28

I wish more organizations will learn from what Oracle has done very brilliantly, but has not, in my opinion, really marketed that idea really well. To me, that to me is, again, Nothing technical at this point, but even from the managing the project point of view, there is things to learn.

21:51

And that’s one of the reasons I appreciate Java today is that Java is no longer what it used to be back in Java 4, Java 5, Java 6 timeframe. It’s a vibrant environment. And again, with no disrespect to people behind Java, we could also realize that we talk about Java as this one language.

22:13

Oh, boy, 30 years is what? If not one, if it’s not two generations of developers moving the language forward. It’s not the original creators of the language. It’s not the people who came after that a decade later. It is a much different set of people moving Java forward. It’s new thinking because there’s new energy into it.

22:37

So I can talk endlessly about the technical reasons why I’m excited about Java as I do in my talks, but it’s also these non-technical things that also excites me about Java is because it’s not one thing that makes it successful. It’s kind of like the wheels of a car.

22:55

You can’t have just one wheel functioning really well and the other wheels being, this is why we align wheels differently. from time to time in a car because when the wheels are aligned, we are able to move forward smoothly. So it’s the time when several things aligned in Java,

23:15

both the technical things and the non-technical things coming into alignment is what really excites about Java to me today.

23:22

Yeah, I always describe Java, you know, some people say, oh, it’s 30 years old. And they don’t realize if you go to any real Java conference around the world, you’re going to see a bunch of 20 year olds there. You know, there’s a lot of people, you know, I mean,

23:35

I go to a conference and I say my first Java one was in 2000. Oh, I wasn’t really born then, that kind of thing. And it’s like, that’s 25 years ago. And yeah, that developer was just born. And so these are the people now that are driving it. But a lot of the older guys are still there.

23:55

So they have the history and things like that. A lot of deep expertise. But it’s completely young. It’s the old and the young mixing together seamlessly. I mean, you can see it inside of Oracle as well. You have people that are working on the platform. This is a lot of young people around. So, okay,

24:12

when you talk about the decoupling of development from release, I mean, it’s been that way for years now in terms of Java. Other organizations aren’t, I mean, aren’t using that. Isn’t that normal now in software development?

24:27

Sadly, because one of the reasons for that is the world is a really big place, and it takes certain time and effort for people to do things and realize it’s not working for them, and then to have the ability to change. Certainly, there are a number of organizations that are very effective, doing great. Absolutely, that’s fantastic.

24:56

But there is a fairly significant segment of the industry where, unfortunately, there are certain people in the management or in various responsibilities who are looking for a prescription rather than a practice. That’s one of the things I often emphasize to people is, you know, look for practice, not for methodologies. Look for practices, not for procedures.

25:24

And practices are easier to change, procedures are what you are trying to follow. And a lot of times what these organizations do is they want a prescription as to how to do agile, and they fall into the trap of following certain predetermined things.

25:42

One of the things I often say is be agile about being agile, because you’ve got to figure out what works for your team, and what needs to change. And again, to emphasize that, just because it worked for Oracle doesn’t mean it will work for everybody else.

26:00

But it’s important to really take the time to see and say, wait, why are we building this way? You know, personally, right, I gave my company as agile developer, but I don’t think I do any agile software process training. I don’t do that anymore.

26:17

Part of the reason for that is, if you ask me, how do I develop software? Well, I do continuous delivery. That’s what I do. I release software multiple times a day into production. I don’t believe in this two-week cycle. Well, why should I focus on an arbitrary process I create when I can deliver value to my

26:41

customers much faster and focus on what actually they want? So I’ve changed a lot of things I do based on my own experience and experimentation. But unfortunately, as a smaller company, I’m able to do it. As a larger company, Oracle is able to do it. So it’s not the size that matters, but it’s the mindset that matters.

27:06

It’s for people who are able to come in and say, well, duh, this is not working, but thank you for your suggestions. The Agile manifesto said we shouldn’t focus on the process. And yet, agile development has become such process-oriented, unfortunately. What an irony, right? So to your point, yes, companies like Oracle have done it.

27:30

Some other few companies have done it. But at large, I think our industry is struggling. It goes back to what we talked about earlier, right? Critical thinking is hard. And when people want prescription, they don’t want to take the time to do critical thinking. Instead, they’re like, this is why I hate the words best practices.

27:52

When somebody says best practice, I cringe because best practice means give me a checklist. I will tick them off. If it works, great. If it doesn’t work, it was not my problem. I just followed the best practice and obviously it didn’t work for me. I think there’s a lot to learn in this world and to improve.

28:12

Yeah, it’s interesting with this whole release model, I’m feeling more and more as it’s, yes, it’s been obviously around for years now, but it has such an impact with so many people. Whenever I bring it up, everyone reacts like you react. It’s really interesting. It’s not just a release model. It’s much more than that.

28:32

Okay, so that’s an interesting bit there about the evolution. Anything more about what you’ve seen with Java over the years?

28:40

One thing that I’m absolutely excited about is the ideas behind virtual threads. I’m absolutely excited about a lot of other features in the language, but one thing that excites me about virtual threads is, this again goes back to what I mentioned earlier, is I tend to get excited about Java

29:03

when it makes the production environment really successful and not just the development experience. You know, I’m a programmer. I care about developer experience. I care about the joy and the journey of writing code and reducing complexities. But at the same time, what fascinates me is how much impact it has in production. And virtual threads, to me,

29:29

is something that’s going to make a huge impact in production when companies are able to move forward into much more recent versions of Java. And the reason is… Without you having to modify the code a lot, I often say virtual threads is like aspects in aspect-oriented programming. Because to me,

29:51

you can flip a switch here and you can see changes way over there rather than having to modify code at every different level. This is huge because if you look at C Sharp and if you look at JavaScript, again, those are languages I appreciate for their own merit. to be negative about the languages.

30:12

But when it comes to asynchronous programming in C-sharp or even in Kotlin or JavaScript, if you want to convert a code from being synchronous to asynchronous, you have to modify a lot of code. We could argue the code change is not a lot, but the code change is intrusive.

30:36

It’s not just where you come and flip a switch and you walk away. But it really is, again, fantastic to see how, without modifying any code, you can just modify a configuration, I use the word loosely here, at one level, and all the code can now behave asynchronously what was previously synchronous.

31:00

To me, that is huge in terms of performance at the runtime introduction. And that’s what I truly appreciate. I tend to really appreciate things that you don’t see, you don’t look at. When you look at the code, this is not staring at you.

31:18

But you’ve got to kind of see through it and say, whoa, I see what’s going on here. And that’s why it’s kind of like coming back in full circle. What exactly about Stream was not the syntax, but the semantics. And what I appreciate about virtual threads is again, not just the syntax, but the semantics of its behavior.

31:39

And that to me is really fascinating. And if you ask me, what are the super big threads A big as not in huge in terms of code change, but huge in terms of impact that I’ve seen in Java. I would say, of course, the introduction of Java itself in the beginning.

31:59

But then I would put Java 8 as the next biggest change. But fast forward with, again, all respect to everything that’s happened in between, which are as valuable But to me, the next big change in Java, in my honest opinion, is virtual threads and structured concurrency.

32:17

And I think these are going to be the super highlights of Java over the evolution over the 30 years is because they have a huge impact in various different ways in terms of productivity for both the developers and in terms of production as well. This is fascinating.

32:35

You should write about the history here.

32:38

I don’t think I’m qualified to write. I’m the person who speaks the joy, but I don’t think I’m qualified to write about it.

32:47

Well, you did mention earlier about a book.

32:49

I do have a book coming out on the evolution of Java, not in terms of history of it, but the technical evolution, cruising along with Java. Essentially, the idea behind cruising along with Java is to say, hey, I was excited about Java 8, but here’s what’s happened in Java since Java 9 to Java 23.

33:11

And one of the things I’m really happy about is how much this evolution has been exciting. You know, I usually write my books really quickly, but I’m really thankful to my publisher. They’ve been very patient with me. I literally took two years to write this book, not because I needed the time to write it,

33:27

but I really wanted to. I would see a feature in Java. I’m like, oh, my gosh, I’m really excited about it. My gosh, it’s in pre-release. I’ve got to wait for it to become, you know, into the language. So I kind of waited for these features to be baked into the language.

33:41

So I was writing the book alongside as these features were developed, but I finally realized that it’s time to release the book. So it’s coming out in a couple of months from now, cruising along with Java. But to your point, you know, I’m excited about the features like text blocks and features like type inference,

33:59

but all the way to, you know, what excites me is not that Java has these n number of features, right? But what blows my mind is the synergy between those features. You know, oh, wow, sealed classes are really cool. Oh, wow, pattern matching is cool. Oh, wow, records are cool. But then I sit back and say,

34:21

what’s even more fascinating is, for example, how pattern matching and sealed classes and records work. all come together, right? That’s what truly has been exciting for me to see. So when I work with my clients, when I’m working on code for them, I show them how they can refactor their code from those gnarly if and else

34:46

conditions to using pattern matching and sealed classes and records. And that’s what I wanted to really bring in the book to say, you can use these ideas in your current code and refactor those code so that they become a lot more easier to maintain. And so anyway,

35:05

that’s kind of the emphasis that I really want to bring to developers interested in Java is to say, you are no longer writing. I give a talk from time to time, which is called, this ain’t your parents Java. And I say that as a parent myself, right?

35:23

To me, it’s fascinating because 30 years, to your point, Jim, we see 20-something. I have children who are adults now who are in the workforce. And for me to see my children in the workforce and learning to use technologies and push the boundaries – You know,

35:44

I use Java very differently as a young programmer than the next generation gets to use Java. So I think that’s the key is, you know, in fact, to your point earlier, this was fascinating to me because somebody came to me and said, hey, I used to program in Java 15 years ago.

36:04

I kept telling people, don’t use Java because it’s obsolete. I just stumbled into your talk. I saw the features you are talking about. I hate to admit it. I begin to realize Java is no longer the language that I once programmed in. I should no longer tell people, don’t use Java.

36:29

I should go learn the new Java and explore how I can benefit as well. And to me, that is the key is we all, this is human nature. I used to do something. I develop an opinion about it. I have moved away, but I don’t realize that.

36:48

I have moved away, but the language has moved on and forward as well. And a significant number of developers have just not been exposed to it. So when somebody tells Java, don’t use it, I respectfully ask them, when was the last time you actually used Java? Well, if you used it 10 years ago or so, I’m sorry,

37:11

but you’re not really looking at the same language. In a way, it’s like being in a city, right? You know, I was down in Houston a couple of weeks ago with my wife, and we used to live in Houston for 20 years, and it’s been almost 20 years since we moved from Houston.

37:30

And as we were driving by, my wife was saying, hey, look what they have done to downtown. You know, Jim, when I used to live in Houston, downtown is not where you go after it gets dark. It was the scary, dark place. And she was telling me, look at this. This is a vibrant community here.

37:51

young people walking down, beautiful apartments, looking fascinating apartments. It doesn’t look rundown. And I was like, yeah, when you come back, you get a different view. I’m sure things could have gotten better, could have gotten worse as well. But the point is, you need to revisit to improve your opinions about it.

38:17

That’s what is the difference between opinions and biases. And then to me, if you’ve been away from Java, like I’ve been away from Houston for a while, I would say take a nice drive through it. And you may have a very refreshing view as me and my wife did as we drove through Houston.

38:36

Yeah, everything evolves, everything, everything grows. So, yeah, that’s really a good point. And, you know, that’s why I like listening to you in sessions like this, but also in your technical sessions, because I get a holistic viewpoint where you’re bringing things together and and I can actually learn from them,

38:53

even though I’m not necessarily using the tool that you’re using. I can abstract the concept that you’re talking about into what I do. You know, it’s really interesting. So now you’ve been training and coding and teaching for years and years and years, and you have clients and stuff.

39:09

But now, most recently, you’re also running your own conferences now. So talk for a minute or two about that.

39:15

It’s been an exciting experience, and I’m very humbled at the amazing support I got from the community. But one of the things I really wanted to do was to be able to run a conference that brings together experts and the next generation of experts at the same time. You know, with all respect, right?

39:39

I don’t mean this as a disrespect to anybody, but I love speaking in conferences. I’m thankful, humbled when conferences invite me and say, we can come and give a talk. But I ask the question, I get invited to speak in talks today. You know, I’m marginally good. Thank you for that.

39:55

But how can we have the next generation of amazing speakers who can influence and move the world forward? When I ran Deaf2Next earlier in October of 2024, I was humbled and very thankful to have experts like Dave Thomas and Neil Ford come and give a talk.

40:18

These are names we recognize because we see them all the time in conferences. I love hearing Dave. I love hearing Neil. He’s amazing.

40:27

Yeah. They are amazing.

40:29

And I had Lisa Crispin, you know, somebody I’ve admired for a long time. Lisa came and gave a talk at the conference. I’m very thankful for her presence as well. So these are names recognized because they are experts. We’ve seen them write books. We’ve seen them give talk in conferences.

40:46

But what also excited me was when I was looking at the reviews from the talk, we had speakers who are practitioners in the industry whose name nobody has heard. I didn’t know those names. But when we opened up for open call for papers and encouraged people to say, you know,

41:08

we will pay you for your travel if you are qualified to come and speak. You don’t need to be part of a large organization or you could be, but you don’t have to wait for your boss to approve your trip. But if you are qualified, that’s the key.

41:24

We’re going to support you to come and give a talk in the conference. And we did that. And when we looked at the reviews, there were people saying, oh, my gosh, I went to this talk by this person. And here are the things I learned. It blew my mind.

41:39

Here are things I can use on Monday when I get back to work. Right. And to me, with all respect, people like me can give talks and we can influence people, and we do, but I want to give an opportunity for the next generation of those people who can inspire and educate people.

41:58

But these are the hidden gems in the world, and I want to give more opportunity for them. And that’s exactly what we’re doing this year as well, is we’re going to have a really good balance between these experienced and expert speakers. But we also want to bring in experienced practitioners who are not those well-known speakers.

42:20

but who can eventually become those well-known speakers over time. But we bring them for their technical competency. They not only gave talks, but then they spent their time in the hallway, sitting down with developers and talking about how to address their architectural concern or their particular problems.

42:42

And to me, that’s a whole point of going to a conference. You know, that’s exactly why to kind of bring this into from my conference to Java 1, that’s the reason I want to go to Java 1 as well. It’s not because I can give a talk in Java 1. I give talks everywhere.

42:58

But I get an opportunity in Java 1 to sit down with the core developers behind Java who are not these people who speak in a thousand conferences like I do, but who are the people who have their hands wet with the technology that most of us use. And so back to my conference, if you can come over,

43:20

but sit down with the person who is doing the architecture, who is driving the development behind AI in their company, and get to really sit down and talk to them about practically what they are doing, I think your time is well spent being in a conference. And that’s kind of what motivated me to create this conference.

43:39

And that’s what we’re focusing on as well.

43:41

Wow. Inspiring. That’s really inspiring. That’s really great that you’re doing that. And just to let you know, I have heard from several people who went to your conference and they really said it was very innovative. So that’s some feedback there. So that’s really cool. All right, Venkat, is there anything else that we need to talk about today?

43:59

I think we can go on for another hour, but it is two o’clock in the morning here. And do you have any final words?

44:09

Well, I really appreciate you staying late and taking the time to talk to me. I’m very humbled and grateful for that. But I want to say, you know, if there’s anyone out there kind of still thinking, should I really go to conference? Should I go to Java 1? I would say the conference is you.

44:31

It’s what you want to make out of it. It’s not the published talks or it’s not the scheduled program, even though those are important. It is the people that you’re going to meet. It is the experts. It’s the practitioners. It’s the fellow developers in the industry. And Jim, I’ll be honest about it.

44:50

I started speaking in conferences nearly approximately 25 years ago. And not only conferences, I also want to bring attention to user groups. User groups have seen less attendance over the past few years. I go to speak at about 25 user groups every year. I’ve noticed that. I’ve really noticed that. Yes.

45:16

And I attend user groups when I’m able to, when I’m in town. And I’ll tell you why, honestly, I invest my time to go to user groups and go to conferences. It’s because when I come back from a user group or a conference,

45:33

I don’t come back saying, yeah, I went there, I had the pizza and the food they gave me. No, it is things that change my thinking. I have written chapters in book because I had a conversation with somebody. I got motivated to work harder on something.

45:51

I’ve implemented a certain design ideas for my clients because I heard somebody in the hallway talk about something they do. I cannot tell you how much I learn when I go to these events. I’m selfish in that regard. I want to learn. If I’m not learning, I’m not going. And it doesn’t matter.

46:15

I was in Chicago a couple of months ago to speak in a conference. And Mary, who runs the Chicago Java user group, said, would you come and speak in the evening? I’m like, sure. And I go there. I speak in the evening. But then I spend the next hour and a half after the talk literally standing there

46:34

and talking to developers. And at 1030 in the night, we are leaving the building. And I’m like, oh, my gosh, I’m so enlightened by this hour long, hour and a half conversation because it’s given me thoughts that I want to focus on moving forward. I leave educated. And more important,

46:56

one of the things I often emphasize to people is it’s not who you know that matters. It matters who knows you. You know, it doesn’t matter, Jim, that you know me. But the fact that I know you, if somebody calls me and says, hey, we’re looking for somebody like this. Can you recommend somebody?

47:16

Honestly, I recommend people that I know. I know people from user groups I’ve been to. People have enjoyed conversation after the user group. I’ve communicated with them by email. And I refer people because I know them. So when you go to conferences, when you go to user groups, You are networking. You allow other people to know you,

47:40

which means when there are opportunities, they tend to call you. I’ll be absolutely honest about it. I’ve not done any marketing for my training or consulting in the past 25 years. Zero. And the only reason is I’ve got people call me and say, hey, one of my colleagues heard you speak.

48:01

One of my colleagues worked with you in a previous company where you did consulting. Can you come and teach us this or can you come and help us with this problem? So it’s because people know me and people know me because I go to conferences, I go to user groups. Again,

48:17

it doesn’t have to be for one thing, but I encourage more developers to go to conferences, but go to user groups. User groups cost you nothing other than your time, and they give you food, and you get to interact with people and make new friends.

48:33

I want to say the last thing on my mind is to encourage people to go out and network more and let the world know them. more than anything else. Beautiful. Beautiful.

48:44

All right, Venkat, we’ll see you in a couple of months in March, March 18th through 20th in Silicon Valley.

48:51

I look forward to seeing you there, Jim. Thank you so much. Cheers.

Richard Fichtner Previews JavaOne 2025!

Duke’s Corner Java Podcast with Richard Fichtner as he previews his upcoming session at JavaOne in March and offers his perspective on what makes JavaOne special! Go to javaone.com and register and we’ll see you there!

Interview Archive

Transcript

0:00

Richard, Richard Fischner from Germany. How are you doing, man? Welcome to Duke’s Corner.

0:03

Hey, Jim, how are you doing?

0:05

I’m doing good. I’m doing good. Hey, listen, Java 1 is coming up in Silicon Valley in March, March 18th through 20th, and I see you on the schedule, so obviously you’re going to be there. What are you talking about?

0:15

I’m going to be talking about Apache Maven. That’s the build system basically everybody uses in the Java space, and there’s a lot of quirks around Maven. and there’s a best practice talk so uh if you’re using maven check it out there is

0:28

a lot of things to learn that that we come across the last 15 years so uh yeah something you can take home and use in your day-to-day life excellent excellent

0:37

well i’ll look forward to that and i’ll be there i’m gonna be the photographer at the conference so I’ll shoot your session and we’ll hang out a little bit. So, Richard, I got one final question for you before we go. I’m just talking to developers asking about Java 1, like the culture of Java 1, so why?

0:54

Why should a developer go to Java 1? What makes Java 1 special?

0:58

So JAW1 is very special for me and I think for a lot of other people because I didn’t miss a JAW1 since 2012. So every JAW1 there was, I was there. And I kept coming back because I love the spirit there, sucking up some of this Silicon Valley vibe and talking to all the great people

1:16

behind this great technology that makes a living for me and a lot of people. And so, yeah. This is just the way to connect with tech and also with the people behind the tech. So this really speaks to me.

1:29

Excellent. Excellent. Well, I look forward to seeing you there. And anything, any final words before we go?

1:34

Yeah. Come to Java 1. Join us in the Silicon Valley and have some fun. Let’s talk. Let’s hang and talk some sweet Java tech.

Venkat Subramaniam Previews JavaOne 2025!

Duke’s Corner Podcast with Venkat Subramaniam as he previews his upcoming session at JavaOne in March and offers his perspective on what makes JavaOne special! Go to javaone.com and register and we’ll see you there!

This is just a short JavaOne preview with Venkat. Later this week we’ll release the full podcast where we cover many topics about software development — and more JavaOne too!

Interview Archive

Transcript

0:00

Venkat, Venkat Subramaniam, and welcome to Deuce Corner. Thank you, Jim. It’s a great pleasure talking to you. Yeah, it’s great to see you. Great to see you again. And looking forward to seeing you in a couple of months at Java 1. Java 1 is in California this year, and it’s March 18th through the 20th in Redwood Shores.

0:18

So I saw you on the schedule. What are you going to be talking about?

0:21

I’m super excited for two reasons. One is I’m going to give a talk on Know Your Java, where I really get into the semantics that can be very problematic if we don’t really understand really well. So in addition to giving the talk, which is extremely interactive, I am really looking forward to interacting with some amazing developers.

0:45

Java 1 fascinates me for two reasons. Not only do I get to see the core developers of the language, but I’m also going to be able to interact with Java champions, the other luminaries of Java language and practitioners of Java out in the field. So you got this three interesting groups of people merged together,

1:09

the creators of the language, the people who are experts and pushing and promoting the language, and the practitioners who are using the language as well. So you get to learn from three different perspectives, and I’m there to learn. And that’s why I’m excited to be at Java 1.

1:27

I’m honestly looking forward to it in the middle of the March.

1:32

Excellent. Excellent. I’ll definitely go to your session. I’m the photographer for the event. So I got to shoot your session. So if I’m a developer and I’m in Silicon Valley, why, why should I go to Java one? You’ve been to many Java ones. What’s special about Java one?

1:44

You get to really not only learn about the evolution of Java, but to be able to sit down and ask the questions to people who are the developers buying the language. One of the questions I often have is, why is it this way? Or what are the consequences of using this?

2:03

And again, what are the performance implications, for example? So rather than passively hearing a talk on YouTube or elsewhere, you get to not only learn, but to ask bad questions, to bring your problems, to interact. I’ve got a set of things I want to talk about to people and I’m going to bring them

2:25

and I hope others bring their questions and and topics they want to discuss as well. So so it’s a two way communication that excites me and not just a two way communication with anybody, but two way communication with relevant people who can actually give you sensible things you can actually use. That’s why I’m going to be there.

2:44

Excellent. Well, early registration is till February 10th. So that’s just right around the corner. And again, the March, March 18th through 20th. I’ll see you there. Good forward.

Ted M. Young: Java has been my Career!

Duke’s Corner Podcast with Ted M. Young from the San Francisco Bay Area about all things Java and test driven development. Ted streams his coding sessions and builds community around his passion for excellence in software development. His first JavaOne was the first JavaOne! And he’s been coding in Java ever since. His mantra is to “reduce the suffering and increase the joy of software development” and he’s made Java his career. Ted also deeply appreciates the JVM: “It’s one of the wonders of the software world.” Can’t beat that.

Interview Archive

Donald Raab: Unlimited, Untapped Resources

Duke’s Corner Podcast with Donald Raab, a Java Champion, the founder of the Eclipse Collections project, and a perfectionist who always seeks the best quality code. The conversation ran wild around all things Java and Donald’s experiences with the technology for decades. He spoke in detail about the twenty year history of the Eclipse Collections project, his interactions with engineers on OpenJDK, the OpenJDK Quality Outreach Project, and the benefits for everyone being involved with not only Java but the greater FOSS community. In fact, when talking about the community, Donald said that working with the community is like engaging “unlimited, untapped resources … you said community, well, it’s real.” Donald’s book on Eclipse Collections comes out soon too!

Interview Archive

Piotr Przybyl: The Creativity is Amazing

Duke’s Corner Podcast with Piotr Przybyl, a Java Champion and developer advocate in Poland who realized at a young age that “given enough time I could write literally everything! The creativity is amazing! I love it!” Piotr is hard core about coding and his passion for technology comes thorough in this conversation, which ranges from how Piotr embraced Java in school, how he learned more Java on his own, and how he always gives back to the Java community around the world. 

Interview Archive

Cesar Hernandez: Sharing with the Community

Duke’s Corner Podcast with Cesar Hernandez, a Java Champion, a teacher, and long time contributor to multiple Open Source projects from Guatemala. The conversation ranged from how Cesar blew up his dad’s computer to start his computer science career, teaching Java to university students, the benefits of Java technology, and participating at Java User Groups and conferences. And most importantly, Cesar talked about his passion for sharing everything he knows with the community.

Interview Archive

Monica Beckwith on her passion for the JVM

Duke’s Corner Podcast with Monica Beckwith about her love for the JVM, the importance of STEM education for women, and her experiences with the Java community around the world. Monica is a Java Champion and she’s a Java performance architect at Microsoft. She’s also worked at AMD and Sun Microsystems.

Interview Archive