HN user

dmcg

129 karma
Posts10
Comments49
View on HN

Last month Jetbrains released an early access preview of their new AI tool Junie. Junie is an agent. This means that we can give it a goal, it will devise a plan, and then execute tasks autonomously. It can even change its behaviour based on how things are going.

In this first look at Junie I’m going to tell it the rules of Test Driven Development and see how well it can follow the process. As in the last episode, I will write the tests, and ask Junie to write the implementation code.

This one is really, really interesting.

I’m taking a break from my normal content this week because JetBrains have just released an early access preview of their AI Assistant, and I wanted to be the first to make a video on it!

As luck would have it, I needed to make a diagram of the package structure of the Gilded Rose codebase, and I couldn’t find anything in the IntelliJ menus, so I thought that I’d see if AI assistant could help.

By the way, to access the tool, you need to download IDEA 2023.2 EAP, and log in to the AI service - details are here https://blog.jetbrains.com/idea/2023/06/ai-assistant-in-jetb... There seems to be a bit of a waiting list, so I hope that this isn’t too much of a tease if you don’t get access straight away.

This. Not the speculative builds thing, but the organising your codebase so that you don’t have this problem.

Our code structure needs to support both the functionality required by our customers, and our needs as developers.

In the same timescales I was thinking the same thing, but in particular recording the conversation between pair programmers.

OneNote had (has?) a mode where you could click on sections of a meeting note and hear the audio from the time the text was written.

Extend that to an IDE and every time you found yourself saying “what were they thinking when they wrote this?” you could listen in on the conversation and find out.

Is this confusion just so that we can ask the type of a nil interface value at runtime?

A man orders coffee in a restaurant.

"Would you like it with or without cream?"

"Without"

A few minutes later the waiter returns.

"I'm sorry sir, we've run out of cream. Would you like it without milk instead?"

I've been pair-programming for over 15 years now, and was introduced to mobbing by Woody and Llewellyn a couple of years ago. I've tried it in a couple of teams for specific tasks. I don't think that in a team of experienced devs I would mob all the time (although if the team wanted to I wouldn't veto it), but it definitely has its place. In particular for learning new techniques, large refactorings and exploring solutions with customers.

The Unruly mob is very much a ground-up movement. These guys mob when it suits them - they tried it as an experiment and found that it works for them.

Java: Real or Not? 11 years ago

Nice. We made fridge-magnets in my last project to help generate excellent names like these.

I really didn't see any issues other than day-rate-compression through my 40s. Now I'm nearing 50 my memory definitely isn't what it used to be, but my expression in code is improving to compensate.

I feel that my influence and ability to drive good outcomes gets better as I learn more about myself, but the nurses here are telling me to go back to bed, so I'll have to turn off this computer thing now.

Please edit the title to include 2010, so others can at least avoid the slow realisation as they read the article that this is not a contemporary analysis.

As someone who can't let anything go, I found this is touching and inspiring. Thanks for having the courage to give it a go, and to stop.

Maybe constraints rather than craziness? Constraints tailor a language, make it fitter for one purpose or another. But you have a limited constraint budget - overspend and everything is difficult.

As an old boss of mine (hi Paul Earwicker) used to say - "flexibility is just design decisions you haven't taken yet."