81-intellij-idea.txt

Marit van Dijk and Anton Arhipov: 25 Years of IntelliJ IDEA
Jim Grisanzio, Host, Duke’s Corner Java Podcast

This is the second in a short series of speaker profiles for JavaOne 2026 in Redwood Shores, California, March 17-19. Get early bird pricing until February 9, and for a limited time, take advantage of a $100 discount by using this code at checkout: J12026IJN100.

JavaOne: Register | Sessions

In this conversation, Jim Grisanzio from Java Developer Relations talks with developer advocates Marit van Dijk and Anton Arhipov from JetBrains about the 25th anniversary of IntelliJ IDEA, the latest features of the IDE, Anton’s upcoming session at JavaOne in March, and their perspectives on JavaOne as the premier conference for Java developers.

25 Years of IntelliJ IDEA

Just as Java turned 30 this year, IntelliJ IDEA is now 25 years young! Not every technology survives that long, and even fewer thrive while doing it. But both Java and IntelliJ IDEA are doing just that. The secret to this longevity for IntelliJ IDEA, according to Marit van Dijk and Anton Arhipov, comes down to something simple but demanding — staying current with the Java ecosystem and engaging the massive Java development community around the world. The main reason for their success is the huge effort engineered into the platform to produce the technologies that developers need while at the same time staying with all the bleeding edge stuff happening inside the Java community.

This commitment reaches beyond just supporting new Java versions. The IntelliJ IDEA team works on preview features even though specifications sometimes change during the preview process. When Oracle moved to a six-month release cycle for OpenJDK about eight years ago, IntelliJ adapted smoothly since their teams were already involved with the OpenJDK community. Marit says that new release cycle actually streamlined their work. They already knew about preview features and could start developing support upfront, not at the very last moment. This let them iterate alongside the community rather than chasing after it.

The company also collaborates directly with other community members — such as framework developers, build tool teams at Maven and Gradle, and even Google — to implement best practices straight into the IDE. Maven 4 is not even released yet, but IntelliJ already has support ready with migration features to help developers make the transition. Anton says that this effort means that support is not only working with the new version of a technology but also being smart about how you use it. The IDE catches outdated patterns and deprecated APIs and also offers quick fixes to migrate code with a single keystroke.

First and Lasting Impressions

Both Marit and Anton started working at JetBrains years after they had already become devoted IntelliJ users. Their first impressions of the IDE moved them deeply and remain with them today.

For Anton, his first reaction to using IntelliJ IDEA was immediate. “In one word, wow, this is smart. This is an IDE that understands code.” That intelligence in the software became the foundation of his relationship with the technology.

Marit had a similar experience when she switched to IntelliJ IDEA. She had used other IDEs before and they were perfectly fine, but IntelliJ seemed different. “I found that it was actively helpful with the code inspections and quick fixes and helping me when my code didn’t compile or preventing me from making mistakes. And I was sad that I didn’t switch earlier, like years earlier. And I’ve been raving about it ever since. And now they pay me to do that. So, you know, everybody wins.”

AI and the Future of Development

As usual in these conversation, we turned to artificial intelligence and its growing role in software development. Anton will explore this topic in depth at his JavaOne session titled “Spec-Driven Development With AI Agents: From High-Level Requirements to Working Software.” Everyone knows that the AI landscape is changing fast, but things are actually getting simpler, Anton says. Developers can now get better results with less effort and less complex workflows using AI agents. Models are improving at guessing developer intent and reducing the need for careful constraint-heavy prompting.

But Anton sets realistic expectations about AI. When asked whether his session targets junior or senior developers, he says that “we are all juniors in this regard.” The field is so new that nobody can claim years of expertise with AI development tools.

Marit emphasizes another crucial principle about AI-generated code. “You are still responsible for the code,” whether you write it or an agent writes it. It has your name on it. AI does not diminish developer accountability or the need for developers to remain highly skilled in their craft.

Anton adds another dimension about integrating AI with development tools. “AI without the IDE is kind of unreliable, but the IDE without AI is unproductive.” The key, he says, is to fuse these things together leveraging the benefits of both for better productivity. The context the IDE provides and its understanding of your project structure and dependencies makes AI suggestions more relevant and actionable.

JavaOne: Where the Community Comes Together

Anton will be presenting at JavaOne 2026 in March, and both he and Marit shared their perspectives on what makes the conference special.

For Marit, JavaOne has always been unique. The “who’s who of Java” will be there, she says. Last year’s conference-ending “Meet the Architects” panel particularly stood out. The audience could ask Oracle Java architects basically everything about Java for over an hour. This kind of access to the core engineers building and shaping the future of the language is something you would not normally get at any other conference.

Anton shares his view that JavaOne has always been the conference to get all the news about Java. He has always viewed the event as the place where you get condensed information about what’s going on with Java all in one place — the language, the platform, the standards, the frameworks, and the community.

Community and Looking Forward

Marit and Anton maintain close relationships with the developer community through conferences and Java User Groups. Marit says that they have many JUGs in the Netherlands, and many of them invite her to come and speak at their meetups throughout the year. Also, when they travel somewhere for a conference, they look for opportunities to combine that trip with local JUGs to speak there and connect with people. This direct engagement with the open Java community lets Marit and Anton talk to developers directly, see how they can help them better, understand what developers are struggling with, and take that feedback back to the engineering teams. The same authenticity extends to how JetBrains approaches IntelliJ development. The engineering team maintains close relationships with framework developers and library maintainers and OpenJDK to ensure that when new versions release, IntelliJ users have good support from day one.

As IntelliJ IDEA celebrates 25 years, the development continues. They keep releasing new features with every version: the Spring Debugger that helps developers understand their Spring projects at runtime, Command Completion that enables developers to perform commands without memorizing shortcuts, and more. The anniversary celebrations for the teams have included parties with cakes featuring old logos, a game plugin that lets developers play video games while AI generates their code, and social media campaigns engaging the global community. For developers curious about IntelliJ IDEA, Marit and Anton encourage people to subscribe to the JetBrains YouTube channel where they regularly produce videos explaining new features.

This 25-year milestone represents more than just history. It represents an ongoing commitment to understand code, support developers, build the Java community, and evolve alongside the entire ecosystem. This pattern is pervasive among Java developers and also the many companies offering developers advanced tools. The smart IDE that so impressed Anton and Marit years ago continues to get smarter — right along with many other tools and technologies that are growing as a result of the Java platform itself.

Anton Arhipov: X , BlueSky, Linkedin

Marit van Dijk: Website, Linkedin, BlueSky, X

Jim Grisanzio: X, Linkedin

Duke’s Corner Java Podcast: Libsyn

Oracle Java Developer Relations: Inside.java, Dev.Java, Learn.java

Specific Topics Discussed: IntelliJ IDEA 25th Birthday, The Java Dukes, What’s new in IntelliJ IDEA 2025.3, Spring Debugger, Command Completion

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

(00:00:00):
Welcome back.

(00:00:01):
This is Jim Grzanzio from Java Developer Relations,

(00:00:04):
and this is Duke’s Corner,

(00:00:05):
and we are here to talk about the 25th anniversary of IntelliJ IDEA.

(00:00:12):
And I have some two great engineers here, Marit van Dyck and Anton Arihipov.

(00:00:18):
Hello.

(00:00:19):
Hello.

(00:00:19):
Greetings.

(00:00:20):
Anton, how was that name?

(00:00:21):
Was that name okay?

(00:00:23):
It was 99% of the time, but yes.

(00:00:27):
Good one, good one.

(00:00:28):
It’s good enough for me.

(00:00:30):
All right.

(00:00:30):
So yeah, this is really cool.

(00:00:32):
So IntelliJ idea, every conference I go to, everyone talks about IntelliJ.

(00:00:39):
And I always say, what is IntelliJ?

(00:00:41):
Everybody uses it, right?

(00:00:43):
And so I was not aware.

(00:00:45):
that it’s been around for a long time, 25 years this year, and you guys are celebrating that.

(00:00:51):
So let’s talk about why IntelliJ idea is really cool and it’s lasted so long.

(00:00:57):
Not only it’s just lasted, but it’s been thriving for so long.

(00:01:01):
Well, so IntelliJ is 25 years old this year, which of course we’re celebrating.

(00:01:07):
We had some parties at the office with cakes and old logos on the cakes and

(00:01:13):
champagne and things.

(00:01:14):
But also we have, of course, a social media campaign.

(00:01:18):
Our friend Alex Chatsy-Sacharias actually built a game that you can play inside IntelliJ IDEA.

(00:01:25):
It’s a plugin that you can install.

(00:01:27):
So, you know, you can play a video game while Junie is generating your code, for example.

(00:01:34):
What else, Anton?

(00:01:35):
We had a photo booth at the landing page of the celebration that was prepared for

(00:01:41):
this event where people could upload their photos or take photos from the front

(00:01:48):
camera and get the augmented version of,

(00:01:52):
I don’t know,

(00:01:52):
the image with,

(00:01:53):
I don’t know,

(00:01:54):
is it a template or is there some AI behind it,

(00:01:57):
how it fuses all that,

(00:01:59):
but the outcomes are pretty nice.

(00:02:01):
Yep.

(00:02:01):
And lots of people posted those as well.

(00:02:03):
We had a campaign with the IntelliJ idea 25 hashtag for people to post.

(00:02:09):
I think they could win prizes.

(00:02:10):
I’m not exactly sure about the details.

(00:02:13):
And I saw the website.

(00:02:14):
The website looks really cool.

(00:02:15):
It’s really interactive.

(00:02:17):
Yep.

(00:02:17):
Excellent.

(00:02:18):
Okay, so on to a serious matter, you know, it’s a really good application.

(00:02:22):
Why is it has been thriving for so long?

(00:02:25):
I think the main reason is the huge effort put into the platform,

(00:02:31):
the technologies,

(00:02:32):
trying to stay in current with all the bleeding edge stuff that is happening inside

(00:02:38):
the Java ecosystem.

(00:02:40):
Well, starting from the JVM ending with application frameworks.

(00:02:45):
Yeah,

(00:02:45):
so we make sure that we support all of the latest Java language versions,

(00:02:50):
of course,

(00:02:51):
sometimes also preview features,

(00:02:55):
which is work for us to make sure that we support those features.

(00:03:00):
And also if things change,

(00:03:01):
then we also have to make changes,

(00:03:04):
you know,

(00:03:04):
in the in the preview JEPs,

(00:03:06):
staying up to date with the entire ecosystem.

(00:03:08):
So in the last release, we

(00:03:11):
also have support for the latest Spring Boot 4, Spring Framework 7, JSpecify.

(00:03:18):
We already have Maven 4 support,

(00:03:20):
even though we’re still waiting for the Maven 4 GA to actually come out.

(00:03:27):
So IntelliJ has grown alongside the ecosystem for those 25 years.

(00:03:33):
So I guess about eight years ago, Oracle switched to a six-month release cycle for OpenJDK.

(00:03:40):
Obviously, you guys had to adapt to that.

(00:03:43):
Was that as seamless as it was for Oracle to move to that?

(00:03:46):
Well,

(00:03:47):
I think it’s better to ask the engineers,

(00:03:49):
but looking from the side,

(00:03:51):
it actually,

(00:03:51):
I think,

(00:03:52):
didn’t change too much the flow,

(00:03:54):
how the team was developing the features for the language support,

(00:03:58):
because they were always keen on when the new version of Java is released,

(00:04:04):
then we already would have those features.

(00:04:07):
So

(00:04:07):
In fact, I think it streamlines the process for us even like that.

(00:04:12):
Well, there are preview features.

(00:04:14):
We know about them.

(00:04:15):
We start developing support upfront,

(00:04:19):
not at the very last moment,

(00:04:21):
and then we can iterate,

(00:04:22):
right?

(00:04:23):
So you’re sort of involved with the community,

(00:04:25):
so you know things are coming out,

(00:04:27):
you’re testing,

(00:04:28):
and things like this,

(00:04:29):
right?

(00:04:29):
Yeah.

(00:04:30):
And this is exactly the process that we are trying to establish with other

(00:04:34):
ecosystem projects like Spring Framework and other frameworks as well,

(00:04:39):
so that we provide good experience for the users who use those frameworks from day

(00:04:45):
one when the features are released.

(00:04:48):
Exactly.

(00:04:48):
So the same for Maven.

(00:04:50):
We know that it might be coming soon.

(00:04:53):
So we already have support.

(00:04:54):
We make sure that you can run your projects with Maven 4.

(00:04:57):
We have some features that can help you migrate to Maven 4 once it’s out.

(00:05:02):
We collaborate with Gradle as well to improve the experience for editing build

(00:05:07):
files in IntelliJ IDEA.

(00:05:09):
and implementing inspections and quick fixes for best practices for Gradle.

(00:05:14):
Gradle is writing a best practices documentation alongside Google or in

(00:05:21):
collaboration with Google and us.

(00:05:24):
And we’re implementing those as inspections in IntelliJ IDEA to make it easier to

(00:05:29):
work with Gradle in IntelliJ IDEA,

(00:05:31):
for example.

(00:05:32):
Yeah,

(00:05:32):
so support means not only just,

(00:05:34):
you know,

(00:05:35):
working,

(00:05:36):
being able to work with the new version of technology,

(00:05:38):
but also being smart about how you use it.

(00:05:41):
Like,

(00:05:42):
oh,

(00:05:42):
you are doing something wrong and not in the best practice way or the old way,

(00:05:46):
which is deprecated.

(00:05:47):
Then the IDE would help you with one case stroke to migrate whatever is written in

(00:05:52):
the file into the new API or dialect or whatever it is.

(00:05:57):
And similarly,

(00:05:58):
we have inspections and quick fixes,

(00:06:00):
for example,

(00:06:01):
to upgrade from older Java language idioms to newer language features like a class

(00:06:07):
to a record or to a compact source file and things like that.

(00:06:12):
It sounds like a lot of moving parts to keep you current with all the different

(00:06:16):
applications and libraries and frameworks and the language and the JVM.

(00:06:21):
I mean, to keep current with everything.

(00:06:23):
It’s not boring.

(00:06:25):
It’s a lot of fun.

(00:06:27):
So how long have you guys been at JetBrains working specifically with IntelliJ IDEA?

(00:06:33):
From the beginning?

(00:06:34):
No, it happened much later.

(00:06:38):
We started using IntelliJ long before we actually joined the company.

(00:06:43):
Oh, I see.

(00:06:43):
Yeah, I joined in 2018, but I am the user since 2004.

(00:06:48):
So what did you think about it?

(00:06:50):
What was your first impression of it way back then?

(00:06:53):
In one word, wow, this is smart.

(00:06:56):
Because that was the first IDE to start automating the refactorings.

(00:07:00):
And wow, it was the first IDE to automate the extract method refactoring.

(00:07:06):
Well,

(00:07:06):
at that time when I started using the IDE,

(00:07:09):
it was much more than just one refactoring already.

(00:07:12):
And compared to what else was there on the market,

(00:07:17):
it was definitely the IDE that understood the code.

(00:07:20):
So the experience you had in terms of, oh, this is smart.

(00:07:24):
I mean, that really, it kind of sells the name, right?

(00:07:29):
Yep.

(00:07:30):
Intelligent IntelliJ.

(00:07:32):
So I came to both IntelliJ and JetBrains a little bit later than Anton.

(00:07:37):
I don’t think I’ll catch up.

(00:07:39):
I started using IntelliJ in 2017.

(00:07:43):
and joined JetBrains in mid 2022.

(00:07:47):
But I also remember like I’d used other IDEs before and they were,

(00:07:51):
you know,

(00:07:51):
perfectly fine that the other ones that were on the market at the time,

(00:07:55):
like didn’t get in my way,

(00:07:56):
let me do my coding.

(00:07:57):
And then I started using IntelliJ IDEA and I found that it was like actively

(00:08:01):
helpful with the code inspections and quick fixes and,

(00:08:05):
you know,

(00:08:05):
helping me when my code didn’t compile or

(00:08:08):
you know, preventing me from making mistakes.

(00:08:11):
And I was sad that I didn’t switch earlier, like years earlier.

(00:08:16):
And, you know, I’ve been raving about it ever since.

(00:08:18):
And now they pay me to do that.

(00:08:20):
So, you know, everybody wins.

(00:08:21):
Well, that’s a great position to be in.

(00:08:24):
So I guess the question I have now is,

(00:08:26):
because I’m really interested in tools in general for how humans,

(00:08:30):
you know,

(00:08:30):
smart people use any kind of a tool in life to do something really interesting.

(00:08:35):
That process fascinates me.

(00:08:37):
I used to be in the construction business,

(00:08:39):
so I know the old hardware tools,

(00:08:41):
strictly hardware,

(00:08:42):
right?

(00:08:43):
But over the years,

(00:08:45):
as the technology in these applications really,

(00:08:48):
really advances,

(00:08:49):
has that changed the way you write software?

(00:08:52):
Has it changed you as a coder?

(00:08:54):
Well, IntelliJ IDEA has lots of smart things like code completion.

(00:08:59):
So obviously,

(00:09:00):
you know,

(00:09:01):
if you’re writing code by yourself in a plain text editor,

(00:09:04):
you know,

(00:09:04):
the way that they make you start at university.

(00:09:07):
Exactly.

(00:09:07):
Notepad or an equivalent and you compile it on the command line yourself,

(00:09:12):
then you have to know the API and everything.

(00:09:14):
And you have to know exactly what to type.

(00:09:17):
Obviously,

(00:09:17):
IntelliJ has code completion,

(00:09:19):
so you don’t need to know all of the methods you can call on a particular class.

(00:09:24):
IntelliJ will let you know.

(00:09:26):
But it has so many more ways to help you write the code,

(00:09:31):
from code generation to,

(00:09:33):
of course,

(00:09:34):
AI,

(00:09:34):
things that can help you,

(00:09:36):
but also lots of ways that it can help you understand your project and easily

(00:09:41):
navigate your code and

(00:09:43):
when you’re working on an actual real life project, writing code is only part of that.

(00:09:48):
You have to understand the application and know where to make the changes that you want.

(00:09:54):
how to make it fit within the context that you’re working in,

(00:09:57):
IntelliJ can really help with that as well.

(00:10:00):
And even finding the right place in the project sometimes is a challenge.

(00:10:04):
So this is something that our engineers,

(00:10:07):
I think,

(00:10:08):
because they have to work on the IntelliJ code base,

(00:10:12):
which is 22 million lines of code.

(00:10:15):
So IntelliJ is developed inside IntelliJ, obviously.

(00:10:19):
And therefore, they have those, let’s say, challenges with the code that they have to solve.

(00:10:25):
And they are trying to adopt the IDE or develop the features in the IDE that would

(00:10:30):
help them with the task.

(00:10:32):
There are actual features that were developed for them to work on the code base

(00:10:39):
that were then added to IntelliJ IDEA’s features as well.

(00:10:44):
Which I think is really interesting.

(00:10:46):
That’s really amazing.

(00:10:47):
I was going to say 22 million lines of code.

(00:10:50):
I remember when we open sourced Solaris, the kernel at the time, this is 2005.

(00:10:56):
The kernel was like 10 million lines of code.

(00:10:59):
That was the Solaris kernel.

(00:11:01):
But this is 2005.

(00:11:01):
So that’s 20 years ago.

(00:11:02):
My goodness.

(00:11:05):
Wow.

(00:11:05):
Amazing.

(00:11:06):
Let’s talk a little bit about the IntelliJ community,

(00:11:10):
because obviously this product came out years ago into the Java community

(00:11:15):
developed.

(00:11:16):
So the Java community was large and growing and developers needed a tool.

(00:11:21):
Your company solved some problems and built a product and it’s been growing ever since, right?

(00:11:26):
Great.

(00:11:27):
I’m really interested in that process because,

(00:11:29):
you know,

(00:11:30):
Sun at the time was building the Java community and it was growing and then

(00:11:34):
companies come in and create products that developers can use.

(00:11:39):
And there’s also an open source version.

(00:11:40):
Right.

(00:11:41):
So you have one download now,

(00:11:42):
but you have the enterprise version and the open source version,

(00:11:46):
I guess,

(00:11:46):
the community version.

(00:11:47):
Right.

(00:11:48):
Is that how it works?

(00:11:49):
So it’s one single distribution that you can use either with or without the

(00:11:55):
ultimate subscription.

(00:11:56):
But the code base itself is the same.

(00:11:59):
If you have a subscription, that activates additional features.

(00:12:03):
But you can always use a 30-day free trial if you want to try out those ultimate

(00:12:09):
features and see what you might be missing.

(00:12:11):
Yeah, but the platform and most of the plugins are open source.

(00:12:15):
The whole source is on GitHub.

(00:12:17):
We know that some projects that we’re building on top of that,

(00:12:21):
they’re versions of the IEDs or their projects.

(00:12:24):
And it’s actually helpful for the plugin developers as well because it’s the

(00:12:28):
platform with the plugins.

(00:12:32):
How many plugins are available?

(00:12:34):
Oh, it’s an interesting question.

(00:12:38):
A lot?

(00:12:38):
We can try looking it up.

(00:12:41):
The marketplace.

(00:12:43):
Yeah, but the marketplace does not display the total.

(00:12:46):
It’s a big number.

(00:12:47):
It’s a big number.

(00:12:48):
There are plugins for any taste.

(00:12:51):
I see.

(00:12:53):
So would you say that the plugins,

(00:12:55):
in terms of customization for each developer,

(00:12:58):
that is a viable marketplace community in and of itself?

(00:13:02):
yeah there are commercial plugins as well so that we since the marketplace offers

(00:13:07):
the features for the plugin developers who don’t have the ability to run their own

(00:13:11):
services for billing selling the plugins then we provide that as well but otherwise

(00:13:18):
the vast majority of the plugins that we have on the marketplace are free plugins

(00:13:25):
that everybody can install depending on the id

(00:13:28):
the configuration,

(00:13:29):
the capabilities,

(00:13:30):
and I don’t know,

(00:13:32):
taste preferences,

(00:13:33):
what you actually need.

(00:13:35):
So some people like all the braces to be colored in different colors.

(00:13:40):
So there’s a Rainbow Braces plugin.

(00:13:44):
I don’t know if it’s paid or not, but I know it exists.

(00:13:47):
Or some people like the different progress bar.

(00:13:50):
So there is a Neon Cat progress bar that is colorful and playful,

(00:13:55):
and some people just like it for the appearance.

(00:13:59):
But this is what fascinates me is we have this concept of building an open source

(00:14:04):
community where developers come together.

(00:14:06):
They share code.

(00:14:07):
They contribute to code.

(00:14:09):
This large ecosystem develops.

(00:14:11):
Corporations come in or even get started within the community, right?

(00:14:15):
And they grow.

(00:14:16):
They have products.

(00:14:17):
Some are open.

(00:14:18):
Some are closed.

(00:14:18):
But there’s this whole sort of ecosystem that’s all based around.

(00:14:22):
And then Java,

(00:14:23):
obviously,

(00:14:23):
is open source,

(00:14:25):
which is obviously the core language that supports all this stuff.

(00:14:28):
And that whole ecosystem and you get,

(00:14:30):
you know,

(00:14:31):
hundreds of thousands,

(00:14:32):
millions,

(00:14:32):
I guess,

(00:14:33):
people who are employed making money and contributing software as well.

(00:14:38):
So and I think I think that whole concept of the economic model is really, really fascinating.

(00:14:44):
So it just leads me to this question.

(00:14:47):
How do you interact with the community?

(00:14:49):
I mean, I know you’re both out there doing stuff.

(00:14:52):
sessions at conferences, you’ll be at Java One, JetBanes will be sponsoring Java One.

(00:14:56):
So talk a little bit about the community interaction with your developers.

(00:15:00):
So both Anton and myself speak at quite a lot of conferences,

(00:15:05):
mostly around Europe,

(00:15:06):
but also in the US and other continents occasionally.

(00:15:10):
So for me anyway, that’s also where I meet a lot of other people, other developers.

(00:15:17):
I hope I’m approachable for people to come and ask me stuff.

(00:15:21):
And since people do, I think I am.

(00:15:24):
So,

(00:15:24):
you know,

(00:15:24):
either from people who work at other companies,

(00:15:27):
they come and ask me stuff about IntelliJ IDEA or sometimes because they have met

(00:15:32):
me somewhere or know me from somewhere,

(00:15:35):
they will send me messages with questions or problems that they might have.

(00:15:39):
that I then try to help them with.

(00:15:42):
Sometimes I know the answer.

(00:15:44):
Sometimes I get to learn something new as well.

(00:15:46):
So never a boring day.

(00:15:49):
We try to speak at meetups as well.

(00:15:51):
We have many, many jugs in the Netherlands, for example.

(00:15:55):
Yes, I’m aware of that.

(00:15:57):
Some invite me to come speak at their jugs as well.

(00:16:01):
Or if we travel somewhere, we see if we can combine that.

(00:16:06):
If we travel somewhere for a conference,

(00:16:07):
for example,

(00:16:08):
we see if we can combine that with local jugs to speak there as well and connect

(00:16:12):
with people and just talk to developers,

(00:16:15):
see how we can help them better.

(00:16:17):
what they’re struggling with,

(00:16:18):
take back any feedback that they might have and discuss that with the product

(00:16:22):
teams.

(00:16:22):
Indeed, and we can add some social media channels to that as well.

(00:16:26):
We try to be reachable and open so that if people know where they can ask the

(00:16:33):
question,

(00:16:33):
they could come and ask.

(00:16:34):
Yep, or someone will tag us if it’s an IntelliJ idea topic.

(00:16:39):
Someone might tag us so that we can help.

(00:16:42):
Even if you don’t know the answer, we could go and find someone who knows the answer.

(00:16:46):
Exactly.

(00:16:47):
So the name of the product itself, IntelliJ, right?

(00:16:53):
Talk a little bit about AI and some of the features there that you have,

(00:16:57):
but also the general concept of how AI is…

(00:17:01):
not only affecting the IDE, but also you as developers.

(00:17:06):
It’s not a new thing anymore,

(00:17:09):
but I think people are a little bit calmer now than they were maybe six months ago

(00:17:15):
or so,

(00:17:16):
that it’s not as perfect yet as people thought initially.

(00:17:19):
It’s just my impression.

(00:17:21):
Talk a little bit about AI and what you guys are experiencing.

(00:17:24):
Well, it’s a great pace at which it develops right now and how the features are being added.

(00:17:32):
I think if we start from the basics,

(00:17:35):
it’s the most obvious thing that was kind of visible a couple of years ago is that

(00:17:41):
AI could offer more intelligent kind of completions when you write the code so that

(00:17:47):
it can work.

(00:17:49):
either complete the whole statement,

(00:17:50):
not just the API method call for you,

(00:17:54):
but the whole statement that you intend to write,

(00:17:57):
which feels like magic when it matches your expectation,

(00:18:00):
but it’s not 100% because it’s based on probabilities.

(00:18:05):
Then we can expand on that so that,

(00:18:08):
well,

(00:18:08):
it offers not just a full statement,

(00:18:11):
but the whole snippet of code.

(00:18:13):
that you intend to write depending on the context of what you have in the file

(00:18:17):
already,

(00:18:18):
or even suggest some edits in different places of the file,

(00:18:22):
not exactly at the position of the cursor.

(00:18:25):
This is commonly referred as next edit suggestion feature.

(00:18:30):
And we have added this into the platform as well just recently.

(00:18:34):
Then there is obviously this desire to chat

(00:18:39):
with the LLM.

(00:18:40):
And that was probably one of the first things we added into the idea to be able to

(00:18:46):
chat with the LLM.

(00:18:49):
Depends on your choice.

(00:18:50):
You can choose the LLM provider,

(00:18:53):
either Google or OpenAI or even local models via OLAMA or LLM Studio and get

(00:19:01):
responses.

(00:19:02):
And then it’s up to you to integrate those code snippets that the LLM spits out.

(00:19:07):
And the whole UX around that.

(00:19:09):
But the agentic workflows has been the most popular thing from the last year.

(00:19:15):
And we have developed Junie.

(00:19:17):
And now we are actually kind of opening the platform thanks to the development of

(00:19:22):
the standards like ACP agent client protocol so that

(00:19:27):
We could run and host any agents that conform to that protocol in the same window.

(00:19:34):
So technically you can just pick and choose which agent,

(00:19:37):
which model you want,

(00:19:39):
and we act as a platform.

(00:19:41):
And one thing that I also really like,

(00:19:44):
I mean,

(00:19:44):
obviously we have agentic workflows,

(00:19:47):
but if you’re doing your own software development,

(00:19:52):
we also integrate AI functions into the IDE in multiple places.

(00:19:57):
Not just like,

(00:19:58):
like Anton mentioned to have more code generation or next edit suggestions,

(00:20:05):
but also features that I really like that help you understand the code.

(00:20:09):
So, you know, explain this code to me, write documentation.

(00:20:13):
explain these commits if you want to catch up with what your coworkers were doing

(00:20:17):
while you were off.

(00:20:18):
Or I think we have code review and things like that.

(00:20:23):
So because we are still responsible for the code,

(00:20:27):
whether we write it or an agent writes it,

(00:20:29):
someone has to commit it.

(00:20:30):
It has your name on it.

(00:20:32):
better make sure that you know what that does because you are still responsible.

(00:20:37):
The agent isn’t responsible for that code.

(00:20:39):
So I really like the features that we have to help us understand the code.

(00:20:43):
And I like the way that we integrate them into the IDE to help your workflow.

(00:20:49):
Yeah, that’s a really important point that you made there.

(00:20:51):
I mean, in terms of the technology is just embedding itself slowly where necessary.

(00:20:57):
And then the developer is going to be leveraging these new tools in a very general

(00:21:03):
sense in terms of the language.

(00:21:05):
Yeah.

(00:21:06):
It doesn’t replace the developer because the developer still has to know what’s

(00:21:10):
happening because the developer has to actually deliver this,

(00:21:13):
as you said,

(00:21:14):
with their name on it.

(00:21:15):
I was talking to Jean Blayarsky a couple of days ago for a similar podcast and she

(00:21:20):
made a similar point.

(00:21:21):
She was working with AI and AI made a little mistake and she noticed it right away

(00:21:26):
and she was able to prompt and change it and get it to do the right thing because

(00:21:29):
she knew what correct was.

(00:21:32):
Exactly.

(00:21:32):
And so her point was basically that you still need to learn the basics.

(00:21:36):
You still need to be a good developer and learn all the core technologies,

(00:21:41):
which I think is very,

(00:21:43):
very important.

(00:21:44):
And I think that’s what most developers are saying now.

(00:21:48):
And I think also that the tools that we have,

(00:21:50):
I think Anton might be going for the same thing,

(00:21:53):
the tools that we have in the IDE,

(00:21:55):
like a debugger to help you if the code doesn’t do what you think it should,

(00:22:00):
or profilers to,

(00:22:01):
again,

(00:22:02):
help you understand the code or help you understand what’s wrong with the code.

(00:22:06):
And using the debugger that IntelliJ IDEA provides that has so many features,

(00:22:12):
so many more than even I know,

(00:22:14):
can help you fix your bugs or understand your bugs and fix them

(00:22:19):
You know, without spending a lot of tokens, because if I ask AI, hey, what’s wrong here?

(00:22:23):
If it’s a very standard thing, it will give me the answer much faster than I can Google it.

(00:22:28):
But if it’s a not standard thing,

(00:22:30):
it’s going to go in circles and spend all my tokens,

(00:22:33):
in which case using the debugger that IntelliJ IDEA has is much faster and cheaper

(00:22:38):
to solve the problem.

(00:22:40):
There is definitely currently,

(00:22:41):
if you talk to different developers in the community,

(00:22:44):
there are different opinions about all that.

(00:22:47):
And well, AI without IDE is kind of unreliable, but the IDE without AI is unproductive.

(00:22:55):
So we need to fuse those things together and to help each other to be productive

(00:23:00):
and to be reliable.

(00:23:02):
Yeah, well, it’s exciting.

(00:23:03):
It really is exciting to see it all come together.

(00:23:06):
So are you looking forward to another 25 years,

(00:23:08):
just like we’re looking forward to another 30 years in Java?

(00:23:11):
That’s like insane numbers.

(00:23:16):
Let’s hope for that.

(00:23:18):
Speaking of Java, Java 1 is in March, just a couple of months from now.

(00:23:23):
And both of you will be there.

(00:23:24):
JetBrains will be there.

(00:23:25):
So people, if they want to learn more about IntelliJ, they should stop by and talk to you.

(00:23:30):
And actually, Anton, you’re a speaker there.

(00:23:33):
And Monit,

(00:23:33):
you were there last year speaking,

(00:23:35):
as well as on stage with me at the community keynote.

(00:23:38):
Thank you so much for doing that.

(00:23:40):
Thanks for having me.

(00:23:42):
OK, so Anton, so for this year, what’s your session going to be on?

(00:23:46):
Well, the talk is called Spec-Driven Development with AI Agents.

(00:23:50):
So because it’s all hype, it’s all interesting.

(00:23:54):
And of course,

(00:23:55):
I will be looking at this topic from the Java developer’s perspective,

(00:24:01):
how this spec-driven approach with AI agents could help the Java developers

(00:24:07):
developing…

(00:24:08):
like maybe something in the existing project,

(00:24:11):
maybe something from scratch,

(00:24:14):
maybe something with constraints.

(00:24:16):
Things change when I had the initial idea for this talk.

(00:24:20):
The technology was at a different state than it is right now.

(00:24:24):
So like three months ago, the things were different.

(00:24:28):
But I would say just three months ago.

(00:24:30):
Yeah, even like it’s so fast.

(00:24:32):
It changes so fast.

(00:24:34):
I must say things are getting simpler, which is very nice.

(00:24:38):
And we can get better results with less effort and less complex workflows now with AI agents.

(00:24:45):
So my idea is that when you have the initial idea to develop something or like a

(00:24:51):
requirement to implement,

(00:24:53):
you actually don’t know all the unknowns.

(00:24:56):
So you don’t know what you don’t know in the project or in the requirement.

(00:25:00):
And then the first step should always be this exploration or clarifying the

(00:25:06):
requirements of how you would implement something in the project and

(00:25:10):
There is a way,

(00:25:11):
there is a technique to interact with the agent and clarify all that and the agent

(00:25:16):
can help with it.

(00:25:18):
And then there is a process of refining those requirements into the actionable task

(00:25:24):
list that the agent can then follow predictably.

(00:25:28):
and implement what you want it to implement and not what you think it will implement.

(00:25:34):
So setting up the expectations to the agent and getting the predictable outcomes is

(00:25:41):
what it is about.

(00:25:42):
So you said things are getting easier.

(00:25:43):
What do you mean by that?

(00:25:44):
Because the models are getting better in guessing the intent of what you want them to do.

(00:25:53):
And with the previous versions of the models,

(00:25:55):
you had to do a very careful prompting and generate more and more constraints.

(00:26:02):
Do this and don’t do that.

(00:26:04):
And I prefer you to use that code pattern and don’t use that library and so on.

(00:26:10):
And now the models are getting better and now our understanding of how to prompt

(00:26:13):
them is kind of simplifying.

(00:26:15):
The whole process is simplifying.

(00:26:18):
Interesting.

(00:26:19):
So is this for all attendees or more junior people or more senior people?

(00:26:23):
I think it doesn’t depend if you’re a junior developer or a senior developer

(00:26:28):
because we are kind of – we are all juniors in this regard to technology.

(00:26:33):
is so new.

(00:26:35):
You cannot demand 10 years of experience from a Java developer in AI tooling space.

(00:26:42):
So yeah, it’s more like an invitation for the discussion.

(00:26:47):
Maybe people are using AI agents in a different way, and then we could discuss that.

(00:26:54):
My proposed workflows are not so efficient in some other use cases, and we can

(00:27:00):
get the most out of it from discussions and the hallway sessions.

(00:27:04):
Yeah, great.

(00:27:05):
So it sounds good.

(00:27:06):
I’ll go to your session.

(00:27:07):
Actually, I want to meet you.

(00:27:08):
So I want to hunt you down and we actually can meet and looking forward to your session.

(00:27:13):
And so let’s talk just for a few minutes about Java 1 and then we can wrap.

(00:27:17):
You’ve been there.

(00:27:18):
What’s the conference like?

(00:27:20):
What does Java 1 mean to you?

(00:27:22):
Do you have any interesting experiences or things that have happened there that are

(00:27:26):
really cool stories or just really any kind of comments about Java 1?

(00:27:30):
Well, obviously, the who’s who of Java will be there.

(00:27:34):
And what I remember from last year is there was a session,

(00:27:39):
Meet the Architects,

(00:27:40):
or some similar name,

(00:27:42):
I’m not sure,

(00:27:42):
100% sure,

(00:27:44):
where the audience could ask the architects,

(00:27:47):
well,

(00:27:47):
basically everything about Java,

(00:27:49):
which is something that you wouldn’t normally get at any other conference.

(00:27:54):
You know, some of them might be there.

(00:27:55):
I did meet Victor Klang at DevOps last year, DevOps Belgium.

(00:28:00):
for example, but all of them are there at Java One.

(00:28:03):
So if you want to meet them, talk to them, ask them questions, that would be the place to do so.

(00:28:09):
Yeah, so that’s what makes it unique for me anyway.

(00:28:14):
That was an interesting session because because I was a photographer last year and

(00:28:18):
I was trying to shoot images of this thing.

(00:28:19):
And it’s like there were like 20 of them up there on stage.

(00:28:22):
It’s like they were all spread out horizontally.

(00:28:25):
And I got to get a wide angle lens to get everybody in, you know.

(00:28:28):
And it was it was an overwhelming amount of talent on that stage in just for one session.

(00:28:35):
I thought that was fascinating.

(00:28:36):
And I was going to say something.

(00:28:38):
Yeah,

(00:28:39):
I wanted to add that for me,

(00:28:40):
Java 1 was always this conference where you get the condensed information about

(00:28:47):
what is going on with Java,

(00:28:49):
the language,

(00:28:50):
the platform,

(00:28:51):
the standards,

(00:28:52):
the frameworks in one place.

(00:28:54):
Although I haven’t been there last year and there was a gap with the COVID break

(00:29:00):
where we didn’t travel.

(00:29:01):
But before that, it was always the conference to go to get all the news at once.

(00:29:09):
Yeah, it’s going to be a cool event this year.

(00:29:10):
I’m looking forward to it.

(00:29:11):
Hopefully the weather is nice and it’s a beautiful venue.

(00:29:16):
It’s nice and small, so the bump into factor is seriously high.

(00:29:20):
Everybody’s in a nice small space, but it’s not cramped or anything like that.

(00:29:24):
But it’s just that it’s a small venue,

(00:29:26):
so you get a lot of really cool people from the community as well as the core

(00:29:31):
engineers at Oracle.

(00:29:33):
Everybody is there in every session.

(00:29:35):
There’s plenty of people to talk to.

(00:29:38):
So really cool.

(00:29:40):
Okay.

(00:29:40):
Well, is there any final words that you have before we wrap up here?

(00:29:44):
Did we forget anything?

(00:29:45):
Did I leave anything out?

(00:29:46):
Well,

(00:29:47):
I mean,

(00:29:47):
we could talk for hours,

(00:29:49):
I’m sure,

(00:29:50):
about all the cool features that we didn’t get to discuss.

(00:29:53):
But I guess for that, they can also come to our talks or our YouTube channel.

(00:29:59):
We have this recurring show with me,

(00:30:03):
Marit,

(00:30:03):
and our colleagues about the new features in IntelliJ whenever the new version is

(00:30:09):
released about the new and cool.

(00:30:11):
And we are looking to make more of that this year.

(00:30:16):
So I think the best advice to be mentioned here is to subscribe and like our YouTube channel.

(00:30:24):
Yes, please.

(00:30:26):
It’s a great channel.

(00:30:27):
I was there earlier today.

(00:30:28):
I saw you both there, and I saw some of the streams.

(00:30:32):
Yeah, it’s excellent.

(00:30:35):
That would be the place to hear about the latest features that we are releasing,

(00:30:40):
like the Spring Debugger that can help you understand your Spring project at

(00:30:45):
runtime,

(00:30:46):
or our new feature called Command Completion,

(00:30:49):
which allows you to

(00:30:51):
perform commands in your editor without knowing all the shortcuts.

(00:30:54):
I just did a video on that.

(00:30:56):
People seem to like that a lot.

(00:30:58):
Excellent.

(00:30:59):
Well, Manit, Anton, it was great talking to you here for Duke’s Corner.

(00:31:03):
And we will see you in March in a couple of months.

(00:31:06):
Thanks for having us.

(00:31:07):
Indeed.

(00:31:08):
Thank you.