Zed, VSCode, Antigravity, Sublime Text... They all have the same workflow.
For writing the code by hand I recommend Helix, batteries included, fast and efficient. For AI-assisted development it doesn't matter and you'd have to switch the app every 4 months if you want to choose the best one.
For terminal text editing I've switched everything over to helix, highly recommended. Basically no config other than I'll change the theme.
Unfortunately I'm still trying to figure out my AI workflow. Right now it's a mix of Cursor, Claude Code, and JetBrains Rider. I mainly use Cursor for the heavy AI lifting and then switch to Rider and Claude Code for tweaking and debugging. If Cursor didn't completely suck at .NET debug, I might just be able to use it alone.
I've got a nice one recently: A pipeline has bytes being transformed to chars by a user selectable encoding, then the chars go to a next step.
In an AOT language, this must be dynamic dispatch, as there are multiple algorithms. The JDK, however, notices how the encoding is basically always UTF-8 and does an 'if utf8 then do utf8code else do dynamic dispatch'. Then the inliner comes along, pushes that if outside a loop, and merges the byte reading, encoding and char processing to 1 big code block, all optimized together.
Any optimisation transforms the program in some way that has to preserve its meaning. Generally, to do that, AOT compilers need to prove that the transformation is always correct; that can be difficult for some deep optimisations. OTOH, JITs can assume that some transformation is correct, aggressively apply it, and if it turns out they're wrong, the code will trigger some signal that will have the runtime deoptimise (some modern AOT compilers have some speculative and deoptimisation capabilities, but not as general as JITs').
Opposite of the idea that it's built "for friends, and not for influencers". One post per week is how influencers operate in order to create a sustainable flow of repetitive visits, not ordinary people posting just for fun.