Vs Industry: An EVE Online Industry Tool Pt. 3
Vibe coding is the order of the day—not because I don’t want to code, but because I feel like burning down a forest, apparently. I’m trying out different tools, and currently, I’m experimenting with JetBrains AI and VS Code’s new agent. These are my impressions of JetBrains AI so far.
I hadn’t used this AI before and didn’t even know it was included in the package I subscribe to, so I really wanted to give it a try. Plus, I can’t use it at work, so there’s that. The interface is slightly awkward. It’s a split-pane docked view. By default, it was on my right and expanded enough for the split pane to present itself. On one side, you have the chat where you can send messages, and on the other side is the output.

The chat split pane also seems to act as the overall task to-do holder. It appears that the first step this AI takes is to send the question and some context to the LLM to get a task list. I don’t know what context it sends because it retrieves this task list fairly quickly. Maybe it is serializing parts of my workspace across the internet? Maybe there is a small model running locally? Who knows where all these models are. Anyway, that’s the overall view and how I’ve observed it behave.
Onto my impressions of it. So far, I find it thorough. The first thing I asked it to do was to refactor a method out of a class and into another class where it made more sense. It did so, updating callers of this method, but it didn’t assume that the method should then be deleted, so I needed a follow-up prompt.
I then asked it to create an aspect that would wrap my REST client executions, and it failed this task according to my expectations. I could have been more explicit. My prompt was:
The next task we have is to write an aspect that will wrap all our uses of RestClient. This aspect will interrogate the AuthTokenRepository for tokens with the vsindustry.default.principal principal and use that token to put into the JwtTokenHolder.
It generated a class that would have done the job, but it didn’t understand what I meant by the referenced property. So, it generated a static variable and used that instead. Not quite, Junie. Good try… I’ll be more specific next time. Maintaining that context, I then asked it:
Instead, modify the Oauth2HeaderInterceptor to interrogate the AuthTokenRepository for the token for the default principal.
It again generated this static variable.

Then it wrote a test, which failed. I didn’t spend much time with the tests and just deleted them. Wasted CPU cycles for this project. Maybe I’ll let AI generate some tests later.
I think I made tweaks at this point because I wasn’t thinking about how I could improve my prompts. A good portion of what it did ended up being accepted, though.
Now let’s get really serious. I merely wrote this in java because I want to practice what I’ve learned so far and I really enjoy spring :D. But I also enjoy learning new things…
The task: Translate a Java application to Go while maintaining the key concepts used in the Spring application.
This includes the servlet filter, the header interceptor, and logging around the REST client calls. To be fair, I don’t remember telling it to handle the logging statements, so I might forgive it here. I’m getting ahead of myself, though.
The prompt:
I want to try this again, in smaller chunks. Rooted in src/main/go I want to bootstrap a golang project. We need to pick a set of libraries/frameworks that are as powerful as java Spring Framework. Key concepts we're using: Servlet Filters, Thread Local static objects, JPA/Hibernate, Spring declarative transactions, Spring Method Security and RestClient. Bootstrap the project and created the needed folders. Create the main.go with imports and a basic web application start
It generated these files:

Pretty good Junie, pretty good. I don’t know if this translation will find a home on the internet but maybe I won’t burn that forest down for no reason and commit these to their own repository. We’ll see.
I know that was a lot of words and didn’t give you all of my impressions but yet I did :D. Overall I’m impressed. While it has issue’s it’s something useful. It can refactor, it can greenfield and it can enhance pretty darn well. Good job jetbrains.