My Holiday Wishlist for the New JetBrains AI Assistant

My Holiday Wishlist for the New JetBrains AI Assistant

Last week, JetBrains - the makers of the world's best IDEs and WebStorm - announced their competitor to GitHub copilot: the JetBrains AI. This adds another combatant to the battle for dominance in the AI-assisted software development industry.

It's generally accepted by many developers that AI will not replace us any time soon. Instead (and I'm not a fanboy here, but it's the best visual that I can come up with), we'll live in more of a Star Wars-like world, where the AI (similar to the droids) do a lot of the menial work, while humans focus on more discovery-based, innovative, and experimental solutions that are hard for an AI to grasp.

The best approach for developers, then, is to adapt and learn to integrate AI with our existing workflows, to tackle the repetitive tasks that we generally hate doing (or don't do because there's never enough time). This is not an original Colin thought, as much as it's a generally available, widespread opinion.

So what are these repetitive tasks?

Well, it's December; and as someone who celebrates Christmas, I had years of training as a child for moments such as this.

The following is my wishlist of things I'm going to try with the JetBrains AI over the next few weeks, using GoLand as my IDE of choice.

No More SQL

Call it an unpopular opinion, but I hate writing SQL. Since I moved out of front-end development in 2017, it's one thing that I've just accepted that I'll have to deal with, and accepted my fate whenever a database had to be scaffolded, or a column had to be migrated.

This might be the thing I'm most excited about - hopefully not having to write any more SQL. My dream is to hand the JetBrains AI a struct, and ask it to build out a table based on that struct. Yes, I'd imagine there will be some tweaking to the result, but it's better than writing it all by hand. And much better than copying/pasting previous SQL, and tweaking that to match my data structures.

Test Coverage

I'm expecting - I would even say I demand - that the JetBrains AI should be able to write my unit tests for me. The tools for deciphering production code and matching it to unit tests have been in GoLand for a while now. As have the tools for identifying coverage. As I'm writing my tests and running with coverage, GoLand creates a running report for how much code has been covered.

With all of the tooling there, it's only a matter of time before the AI assistant should be able to wire them together to create its testing capability. If I write code that's hard to test, I want the AI assistant to flag it as such so that I know that it can use what I've created to draw up unit tests.

Chat-Driven Development?

Taking the last point a step further, what if I could tell GoLand what a function should do, and it creates it for me, tests and all? ChatGPT could already do this, but with zero context of the codebase in question.

GoLand, by contrast, is aware of all of the libraries and packages in my codebase. It has already indexed all of the functions and interfaces that need to be mocked when testing my code. It can (or should be able to) decipher go-docs embedded in the code, well enough to know how imported libraries should be used. In theory, this should be an eventuality, and I'm excited to try it out just to see how it will do with what's available today.

Speaking of Documentation

No more excuses about not having time or documentation taking too long. This might be the biggest advantage of leveraging the JetBrains AI - all of our code can be documented effortlessly. There's a demo in the announcement video that looks pretty slick, and I'm excited to try it out on my own.

Once again, I'm sure I'll have to tweak the output. But it's better than having to do it all myself. Or, more realistically, it's better than not having any docs at all.