essays on ai, agentic systems & building the future

ai-coding

I'll Create a GUI Interface in Visual Basic

Author: [Dorizzdt] Date: 2026.02.20 5 min read // 1110 words
Fig 01: Reconstructed Visual Data

2009. CSI. A forensic analyst stares at a second monitor and delivers what may be the single greatest line in television tech history.

”I’ll create a GUI interface using Visual Basic to track the killer’s IP address.”

Every developer who had ever been within 50 feet of VB.NET lost it. The clip circulated for years. It became shorthand for Hollywood not having the faintest clue how software works. A meme carved into the bedrock of programmer culture. We all laughed. We moved on.

We should not have moved on so fast.

The Joke Aged Poorly

Here is the thing about that line. In 2009 it was absurd because the gap between what was said and what was possible was a canyon. Visual Basic could not track an IP address through a GUI. The sentence was nonsensical at every layer. The audience did not care. The writers did not care. It sounded techy. That was enough.

In 2026, you could prompt an LLM with that exact sentence and get a working prototype inside 4 minutes. A WinForms app with a text field, a GeoIP lookup, and a pin on a map. Ugly? Sure. Production ready? No. But functional. Actually functional. The canyon closed while we were busy laughing at the meme.

That shift matters more than people realize. Not because anyone needs a VB GUI to track IPs. Because the distance between an absurd idea and a testable prototype collapsed to the length of a sentence.

The Tap on the Shoulder

I was 3 weeks into a mobile build on Uno Platform for a paid gig. XAML screens, data bindings, navigation stacks. The traditional grind. Each decision made screen by screen, pixel by pixel, performance profiled and agonized over.

Then someone tapped me on the shoulder. “Would this be better in Flutter? Or React Native? Maybe SwiftUI?”

WARNING // The sunk cost reflex

This is the moment where every developer’s brain fires the same signal. The answer is a hard no. Not because the suggestion lacks merit. Because you just spent 3 weeks on the current approach and a pivot means all of that was waste. The fallacy is so reliable you could set a clock to it.

Normally I would have waved them off. Not this time. I opened a terminal, pointed Claude at the Uno Platform codebase, and typed: “Port this to Flutter. Retain the features.” Then I walked to the kitchen and made a coffee.

Came back. 80% done.

Not a sketch. Not a partial scaffold. A working Flutter port with navigation, state management, and the same screen flow I had spent weeks wiring together by hand. Rough around the edges, sure. Missing some polish. But structurally complete in the time it took a kettle to boil.

The Meme Demanded It

My brain did the thing brains do when a pattern clicks. It went straight back to CSI. The GUI. The Visual Basic. The IP address.

I was already running the Flutter port in 1 terminal tab. The legitimate work was happening. Claude was doing the heavy lifting on the real candidate. So I opened a 2nd tab. For giggles. For the meme. For the sheer inability to resist scratching that itch.

“Port this to VB.NET too.”

Why? Because AI for me is just 1 extra terminal tab. The serious work runs in the foreground. The meme runs in the background. 1 costs me nothing but curiosity.

I have to know.
// The inner monologue of every developer who lived through the CSI clip

VB.NET spit out a WinForms app. Buttons, data grids, navigation panels. It looked like something from 2004. It worked like something from 2004. And I grinned like an idiot because the CSI analyst finally got her GUI interface in Visual Basic.

The Part Where the Joke Stops Being Funny

Here is where the story turns. Both ports were disposable. I knew that. The Flutter version was a comparison tool, not a shipping candidate. The VB.NET version was a punchline. Neither was going to production because I know there is more to shipping software than running a prompt.

But the Flutter port was faster than my Uno Platform build.

Not a little faster. Noticeably faster. Screen transitions, list scrolling, the general feel of moving through the app. I leaned forward in my chair. Opened both side by side. Ran the same flow. The gap was obvious.

The VB.NET version? Irrelevant to the comparison. But the Flutter port had just exposed something I had missed for 3 weeks.

I went back to the Uno Platform code. Pulled up the XAML. And there it was. Verbose. Deeply, unnecessarily verbose. Nested stack containers wrapping stack containers wrapping grids that could have been flat layouts. Each one invisible to the eye but expensive to the render pipeline. I had been paying a tax on every frame and never noticed because I had nothing to compare against.

TIP // The mirror matters more than the port

The value of a disposable AI port is not the port itself. It is the comparison. When you see the same feature set running faster in a different framework, the question stops being “which framework is better” and becomes “what am I doing wrong in this one.” That second question is worth more than 10 code reviews.

Turns out each StackLayout in Uno carries a measure and arrange pass. Nest 4 of them and you are running 4 layout passes where 1 Grid with row and column definitions would do. I had been writing XAML the way you write it when you are thinking about structure, not cost. The Flutter port did not teach me Flutter. It taught me I had forgotten what I already knew about XAML.

The Prototype Is the Point

Nobody is shipping VB.NET WinForms apps to the App Store. That is not the argument. The argument is that the distance between “what if” and “let me see” is now 1 prompt and a cup of coffee.

Before AI, comparing 2 frameworks meant building the same thing twice. Nobody does that on a deadline. So you pick 1, commit, and hope. Sunk cost is not a fallacy in that world. It is a survival strategy. You cannot afford to explore because exploration has a dollar amount attached to every hour.

Now exploration is nearly free. You can port a codebase to a competing framework in the time it takes to argue about which framework is better in a meeting. The prototype is not production. It is a mirror. It shows you what your current approach looks like from the outside.

That CSI analyst was ahead of her time. She just needed better tooling.

Has a throwaway AI experiment ever changed how you approached the real build?

DECRYPTED_SEGMENT

// SENSOR_DATA_OVERLAY: FIELD_INTENSITY 0.92Hz

// "The design isn't just a shell; it's a sensory interface for the model's weights."

RIAGENIC // NAV_TERMINAL
>>
0%
>>
── SECTIONS ──────────────────────────────────────
  • [01]The Joke Aged Poorly
  • [02]The Tap on the Shoulder
  • [03]The Meme Demanded It
  • [04]The Part Where the Joke Stops Being Funny
  • [05]The Prototype Is the Point