for all their flaws, one of the things that "agentic coding" tools seem to be legitimately doing is addressing a big gap in the programming tool space: specifically, introducing discoverability.

as a non-musician, I can open up GarageBand and make some beeps and boops and maybe eventually even get music out

as a non-artist, I can open up Photoshop and smudge around some colors by clicking on random tools

as a non-modeler, I can open up Blender and… okay bad example. I can open up Maya and

point is, most software has an idiom where its functions are visually exposed. you can figure out how to make a note or a pixel or whatever and then everything else can eventually flow from there.

but software tools have not crossed that chasm for some reason. there were things like Prograph which never caught on, I gather that there are things like "node-based editors" for shaders & game logic in tools like Unity and Unreal, but these are extremely niche use cases

if you wanna learn Python you gotta get a book or a blog post or some kind of tutorial system and learn about abstract symbol manipulation. nobody uses a tool like Scratch for actual programming and making the transition from Scratch to a "real" programming language involves *abandoning* the discoverable interface and moving towards the text-based abstract symbol-manipulation UI idiom that we all use
this is to say nothing of learning of the metacontext of, like, a Terminal app and remote UNIX server shells and docker containers or whatever. just "a text file with source code in it" is an intimidatingly stark UI. all the stuff to make this "easier" (i.e. vscode, etc) does not make its fundaments any easier to discover, there's no "if statement" or "while loop" button anywhere, even with the most advanced tools in the biz you gotta know what to type to get started

@glyph Programming languages are pretty brutally unforgiving, comparatively speaking

I can pick a digital brush tool in a paint program and make -some- sort of image. It may not be the image I want. But it's -an- image. There's a very achievable feedback loop between try something different -> new image, hopefully closer to what I want

The infinity of possible things I could type that are invalid programs vastly outweigh the valid

How do you get an approachable feedback loop when you have to climb such a mountain to even start at step one? The IDEs we had before offered no path forward without someone's external guide

@mikeymikey @glyph in the last 20 years we've largely gone backwards in programming discoverability. Although professional programmers looked down on it, stuff like Visual Basic with its form editor allowed a bunch of people a pretty easy on-ramp to software. The shift away from dedicated IDEs also hasn't helped. In the early 2000s the setup was literally "install the IDE, and hit the new project button".

@danielleigh I started on QBasic and VB6 and I haven't really seen such an approachable interface since.

I could blame a lot of this on phones, especially Android and iOS being split between two megacorps with incompatible tooling. Flutter works on both but weighs a ton. Qt supports Unicode but it's C++ and a custom lang. HTML is a wooden crate with 10 billion dollars of thrust to make it fly, and you either get tied to a browser or you ship a browser.

I miss VB6. Not much, but I do.

@danielleigh @mikeymikey @glyph We still have form editors, that's not specific to VB. How is the VB from editor different from Delphi, msvc form editor, Apple SDK form editor, Glade, Qt form editor, etc?

Also note that these only help with the graphical layout, and in some cases simple connections between the graphical elements. For more complex logic you still need to learn the underlying language.