43-Simon-Martinelli.txt

(00:00:00):
Hey, everybody.

(00:00:00):
How are you doing?

(00:00:01):
Welcome back.

(00:00:01):
This is Jim Grisanzio from Java Developer Relations.

(00:00:04):
And tonight, my special guest here is Simon Martinelli from Switzerland.

(00:00:09):
Simon, welcome.

(00:00:10):
Welcome to Duke’s Corner.

(00:00:11):
Yeah.

(00:00:11):
Hello, Jim.

(00:00:12):
I’m very happy to be here.

(00:00:13):
It’s great to see you here.

(00:00:16):
This is the first time we’re meeting.

(00:00:18):
I know we’ve crossed paths a lot at various conferences,

(00:00:21):
but I don’t think we’ve actually met,

(00:00:22):
but you come recommended for a conversation.

(00:00:25):
So I’m always looking for interesting people.

(00:00:27):
So let’s just start off with who you are and what you do.

(00:00:30):
Yeah, I’m a Java developer in Switzerland.

(00:00:33):
I’m…

(00:00:34):
a freelance consultant working for companies in mostly in retail wholesale industry

(00:00:42):
but also other industries like government for example i’m doing that for 15 years

(00:00:47):
already before i was working for swiss railways for a very long time that’s also

(00:00:52):
where i get in touch first time with java

(00:00:54):
So Java developer, but you’re also a Java champion.

(00:00:56):
Yeah, I became a Java champion last year.

(00:00:59):
I was very surprised.

(00:01:01):
And it’s a great honor to be in this group of amazing people.

(00:01:05):
And yeah, I’m also doing Java user group work in Switzerland.

(00:01:10):
I introduced the Java user group in Bern.

(00:01:13):
So Switzerland is a bit special about the Java user group.

(00:01:17):
We have a Java user group Switzerland, but that just covers the Swiss German speaking part.

(00:01:23):
So we also have Java user groups in the French and in the Italian speaking part.

(00:01:28):
And in the Swiss German speaking part,

(00:01:30):
we have like five Java user groups that are under an umbrella of Java user group.

(00:01:35):
But I think they started in 1997.

(00:01:37):
So it’s one of the oldest Java user group, but it was only focusing on Zurich.

(00:01:44):
And then I get in touch with them and told them why we don’t have a Java user group in Bern.

(00:01:49):
And they told me, if you organize the meetings, you can have a Java user group in Bern.

(00:01:52):
And so that’s why I started with a Java user group.

(00:01:55):
That’s really interesting.

(00:01:56):
I’ve never been to Switzerland,

(00:01:57):
so I didn’t realize there were so many different languages there,

(00:02:01):
actually,

(00:02:01):
with user groups focused on different languages.

(00:02:04):
Yeah, exactly.

(00:02:06):
Interesting.

(00:02:07):
So let’s get back to the Java Champion for a bit here.

(00:02:09):
I remember when you became a Java Champion,

(00:02:11):
because I do the facilitation on the mailing list and things like that.

(00:02:17):
And it’s always so interesting when someone becomes a Java Champion,

(00:02:21):
like you mentioned,

(00:02:22):
it’s a great honor and everyone…

(00:02:23):
You know, it was very happy and things like that.

(00:02:27):
Tell me a little bit about what it was like when you were chosen.

(00:02:30):
Were you aware that that process was even going on?

(00:02:33):
Yes, somehow.

(00:02:33):
I was talking with Gert-Jan at a conference in Antwerp.

(00:02:38):
I was at Devox in Belgium, and we had a conversation like,

(00:02:43):
an informal one and we were talking about the java champion program and so i knew a

(00:02:49):
bit that something is happening but i didn’t expect to get selected because i

(00:02:54):
always thought you have these are such amazing people you have to be someone really

(00:02:58):
special to get selected there and so it

(00:03:01):
It was a big surprise when I get to know this.

(00:03:04):
By the way, I saw it on Twitter and I saw it.

(00:03:07):
I’m also teaching at two universities in Switzerland.

(00:03:10):
I’m teaching Java, Spring Boot, architecture design, stuff like that.

(00:03:14):
And I was reading the message on Twitter when I was on the train back home after teaching.

(00:03:21):
Well, I’m the one who posted that.

(00:03:24):
So that’s actually how we first met, digitally.

(00:03:28):
Really cool.

(00:03:29):
Okay, so you become a Java champion.

(00:03:31):
Talk a little bit about the community,

(00:03:33):
because I know it’s not just discussion on the mailing list,

(00:03:37):
but you see other Java champions who are at conferences and things like that.

(00:03:42):
And it’s like 350 or so people, so it’s a pretty small group.

(00:03:45):
It’s like a community within the overall larger Java community.

(00:03:50):
And you see…

(00:03:52):
at least a certain number of these people pretty regularly at conferences and stuff.

(00:03:55):
So talk a little bit about the different personalities and your interactions with other Java developers.

(00:04:00):
Yeah, I met many of them already in the past three, four years.

(00:04:06):
I was very active at conferences.

(00:04:08):
it by the way it started during pandemic that i restarted to speak at conferences

(00:04:14):
and this was a for me in that term pandemic was a good thing because it gave me

(00:04:19):
some attention and after pandemic i continued on live conferences with real people

(00:04:26):
again and there i met many of them so i would say more or less the newer ones

(00:04:32):
Because in Europe, on many conferences, there are younger speakers than I am.

(00:04:38):
So some of them are also quite new Java champions now.

(00:04:41):
But I also have been to DevNexus in Atlanta recently.

(00:04:45):
And there we had a Java champion summit in the afternoon.

(00:04:50):
And there I met the first Java champion.

(00:04:54):
And also other Java champions I didn’t know before.

(00:04:57):
So I’m very often in the United States, but not very often talking at conferences in the United States.

(00:05:03):
So that’s why I mostly know about the European Java champions.

(00:05:07):
And yeah, I just came back from JCon conference in Cologne.

(00:05:11):
So I’ve been there the last three days.

(00:05:14):
I also met Shahar and the other people from the Java team from Oracle.

(00:05:19):
They had a booth there.

(00:05:21):
And there were also many other people

(00:05:22):
Java champions from the Netherlands, from Belgium, from Germany.

(00:05:26):
And these are the guys that I know already for quite a while,

(00:05:30):
because a lot of them are also writing in magazines.

(00:05:33):
For example, we have in the German speaking space, we still have printed magazines.

(00:05:39):
And one of the famous one is Java Magazine.

(00:05:41):
The other one is called Java Spectrum, where I’m an author usually.

(00:05:46):
or regularly and so i know a lot of people already for a very long time like adam

(00:05:51):
bean for example is also very well known in the german speaking community yeah

(00:05:58):
that’s really cool yeah i’m glad you were at jcon i spoke to richard fitchner about

(00:06:02):
the conference and we were helping to sort of promote it because oracle was a

(00:06:05):
sponsor and my team was there you mentioned char

(00:06:08):
And I heard he had a really great keynote there, community keynote.

(00:06:11):
Hopefully, I’ll get to go there someday.

(00:06:13):
So yeah, that’s really cool.

(00:06:14):
So the Java Champions, you’re a member of the Java Champions community, basically.

(00:06:20):
But the Java Champions sort of choose themselves, basically, through a voting process.

(00:06:25):
And so basically, other Java Champions choose you.

(00:06:29):
But you’re also a member of the Oracle ACE program.

(00:06:33):
Now, I used to be involved with that program years ago when I was in marketing.

(00:06:36):
So I know that it’s a little bit different, but I haven’t been involved in years.

(00:06:40):
So tell me a little bit about what’s new in the Oracle ACE program.

(00:06:44):
Yeah,

(00:06:44):
the Oracle ACE program is different from the fact that I have to submit my contributions,

(00:06:50):
and I get points for the contribution.

(00:06:52):
And if you reach a certain level of points, you will be first awarded as an Oracle ACE associate.

(00:06:59):
And then we also have the pro category.

(00:07:01):
members or the directors that are very connected then to Oracle,

(00:07:05):
to the product management group,

(00:07:07):
for example.

(00:07:08):
And yet,

(00:07:10):
I mean,

(00:07:10):
the point of the Oracle ISE program is that you can nominate yourself if you like to,

(00:07:16):
and then you can show what you do in the community.

(00:07:19):
And so you get recognized.

(00:07:21):
Also,

(00:07:21):
the difference is in the Oracle ACE program,

(00:07:24):
if you stop contributing,

(00:07:26):
you will no longer earn points.

(00:07:28):
So probably you will lose your status as an Oracle ACE.

(00:07:32):
And for me,

(00:07:33):
that’s a very fair program because the more you contribute,

(00:07:37):
the better for the community and the better for Oracle ACEs.

(00:07:41):
So how long have you been an ace?

(00:07:43):
I’m very new.

(00:07:44):
Oh, really?

(00:07:45):
Really?

(00:07:46):
Since I think that’s the first year I’m an Oracle Ace.

(00:07:50):
Okay, so both Java Champions and Oracle Ace are relatively new.

(00:07:53):
Exactly.

(00:07:54):
Because I couldn’t exactly remember who it was, but someone said, hey, why are you not an Oracle Ace?

(00:08:01):
Because you’re doing so much contribution, you will be an Oracle Ace anyway, but you have to…

(00:08:07):
or I can nominate you, and then you will be part of this program.

(00:08:11):
And so that’s how I get in touch with your Eccles program.

(00:08:15):
Yeah, I probably know about 20 or 30 or so.

(00:08:19):
I know a fair number of aces, and they’re really great people.

(00:08:22):
And I’ve done some traveling with them years ago.

(00:08:25):
And I know Jan and Gerald and the others that actually run the program there.

(00:08:30):
So that’s cool.

(00:08:31):
It’s great.

(00:08:31):
Congratulations on both of them.

(00:08:34):
You mentioned something there about contributions, and I wanted to get into this.

(00:08:38):
You mentioned contributing to the Oracle ACE program,

(00:08:41):
and obviously you had to be contributing to become a Java champion as well.

(00:08:46):
So talk a little bit about your experiences contributing just in general,

(00:08:50):
because I’m so fascinated by this topic.

(00:08:53):
concept of how communities function in the sense of large numbers of people get

(00:08:57):
together and contribute something something of value and communities work in some

(00:09:03):
way now there’s usually some sort of a scheme to organize it so it functions some

(00:09:08):
sort of governance model that community has but nothing happens unless people

(00:09:13):
contribute and i’m really really interested in your opinion on contributing in

(00:09:18):
general but some of the things that you’ve actually contributed

(00:09:21):
Yeah,

(00:09:22):
it’s a very interesting question because I was also contributing before I

(00:09:27):
contributed to the Java community when I was working in Swiss Railways because we

(00:09:32):
had like a Java board.

(00:09:34):
So we had some people from the Java community inside Swiss Railways because Swiss

(00:09:40):
Railways has quite a big Java department.

(00:09:43):
And then we did some knowledge exchange sessions.

(00:09:47):
They even have a conference where they talk about Java,

(00:09:52):
not only Java,

(00:09:52):
but also different other technologies or software development in general.

(00:09:57):
And I was part of this Java board when I was in the Swiss Railways.

(00:10:02):
And so I was used to contribute to something.

(00:10:05):
So we wrote articles.

(00:10:06):
For example, we wrote papers or we had a wiki to share knowledge.

(00:10:11):
We organized talks for them or I did talks where I shared my knowledge.

(00:10:16):
And when I left Swiss Railways like 2008,

(00:10:20):
I think,

(00:10:21):
around that time,

(00:10:22):
I continued to contribute because I was already used to that.

(00:10:26):
And also with Swiss Railways, we were contributing to open source.

(00:10:31):
For example,

(00:10:32):
we used Eclipse RCP as the platform for our UIs back when Eclipse was released,

(00:10:39):
like 2003,

(00:10:39):
2004,

(00:10:39):
2005,

(00:10:39):
around that years.

(00:10:43):
And we also contributed.

(00:10:44):
So,

(00:10:44):
for example,

(00:10:45):
there was a data table that someone at my project team was helping to improve,

(00:10:51):
and we contributed that back.

(00:10:53):
And I really can’t remember when I, the first time, did some code contribution.

(00:10:59):
I can’t even remember exactly.

(00:11:01):
Probably it was the Eclipse project as well,

(00:11:04):
or maybe it was some project,

(00:11:05):
but I can’t remember because it’s a very long time ago.

(00:11:09):
But in the meanwhile, I still contribute in different ways.

(00:11:13):
So for example, I’m a user of the Wadding framework.

(00:11:17):
I help them.

(00:11:17):
They have a forum where you can exchange knowledge with people.

(00:11:22):
People can ask questions and I help them to answer that questions.

(00:11:26):
I open, sometimes I do pull requests, sometimes I do issues.

(00:11:32):
So I really try to give something back if I use open source, for example.

(00:11:37):
So

(00:11:38):
If I use a project, I find a bug, I immediately try to find if there’s already a bug report.

(00:11:44):
And if there’s no bug report, I fill it myself.

(00:11:47):
Or even I try to fix the problem and do a pull request, for example.

(00:11:53):
That’s what I do with open source.

(00:11:55):
You mentioned Oracle.

(00:11:56):
I’m also contributing to…

(00:11:59):
Something that is a bit Java related, but it’s more related to the Oracle database.

(00:12:04):
There is a testing framework, utplsql.

(00:12:08):
I think it was originally created by Steve Feuestein from Oracle.

(00:12:13):
And they also have like a main plugin and the Java API.

(00:12:16):
And they were looking for contributors.

(00:12:19):
And so I took over the,

(00:12:21):
like I’m more or less now the lead of the contribution for the Maven and the Java API.

(00:12:27):
And so that’s, I’m getting into various projects and it’s very, very interesting and it’s helpful.

(00:12:34):
I mean, if something is missing, I can add it myself.

(00:12:37):
So that’s not possible if you have like closed source,

(00:12:40):
for example,

(00:12:41):
and that’s really a big value of open source.

(00:12:44):
So it seems like you’ve been contributing to not only Java and Oracle in terms of

(00:12:49):
the programs,

(00:12:49):
but to open source for a while.

(00:12:52):
It seems like you’ve been doing this for a long time in terms of this concept of contributing.

(00:12:56):
Yeah, I think like probably 20 years now.

(00:12:59):
Because I started with Java when I was at university.

(00:13:04):
So my career is a bit special because I started as a…

(00:13:08):
train operator at Swiss Railways back in the days.

(00:13:11):
And in the 90s, they had a shortage in software developers.

(00:13:16):
So they had programs that people who were not from software development could get

(00:13:22):
into software development by in-house training.

(00:13:26):
So I started, in fact, as a mainframe COBOL developer back in the days on IBM mainframes.

(00:13:32):
And that was like the five years, the first five years in my software development career.

(00:13:38):
And then they did some experiments with Smalltalk in the late 90s.

(00:13:42):
But because they were using IBM products,

(00:13:45):
IBM recommended to look at Java because this would be probably easier,

(00:13:51):
for example,

(00:13:52):
to connect from Java programs to mainframe legacy transactions,

(00:13:58):
for example.

(00:13:59):
And so I decided to go to university and graduate from there.

(00:14:04):
And I had to create like a thesis at the end of my studies.

(00:14:09):
And this was Java connector architecture connector for connecting the IBM mainframe

(00:14:16):
through a special protocol that was offered by the mainframe.

(00:14:20):
And so I could move from mainframe to Java, but connect both worlds.

(00:14:26):
And that was my beginning.

(00:14:27):
It was around year 2000.

(00:14:28):
And I started to contribute a few years later already because we were in a project

(00:14:35):
or I was in a project where we built the first online ticketing system for Swiss railways.

(00:14:41):
So then we didn’t have mobile phones.

(00:14:43):
So you had to print your ticket at home.

(00:14:46):
Then you could take it to the train.

(00:14:48):
You didn’t have to go to

(00:14:50):
taking vending machines anymore.

(00:14:52):
And this was in year 2003, 2002 to 2003.

(00:14:55):
And we are, we were, I think the second railway in Europe.

(00:14:59):
The first I think was the Swedish railway and we were the second doing that.

(00:15:04):
And this is a very successful project.

(00:15:07):
Very often friends that I know or if I met someone new from Swiss Railways,

(00:15:12):
they say,

(00:15:12):
hey,

(00:15:13):
I’ve seen your name somewhere in the code.

(00:15:16):
So my code from like 20 years ago is still running in production somehow.

(00:15:22):
Are there any similarities between those two careers?

(00:15:25):
That’s very funny because I was doing programming when I was a kid.

(00:15:29):
So I had the Commodore C64 at home.

(00:15:32):
So all my friends were interested in computers.

(00:15:37):
Back then and after school I was thinking what I want to do and the problem or

(00:15:43):
point was I didn’t want to go to school anymore for a long time.

(00:15:47):
So I decided to do something else.

(00:15:49):
That’s why I landed by Swiss Railways at the end.

(00:15:52):
I had friends at Swiss Railways and they said the jobs were interesting and I was

(00:15:57):
also playing with model railways back then.

(00:16:01):
And even there,

(00:16:01):
there was some kind of computer interface for the operation of the trains or the

(00:16:09):
model trains.

(00:16:10):
And so already there was a combination of the two things that I really liked to do.

(00:16:15):
And railway system or railways are a very interesting industry, by the way, because they have everything.

(00:16:21):
So at the time when I was in the IT department for Swiss Railways,

(00:16:27):
It was like 13 years, all in all.

(00:16:30):
And I get in touch with all kinds of software.

(00:16:33):
So I told you about the ticking, online ticketing system.

(00:16:37):
There was also a rail control system to operate the trains.

(00:16:40):
There were systems to do the financial management of a railway company.

(00:16:47):
And there was also freight train systems to…

(00:16:51):
calculate, for example, the weight and the timetables and stuff like that.

(00:16:57):
So it’s a very broad business model that the railway has.

(00:17:01):
So that’s the reason why I stayed a long time there.

(00:17:06):
And they also offered to move from project to project.

(00:17:09):
So you didn’t have to leave the company if you wanted to do something completely different.

(00:17:13):
You just joined another project within Swiss Railways.

(00:17:17):
And that’s something that I really liked.

(00:17:19):
I still work

(00:17:21):
Not for Swiss Railways,

(00:17:22):
but as a consultant for another railway company,

(00:17:25):
because in Switzerland we have many railway companies.

(00:17:29):
And I still can use my knowledge from my time as a train operator,

(00:17:34):
because I know how,

(00:17:36):
why a train runs and how it works.

(00:17:39):
So that’s a big advantage to know the industry very good.

(00:17:44):
That’s wild.

(00:17:44):
I mean,

(00:17:44):
a couple of things you said there that I want to comment on,

(00:17:47):
this concept of being able to do many different projects and still stay within the

(00:17:53):
same company.

(00:17:54):
That’s really amazing.

(00:17:56):
I always tell particularly young students and stuff that when you’re young in your career,

(00:18:02):
you should move around a little bit to get experience,

(00:18:04):
different environments,

(00:18:05):
different projects.

(00:18:07):
rather than just do one thing for you know 20 years you have to do 15 things but if

(00:18:12):
you can do that within a company it gives you a little bit of security but you have

(00:18:16):
the diversity of multiple projects so that’s really cool but also just listening to

(00:18:21):
your story i think it’s really interesting that trains that’s a very mission

(00:18:25):
critical thing i mean it’s its core infrastructure for a country

(00:18:29):
That’s, you know, untold millions of dollars of equipment that’s cruising down the railway.

(00:18:34):
This is a highly, highly scalable piece of machinery.

(00:18:37):
I used to be in the construction business, so I love machines.

(00:18:40):
But then also the software you’re writing is for that very same, you know, industry.

(00:18:43):
So it’s also very mission critical.

(00:18:46):
So it’s interesting to me that you sort of have stuck with mission critical things.

(00:18:51):
I mean, not trivialities, right?

(00:18:53):
You seem like a very serious person here then, right?

(00:18:56):
Yeah.

(00:18:57):
Exactly.

(00:18:58):
Yeah,

(00:18:59):
that was quite difficult also,

(00:19:02):
because when we were building the new rail control system,

(00:19:05):
so Swiss Railways doesn’t build the low-level systems.

(00:19:09):
So the operations of the train is built by Siemens as a company.

(00:19:14):
They build all the operation stuff that you have.

(00:19:19):
So in early days, it was all mechanical.

(00:19:21):
Then it went to

(00:19:23):
some electronics stuff but now it’s it’s operated by computers but the point is

(00:19:29):
that we build software on top of that so they have interfaces and there you you

(00:19:34):
have much more requirements based on the quality of the software or on the process

(00:19:41):
And so we always try to separate these kinds of systems.

(00:19:46):
So if you have systems that are just for planning,

(00:19:48):
for example,

(00:19:49):
that do not affect directly the operation of the trains,

(00:19:52):
this is completely separated from the train operation system.

(00:19:57):
But these borders or these layers, maybe they are not anymore that hard that they used to be in the past.

(00:20:07):
So because automation is very important,

(00:20:10):
like you have less people operating the trains or controlling the timetable and

(00:20:17):
stuff like that.

(00:20:19):
And so I think it’s more,

(00:20:21):
it’s also a bit more fragile,

(00:20:23):
maybe the system today,

(00:20:25):
because in the past,

(00:20:27):
if something happened,

(00:20:27):
you had a lot of people who could help to solve the problem out in the,

(00:20:31):
like every station had people were working there,

(00:20:35):
you could call them,

(00:20:36):
they could do something.

(00:20:37):
But now all the railway companies are reducing personnel out in the field.

(00:20:44):
And so all the computer systems that are used to operate the trains are becoming

(00:20:49):
much more critical,

(00:20:50):
in my opinion.

(00:20:51):
Also, there are way more trains on the tracks than we had like 20 years ago, for example.

(00:20:57):
I’m really glad I had a chance to talk to you here because I used to work at Sun on

(00:21:01):
the OpenSolaris project.

(00:21:03):
So I was around Solaris engineers for over a decade.

(00:21:07):
And kernel developers, they’re a pretty serious lot.

(00:21:11):
An operating system, Solaris is obviously a highly scalable system, runs on really big computers.

(00:21:17):
And then with Oracle,

(00:21:19):
I met a lot of database engineers,

(00:21:21):
obviously another highly scalable system running on very,

(00:21:24):
very massive computers doing

(00:21:26):
mission-critical work, and now I work in Java and I’m meeting Java engineers.

(00:21:31):
Again, this is really serious stuff.

(00:21:33):
I’m really interested in how developers like yourself handle complexity.

(00:21:41):
The time schedule on a train is actually really,

(00:21:43):
really serious when you’ve got three or four trains on the same track all running

(00:21:47):
at different speeds,

(00:21:48):
and one’s an express train and one’s a local train.

(00:21:51):
at hundreds of miles an hour sometimes here in Japan,

(00:21:54):
you know,

(00:21:54):
with the Shinkansen,

(00:21:57):
handling the complexity that not only writing the code,

(00:21:59):
but all the different infrastructure systems that just have to work and the testing involved.

(00:22:05):
I was always so fascinated with how much testing is done in software by really serious people.

(00:22:12):
And then I hear these stories and how much lack of testing takes place in other

(00:22:15):
systems and other companies and stuff.

(00:22:17):
I said, oh my God, how can that…

(00:22:19):
You know, really amazing.

(00:22:22):
So, okay, so you’ve been contributing, you’ve been doing mission-critical systems for a long time.

(00:22:27):
Let’s talk about Java a little bit.

(00:22:30):
What makes Java special?

(00:22:31):
Java’s been around for a long time,

(00:22:33):
but there’s been a lot of development along the way,

(00:22:35):
so it’s kind of always new,

(00:22:37):
right?

(00:22:39):
It’s never been stagnant ever.

(00:22:40):
And I think a lot of people are really excited about or just least interested in

(00:22:46):
the release model for the last few years has been sped up.

(00:22:49):
So you get more things out rapidly, you know, rather than every three, four years.

(00:22:55):
And I’ve also noticed in recent years,

(00:22:57):
the Java community seems to be really thriving more than it was in the recent past.

(00:23:04):
Because obviously you had the acquisition of Sun by Oracle, so a lot of change there.

(00:23:10):
So talk a little bit about Java itself, the technology.

(00:23:13):
I mean, you’ve been using it for a long time.

(00:23:15):
What’s special about it?

(00:23:16):
In my opinion, what’s special is that it’s very open.

(00:23:21):
Now,

(00:23:21):
before it was not really open to JVM or the JDK as itself,

(00:23:26):
but you had like on top the Java community process.

(00:23:30):
With all the specification, I was part of two of them.

(00:23:32):
So I was an expert group member of Java Batch because Batch is also something that

(00:23:37):
I know by heart from the mainframe time.

(00:23:40):
So it was also a good fit to be there.

(00:23:41):
That was the first one.

(00:23:42):
And the second was like money and currency specification.

(00:23:46):
So you could contribute there already.

(00:23:49):
And now it’s different because it’s open.

(00:23:52):
And as you mentioned, the release cadence that we now have with half year

(00:23:58):
releases makes it very fast.

(00:23:59):
So it’s very modern language, in my opinion.

(00:24:03):
It gets stuck a bit after the acquisition from Oracle, so it took a long time.

(00:24:09):
But now you can really see also with the preview versions, like

(00:24:13):
Every time a new version comes out,

(00:24:15):
you can check what will be new,

(00:24:17):
and you also get the information about that.

(00:24:19):
And I think that’s a very good thing because it makes it very open.

(00:24:24):
I’m also a .NET developer, so I sometimes, if my customers request it,

(00:24:30):
You can also do it in C Sharp.

(00:24:31):
But this is a very closed environment.

(00:24:34):
And if you look up something,

(00:24:38):
it’s very hard to find other people that maybe can help you or you will not find a

(00:24:44):
lot of projects that are relying on the .NET platform.

(00:24:48):
So it’s a very different way of working with that one.

(00:24:52):
And I really prefer Java because…

(00:24:56):
It’s not only open and you can contribute, but it has a very long history.

(00:25:02):
It’s very stable.

(00:25:03):
And due to the addition of new features, it’s also modern.

(00:25:06):
So there’s no excuse for not using Java.

(00:25:10):
Because in the past, maybe people were saying, yeah, Java is an old technology.

(00:25:15):
It will become third years next year.

(00:25:18):
And I don’t want to use it.

(00:25:19):
I want to use something more modern.

(00:25:21):
But if you’re looking at the other ecosystems like the JavaScript ecosystem or the

(00:25:28):
Python ecosystem,

(00:25:29):
which are probably the most used besides Java,

(00:25:32):
they are in the same age.

(00:25:34):
So these are all not new technologies.

(00:25:39):
And so I don’t think that it really matters how old something is.

(00:25:43):
It depends how modern it became or how people taking care of it.

(00:25:49):
So it’s not only about the language itself.

(00:25:52):
It’s also about all the projects you have around.

(00:25:56):
So there are plenty of open source projects you can choose from a variety of stuff.

(00:26:00):
And that’s very unique to Java, in my opinion, because in the other projects,

(00:26:06):
ecosystems, there are not so many very high quality frameworks with so many features.

(00:26:13):
So in the JavaScript community,

(00:26:14):
you have a lot of libraries,

(00:26:16):
but you don’t have very stable,

(00:26:19):
long lasting,

(00:26:20):
very well maintained frameworks on top of it.

(00:26:23):
So that’s a huge difference in my opinion.

(00:26:25):
So when you talk about, you know, Java has a very diverse community, lots of places to contribute.

(00:26:30):
Are you talking about like,

(00:26:31):
for instance,

(00:26:32):
just random projects on GitHub that are various Java things or all the different

(00:26:38):
frameworks or OpenJDK itself?

(00:26:40):
I mean, are you on the mailing lists and following things and stuff like that?

(00:26:44):
Yeah, exactly.

(00:26:46):
I used to use RSS feeds in the past, so they’re a bit gone.

(00:26:50):
So I’m more back to the mailing lists.

(00:26:53):
Sometimes I have to filter them because it’s too much information.

(00:26:56):
If you’re on mailing lists or we have Slack or Discord channels,

(00:27:01):
many different channels where you can get informed about what’s happening.

(00:27:06):
And this is sometimes a bit overwhelming.

(00:27:08):
So maybe you lose some information sometimes.

(00:27:12):
Or you get simply too much information.

(00:27:15):
So somehow you have to focus on some technologies because there are so many things

(00:27:20):
or frameworks or libraries that you could use.

(00:27:24):
So it’s very hard to follow that sometimes.

(00:27:27):
Have you contributed to OpenJDK?

(00:27:29):
No.

(00:27:30):
I contribute in form of reporting a bug, I think, but not in terms of code.

(00:27:35):
Okay.

(00:27:36):
So are there any particular features of Java that you find most helpful in your job?

(00:27:42):
I think the best or one of the best features that was introduced was the Stream API in Java 8.

(00:27:50):
Because I like the declarative way of programming,

(00:27:53):
I also like SQL because I’m doing a lot of stuff with relational databases.

(00:27:58):
And telling the computer what to do and not how to do it can be very beneficial.

(00:28:04):
In some ways, but it requires kind of rethinking how we write software.

(00:28:10):
And I think a lot of developers had problems to get into the streams because they

(00:28:15):
were used to program loops and do it in a way that they tell what should happen.

(00:28:22):
And recently there were many great additions.

(00:28:25):
So I like records because most of my applications have APIs in some way,

(00:28:31):
and they usually have immutable data structures that you want to exchange.

(00:28:34):
That’s something very good.

(00:28:36):
And they also have like additions in the language with the switch expression and

(00:28:41):
also the record pattern matching now that you can kind of destruct in the switch

(00:28:46):
expression directly to record.

(00:28:48):
And this gives you a lot of

(00:28:49):
flexibility and much more readable code.

(00:28:52):
So at JCon in Cologne, I had a talk, it was called CQRS on modern Java.

(00:29:01):
And there I was talking about the separation of commands and queries,

(00:29:04):
that it may be beneficial for the readability of the code.

(00:29:08):
And there was using modern features like the switch expression,

(00:29:11):
the records,

(00:29:12):
the pattern matching,

(00:29:14):
and stuff like that.

(00:29:15):
And this really allows to write better and simpler code, in my opinion.

(00:29:21):
Excellent.

(00:29:21):
So do you think with these new features of Java and also there’s so many really

(00:29:26):
high-end tools out there as well,

(00:29:30):
do you think it’s the modernness of Java now and other platforms,

(00:29:36):
anything that’s modern,

(00:29:38):
do you think that changes how you actually develop in terms of your thinking about

(00:29:42):
how you solve a problem or how you think of an opportunity to create a new

(00:29:47):
application or something versus…

(00:29:49):
when you were younger and first learning when you didn’t necessarily have all the

(00:29:53):
modern features that you have now and i’m particularly interested the reason i

(00:29:56):
asked the question is is a lot of a lot of young people getting into coding you

(00:30:01):
know getting into programming getting into technology and it’s a very different

(00:30:06):
world now than it was 20 years ago

(00:30:08):
Yeah, I think if I look back, when I started with Java, I think it was Java 1.2 or 1.3.

(00:30:16):
I can’t remember.

(00:30:17):
Probably it was 1.2 because I remember when the collection API was introduced.

(00:30:23):
So that was with 1.3.

(00:30:25):
And that was such a change that I remember because before we were using vectors as the collection class,

(00:30:34):
And then we had the choice.

(00:30:36):
So we really had a collection API with the different types like list,

(00:30:40):
map,

(00:30:40):
and set,

(00:30:41):
for example,

(00:30:43):
as an interface.

(00:30:43):
And we had a variety of implementation of them.

(00:30:46):
And this already made it easier.

(00:30:48):
So that’s one of the changes that I still remember.

(00:30:52):
But the biggest change was maybe not only the language.

(00:30:55):
It was more about the runtime.

(00:30:57):
So when I started using J2E back then, it was very slow.

(00:31:04):
It was slow.

(00:31:05):
It was difficult.

(00:31:06):
It was error prone.

(00:31:08):
We were slow as developers using these tools back then.

(00:31:12):
And also if we were…

(00:31:14):
creating UIs with AWT or Swing, that was also slow back in the days.

(00:31:19):
And there were so many improvements in that.

(00:31:23):
I mean,

(00:31:23):
Swing,

(00:31:24):
if you…

(00:31:24):
I mean,

(00:31:25):
one of the biggest Java applications I know,

(00:31:27):
UI-wise,

(00:31:29):
is IntelliJ,

(00:31:30):
for example,

(00:31:31):
from JetBrains or all the JetBrains products,

(00:31:33):
and they’re all made of Java.

(00:31:35):
And that was probably not possible back in the days.

(00:31:39):
And that was also the reason why IBM introduced SWT as a different…

(00:31:44):
A widget set that was based on components from the operating system to make it faster.

(00:31:49):
But that’s no longer necessary.

(00:31:51):
So that means that the JVM became much faster and also the frameworks became much simpler to use.

(00:31:58):
And we see a lot of improvements in that space as well.

(00:32:03):
And if you’re talking about starting with Java,

(00:32:05):
I think it’s easier now or we try to make it simpler because you have to know less

(00:32:12):
maybe to get started.

(00:32:14):
Also because Java is a more modern language,

(00:32:18):
that’s maybe one thing,

(00:32:20):
but also because it’s simpler to install it or to use it.

(00:32:24):
or the frameworks are kind of self-contained.

(00:32:27):
So if you look at Spring Boot,

(00:32:29):
Quarkus,

(00:32:30):
Helidion,

(00:32:31):
or Micronaut,

(00:32:32):
all these frameworks,

(00:32:33):
that makes it so simple.

(00:32:35):
You just have to add a dependency and then you can connect your application with the database.

(00:32:40):
Back in the days, we had to figure out how JDBC works, how we can create a connection.

(00:32:45):
What about connection pooling?

(00:32:46):
What about exception handling?

(00:32:49):
And these are all things that are taken away for us developers by the framework.

(00:32:55):
So I really like the concept of aspect-oriented programming.

(00:32:59):
That’s something that was also introduced in Java EE with Interceptors or is now

(00:33:03):
common with all frameworks.

(00:33:05):
frameworks,

(00:33:06):
and this makes it very easy because all the error-prone repeatable code is hidden

(00:33:12):
from you if you develop an application.

(00:33:16):
I would say nowadays it’s easier to get started.

(00:33:22):
The problem is these days you have way more technologies.

(00:33:26):
So back in the days,

(00:33:28):
we had just a database and application server and maybe or usually a messaging system,

(00:33:33):
which was usually JMS.

(00:33:35):
And that’s it.

(00:33:36):
So it was easy to use.

(00:33:38):
I also teaching at the university since 2007.

(00:33:42):
And I started with Java E teaching and later on spring and

(00:33:47):
I think this also changed because there are way more concepts or stuff that you

(00:33:52):
have to teach to the students or explain why is that or how it works.

(00:33:58):
Because back in the days, you had to do it your own.

(00:34:01):
You could look at your code and you saw what happened.

(00:34:05):
And now it’s hidden inside the framework.

(00:34:08):
And that’s also a great thing about open source, by the way.

(00:34:10):
You can look into the code.

(00:34:12):
So if you want to really know what the framework is doing, just…

(00:34:16):
clone the repo and have a look at it and play around with with that code so that’s

(00:34:21):
also something that’s very very helpful wow that’s that’s a great review of all the

(00:34:26):
different features and how it’s making programming easier now than it was years ago

(00:34:31):
i remember i i struggled with programming years ago but maybe i should give it

(00:34:35):
another you know second shot all these years later

(00:34:39):
Because I do hear people – I’ve met with a lot of students when I go to conferences.

(00:34:44):
Well, actually, recently I was in Vietnam at a conference, and I met with a lot of students.

(00:34:48):
There were 5,000 people there, and the majority of them were students.

(00:34:52):
And some of them – actually, a lot of them were learning Java.

(00:34:55):
And some of them said, oh, no, it’s great.

(00:34:58):
It’s really, it’s very powerful.

(00:34:59):
You can do all these things.

(00:35:00):
And some of them said it was hard, you know.

(00:35:02):
But I think more and more people are saying just what you’re saying.

(00:35:05):
More and more developers are saying that it’s just so much easier now.

(00:35:08):
It’s obviously easier.

(00:35:09):
It’s very easy to, you know, quantify that.

(00:35:12):
So when you’re teaching students,

(00:35:14):
have they changed over the years in terms of,

(00:35:17):
you know,

(00:35:18):
because it’s a different world now?

(00:35:20):
I see different people, different culture, but the technology has changed as well.

(00:35:24):
You mentioned,

(00:35:24):
you know,

(00:35:25):
it’s actually changed in the sense of a lot of the hard things that you had to do manually,

(00:35:28):
they’re abstracted out the tool handles that however,

(00:35:31):
there’s many more technologies.

(00:35:32):
And so things might be moving a little bit quicker now.

(00:35:36):
So what’s the delta there?

(00:35:37):
What’s the distinction in terms of the students?

(00:35:39):
Yeah, I would say I’m teaching in two different areas.

(00:35:43):
So I’m teaching in continuous education.

(00:35:46):
So that’s easier.

(00:35:46):
So we have people with experience,

(00:35:50):
at least in Java,

(00:35:51):
so they need to know already Java to get up and running with like enterprise

(00:35:56):
software development,

(00:35:56):
microservices or microservice operations and things.

(00:36:02):
And they’re very, very interested in learning something.

(00:36:06):
But I’m also teaching at the bachelor student level.

(00:36:09):
And my observation is that they cannot concentrate for that long as we probably

(00:36:16):
could 30 years ago or longer.

(00:36:18):
And that’s sometimes a problem.

(00:36:20):
So you have to find a way to teach in small slices, for example.

(00:36:26):
So you have to do a variety in teaching.

(00:36:28):
You can’t speak for an hour because they will not listen to you anymore after like 20 minutes probably.

(00:36:35):
So you have to make it more interesting for the students, maybe.

(00:36:39):
I wouldn’t say that my teaching was boring, by the way, like 50 years ago.

(00:36:44):
But it changed a bit that I’m trying to do more exercises or give them more work in

(00:36:53):
groups that they can explore things by their own and don’t have to listen to me for

(00:36:58):
too long.

(00:37:00):
And that’s something that I see.

(00:37:03):
The point is also that the level of the students is very, very different.

(00:37:08):
So the level in the interest is different.

(00:37:10):
So some of them are there because they really want to go into software development.

(00:37:16):
Others are there because they thought, why not study software engineering?

(00:37:20):
And on the other hand, there are some very talented students.

(00:37:25):
So I can tell them something.

(00:37:26):
They can do the research by their own.

(00:37:28):
They come up with the perfect solution by the end of the project, for example.

(00:37:32):
And others have way more problems to get how to do things.

(00:37:37):
But this is not different from before,

(00:37:40):
because you always had a different level of students,

(00:37:43):
different,

(00:37:44):
maybe it’s talent.

(00:37:45):
I don’t know if that exists in our industry,

(00:37:48):
but maybe it’s a curiosity of doing things or finding out how things work.

(00:37:54):
And something that changed is I do no longer text exercises because with AI and

(00:38:02):
chat GPT and all the other ways you can get information or generate information or

(00:38:08):
generate text,

(00:38:09):
it’s pointless to get a report for the students,

(00:38:13):
for example,

(00:38:14):
or a summary of the students because they just can go to the internet and do it yourself.

(00:38:19):
Yeah.

(00:38:20):
It’s more about programming,

(00:38:21):
and I also try to tell them how to search,

(00:38:26):
for example,

(00:38:26):
because I had once,

(00:38:29):
when I was in a project,

(00:38:30):
I had a teammate,

(00:38:32):
and he really had issues finding things in the internet.

(00:38:36):
So I didn’t expect that, because for me, that’s the most natural thing I do.

(00:38:40):
So I use Google and search for things.

(00:38:42):
Now I use ChatGPT and AskThere, and then I try to combine or…

(00:38:47):
to figure out if the information is correct or helpful or not.

(00:38:51):
And he had really issues.

(00:38:53):
So he had a problem.

(00:38:55):
He couldn’t even do the basic searching, in my opinion.

(00:38:58):
And the first thing that I tried to do is to teach him how to search.

(00:39:02):
And that’s one thing that I also do with the students.

(00:39:06):
I try to tell them where they will find the best information and how they have to ask.

(00:39:13):
Because asking is not only relevant if you want to talk with people or ask

(00:39:18):
something with a senior developer or a teammate or something.

(00:39:22):
It’s also important to know how to ask Google or how to ask AI these days.

(00:39:27):
And this is a skill that must be thought and that’s very important today.

(00:39:32):
I would say,

(00:39:32):
not only in software development,

(00:39:34):
in probably other professions as well,

(00:39:36):
where you do something on the computer.

(00:39:38):
It’s kind of cool you just said that, that last bit at the end there about asking how to ask.

(00:39:43):
One of the things I learned working with the Solaris engineers years ago was not to

(00:39:47):
just walk into an engineer’s office and take his time asking,

(00:39:52):
how do I do something?

(00:39:54):
Go in first, do your own work first.

(00:39:56):
Do your own research.

(00:39:58):
Try something, right?

(00:39:59):
And then go in and say, I’m working on this problem.

(00:40:02):
This is what I’ve tried here.

(00:40:03):
This didn’t work.

(00:40:04):
This bit here worked okay.

(00:40:07):
I’m a little unsure about over here.

(00:40:08):
What do you think about this?

(00:40:09):
I’ve asked this other person here.

(00:40:11):
It’s basically to go in with a whole presentation, basically, right?

(00:40:14):
You’ve done some work beforehand.

(00:40:17):
then and only then they’ll be willing to give you some time because they’re busy.

(00:40:21):
They can’t take you from A up to Z, right?

(00:40:24):
And I often tell people that.

(00:40:27):
You also said something that is really,

(00:40:29):
I don’t know,

(00:40:30):
something that I’m really trying to focus on myself is this ability to focus,

(00:40:35):
this ability to be able to concentrate for long periods of time that is so

(00:40:40):
necessary to do anything of any level of complexity,

(00:40:43):
right?

(00:40:44):
I understand that there’s new teaching models,

(00:40:46):
but working in groups and things like that,

(00:40:48):
that’s all good.

(00:40:49):
That’s all great.

(00:40:50):
And we should always implement them.

(00:40:52):
But you do need to be able to focus at length to be able to solve the most difficult problems.

(00:40:59):
And what’s really cool about that is that’s where the true value is.

(00:41:03):
Are you really going to innovate something, really going to build something really, really cool?

(00:41:06):
Because very few people can concentrate for that long to be able to solve that problem.

(00:41:11):
Yeah, exactly.

(00:41:12):
So that’s a huge benefit there.

(00:41:13):
And this is what I was telling the students when they said, oh, it’s so hard.

(00:41:17):
That’s it.

(00:41:17):
That’s okay.

(00:41:18):
That’s okay.

(00:41:19):
Keep working at it.

(00:41:20):
Try and concentrate.

(00:41:21):
Ask your teachers.

(00:41:22):
Ask your friends.

(00:41:23):
Ask the internet.

(00:41:24):
These kinds of things.

(00:41:25):
Because that ability to focus and to concentrate –

(00:41:29):
which we took for granted when we were younger.

(00:41:32):
But yeah, it’s a different world.

(00:41:33):
Everyone’s time is split with just microseconds now.

(00:41:37):
The point about asking maybe,

(00:41:38):
if I can add that,

(00:41:40):
is when I was a young developer,

(00:41:42):
I really tried first by myself.

(00:41:46):
And then I went to my team lead or someone else.

(00:41:50):
And also later on, I did that.

(00:41:52):
So because I was afraid to ask someone in the community…

(00:41:58):
they say oh no what a stupid question or why do you asking that read the manual for

(00:42:05):
example as an answer was very exactly yeah I was afraid of that so I really did it

(00:42:10):
very hard to do that myself by the way when I started there was no internet so we

(00:42:15):
had the IBM manuals back in the days and the IBM manuals were in an office you have

(00:42:20):
to go there and

(00:42:21):
Grab it if you want to have that.

(00:42:23):
Or it was on the mainframe, by the way, also electronically.

(00:42:26):
But in this office, there were two guys.

(00:42:28):
They were the system administrators of the mainframe computers of Swiss Railways.

(00:42:34):
And you had to be very well prepared to ask them something.

(00:42:39):
And now I’m helping people on forum or on Stack Overflow.

(00:42:42):
And usually you get so few information what they’re asking.

(00:42:46):
So they ask like, I tried that, it doesn’t work.

(00:42:49):
But they don’t explain what they tried or they don’t explain.

(00:42:54):
At least what’s also very important is you should,

(00:42:57):
if you ask,

(00:42:57):
you should not only explain your problem,

(00:43:00):
you should explain what you’re trying to achieve.

(00:43:02):
Because sometimes you’re simply doing it wrong or you’re on the wrong way.

(00:43:07):
and then other people can help you to go back to the right way and do it like that.

(00:43:12):
Mostly it will be more simple or it will just work because maybe you went to the wrong direction.

(00:43:20):
It seems like a really valuable skill to have, even just filing a bug report.

(00:43:24):
I mean,

(00:43:24):
I remember talking to engineers and having them just explain how happy they were

(00:43:29):
when somebody in the community found a bug and they just gave such detail.

(00:43:34):
And then submitted some code as well, you know, with an actual, you know, potential solution for it.

(00:43:39):
But the thing that they always commented on was their,

(00:43:42):
you know,

(00:43:42):
the amount of detail in the bug report that was so appreciated,

(00:43:46):
not just X and Y and Z didn’t work in this situation,

(00:43:49):
right?

(00:43:49):
It’s not enough, right?

(00:43:51):
Again, that is a huge contribution, that bug report.

(00:43:54):
And the more detail that you can provide, the more likely it’s going to get changed.

(00:43:59):
And you can get a substantial amount of credibility for that.

(00:44:02):
I mean, that’s a skill.

(00:44:03):
That’s an absolute skill.

(00:44:05):
And you save so much time for the developers if you can get them.

(00:44:09):
Right.

(00:44:10):
or because they exactly know what to do otherwise they have to reproduce your

(00:44:14):
problem that takes a lot of time for them and so often this they can’t do it

(00:44:19):
because they don’t have enough time right and if it’s an open source project where

(00:44:24):
most of the people are kind of volunteers working so it’s a very valuable time that

(00:44:29):
you can save if you get a good bug report yeah

(00:44:33):
So it seems like you really love to teach.

(00:44:35):
Yeah, I do.

(00:44:37):
It was by chance.

(00:44:39):
So I was working at Swiss Railways, as I said.

(00:44:42):
And we had a teacher or a professor there who was working.

(00:44:46):
And he was asked by the school if he knows someone from his school.

(00:44:52):
community or his teammates, maybe, who would like to teach.

(00:44:57):
And it was about JPA, so Java Persistence API that just came out.

(00:45:02):
And I was responsible at Swiss Railways for the ORMapper tool, TopLink, and later EclipseLink.

(00:45:10):
That was the reference implementation of JPA.

(00:45:12):
And so he knew me by chance.

(00:45:15):
And so I get into the

(00:45:18):
By the way, I’m teaching at the same school where I was a student myself.

(00:45:23):
And as I said, I was teaching about, I was doing my thesis about the Java community architecture.

(00:45:29):
I was already teaching about that.

(00:45:32):
So they had like, it was just a few hours in the beginning, like that’s more than 20 years ago already.

(00:45:39):
And now since 2007, I teach in multiple classes at two universities.

(00:45:47):
And yes, that’s

(00:45:48):
a great thing because the best thing about teaching is you have to understand it by yourself.

(00:45:54):
So I don’t know who that said, but you can’t explain it if you don’t understand it yourself.

(00:46:02):
And on the other hand,

(00:46:03):
you have to be always at the latest version of a framework or at the Java language.

(00:46:10):
So you have to anticipate changes that you know where it is leading

(00:46:16):
with the development,

(00:46:17):
for example,

(00:46:18):
because often students want to know,

(00:46:19):
okay,

(00:46:20):
are there any changes in the future,

(00:46:22):
for example?

(00:46:23):
And so you’re always up to date.

(00:46:26):
That’s the great thing about teaching.

(00:46:28):
That’s really great.

(00:46:30):
Great sentiment right there.

(00:46:31):
Thank you very much for that.

(00:46:32):
All right.

(00:46:33):
Well, Simon, this has been a fantastic conversation.

(00:46:35):
I’m really happy I met you.

(00:46:36):
Hopefully get to meet you live instead of on Zoom, a digital framework here.

(00:46:43):
Maybe if I get to a conference or two in Europe,

(00:46:46):
it’d be great to sit down and have a couple of glasses of wine or some beer.

(00:46:51):
or some coffee.

(00:46:53):
And so do you have, is there anything I didn’t ask you that I should have?

(00:46:56):
Is there anything that you want to leave us with in terms of wrapping up?

(00:47:00):
No, I think we talked about a lot of things.

(00:47:04):
Yeah, that’s great.

(00:47:05):
Cool.

(00:47:05):
All right.

(00:47:06):
Well, thank you very much.

(00:47:07):
And I will hopefully see you live sometime soon.

(00:47:11):
Thank you, Simon Martinelli.

(00:47:12):
Yeah.

(00:47:13):
Thank you very much for having me.

(00:47:14):
It was a big pleasure speaking with you.