GoLand is an integrated development environment for Go, made by JetBrains, a company that builds excellent IDEs and charges annual subscriptions for them, which is the correct business model if your product is indispensable and the anxious business model if your product is merely very good.
GoLand was very good. riclib paid for it for several years. The refactoring tools were genuinely excellent — the kind of excellent that justified the subscription, the kind that made you feel like the IDE understood your code better than you did, which it occasionally did.
Then VS Code got decent enough. Then Claude arrived. The subscription was cancelled.
“I don’t miss GoLand. I miss the version of GoLand that existed before everything else caught up. That version was worth every euro.”
— riclib, who tracks the exact moment tools cross the sufficiency threshold
The Refactoring Golden Age
GoLand’s refactoring tools were, for a time, the best available for Go:
- Extract Interface — select methods, GoLand creates the interface, updates all call sites. Clean, correct, comprehensive.
- Extract Method — highlight code, GoLand pulls it into a new function with the right parameters and return values. No manual signature construction.
- Rename — not find-and-replace. Semantic rename. The variable in the inner scope stays. The method on the other struct stays. Only the thing you meant to rename gets renamed.
- Change Signature — add a parameter, and GoLand updates every caller. Remove a parameter, and GoLand updates every caller. Reorder parameters, and GoLand updates every caller and doesn’t break a single test.
- Inline — the reverse of extract. Take a variable or function that shouldn’t exist and fold it back into the call site.
These were not parlour tricks. These were genuine productivity tools that let a developer refactor a large Go codebase with confidence, at speed, without the manual coordination of grep, review, and hope.
JetBrains earned those subscription euros. For a time.
The Licensing Problem
The problem was never GoLand. The problem was JetBrains licensing on a consultant’s laptop.
riclib works with customers. Customers have laptops. Different customers, different laptops. Each laptop needs GoLand. Each GoLand needs a license. The license needs to be activated. The activation needs the internet. The internet at the customer site is behind a proxy. The proxy requires authentication. The authentication uses NTLM. NTLM is — but we are getting off topic.
Every new customer engagement meant a migration ceremony: deactivate on the old machine, activate on the new machine, hope the license server recognizes the deactivation before the activation, wait for the email if it doesn’t, contact support if the email doesn’t arrive, explain that you are the same person on a different laptop, receive a response in Czech business hours, miss the window because Czech business hours end while Portuguese business hours continue.
It was not GoLand’s fault. It was the friction of recurring commercial licensing in a life that involves more than one machine. VS Code, being free, had no such friction. VS Code was already on every machine. VS Code’s Go extension was good enough.
“Good enough” is the most dangerous phrase in commercial software. Not because it’s wrong, but because it’s right.
“The moment a free tool becomes good enough, the paid tool has to become indispensable. GoLand was excellent. Excellent is not indispensable.”
— The Caffeinated Squirrel, who has opinions about SaaS pricing
The Claude Disruption
And then there was the matter of the advanced refactorings.
The refactoring tools were GoLand’s crown jewel. Extract Interface, Change Signature, Inline Variable — these were the features that justified the subscription, the features that VS Code’s Go extension could not match, the features that kept riclib paying year after year despite the licensing friction.
Then Claude arrived, and Claude could do all of them. Not through menu items and dialog boxes and AST manipulation, but through understanding the code and making the changes. “Extract this into an interface” — done. “Add a context parameter to this function and update all callers” — done. “Inline this helper, it’s only used once” — done.
The refactoring tools that justified GoLand’s existence were now available in any editor with an AI integration. The specific advantage — the reason to tolerate the licensing, the subscription, the activation ceremonies — had been commoditized by a language model that didn’t know it was competing with JetBrains and wouldn’t have cared if it did.
“The tools don’t matter when something else can do what the tools do. GoLand’s refactoring was best-in-class for Go. Then the class dissolved.”
— A Passing AI, speaking from experience
Measured Characteristics
Years riclib subscribed: several
Reason for subscribing: refactoring tools (genuinely excellent)
Reason for cancelling: VS Code got decent + Claude made refactoring universal
Monthly cost: enough to notice, not enough to complain
Licensing friction per new laptop: 15-90 minutes (proxy-dependent)
Number of customer laptops: enough for the licensing to be a problem
Best feature: Extract Interface (clean, correct, comprehensive)
VS Code equivalent quality (2020): 60%
VS Code equivalent quality (2026): 90%
Claude equivalent quality (2026): 95% (and improving)
The moment of cancellation: when "good enough + free" beat "excellent + annual"
JetBrains support response timezone: Czech (CET)
riclib's timezone: Portuguese (WET/WEST)
Timezone overlap: sufficient but annoying
See Also
- VS Code — The editor that was “good enough,” which is GoLand’s eulogy written in three words.
- Go — The language GoLand was built for. Go’s simplicity made it easier for general-purpose tools to match specialized ones.
- Vim — The editor that preceded GoLand in riclib’s workflow and will outlast it.
- Zed — The editor that may make VS Code “good enough” in the same way VS Code made GoLand “good enough.”
