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

@glyph something really cute Graal Online (mmo alttp clone) did back in the day with their offline level editor is they had the documentation for all the script commands in a little sidebar in the script editor, so you could just scroll through and see what you could punch in. There were also a few simple offline levels included you could look at, and it was pretty straight forward to figure out how to make your own stuff from experimenting without having to search online.
@glyph it was enough that, as a child whose only prior experience with programming was punching simple programs into qbasic from a library book, i was able to play around with it and make interesting things and learn through trial and error
@glyph i think the critical thing here that graal had, and, say, gcc lacks, is you can't just play with gcc
@glyph gcc is a box of invisible knives lol

@aeva yeah there's ways to do discoverability that aren't just "GUI". I mean heck the LLMs aren't doing "GUI" either, it's a totally different thing. and practically speaking onboarding users into a *useful* programming environment means we're going to need to pick some other rough-and-ready strategies like what you're describing graal did.

gcc is fucked though, no hope there. C/C++ projects don't have enough of a structure for any discoverability tool to actually figure out

@aeva worth noting! HyperCard, the vaunted holy grail of user-friendly discoverable programming tools, had many things to recommend it. but when it was time for the real programmin', when *logic* had to happen, it looked like this:
@glyph @aeva This reminded me of a story that had gotten stuck in my mind a very long time ago, but where from I could not remember, which sent me off trying to find its source. (Turns out it was in Neal Stephenson’s 1999 essay “In the Beginning Was the Command Line.”)
@jalefkowit @aeva I remember reading this at the time and it probably changed the trajectory of my life, but also, it's kind of… wrong? MPW did not treat the GUI as an afterthought, it just brought along some tools from that environment because many programmers would find them familiar and useful. As a particular case in point: in MPW you can redirect text to a file, or *to a graphical window* because multiple simultaneous graphical windows are a core part of the environment's structure
@jalefkowit @aeva come to think of it basically everything in ITBTWTCL was wrong, the whole "linux tanks" metaphor goes _way_ off the rails into fantasyland. but it was such a useful kind of wrong
@glyph I never used MPW, so I can’t speak from experience. But to me it was always less interesting as a statement about a specific environment than as a more general one about why visual programming systems had seemed to come and go without ever finding an audience. As things get complex the visual metaphors start to break down, and then experienced programmers start reaching for textual metaphors instinctively. Anyone in a position to extend the visual metaphors to deal with the more complex problems would have to struggle against their own acculturation to do it.

@jalefkowit

> Anyone in a position to extend the visual metaphors to deal with the more complex problems would have to struggle against their own acculturation to do it.

This is a great way to put it. Per other replies regarding Unreal Engine and Blueprints, it sounds like maybe one big group of visual-programming users are also C++ programmers, so maybe a development is coming from over there

@glyph @aeva Have you seen msvc or some of the more recent IDEs?

Because of the types C++ has fairly good structure. You can visualize class hierarchy and attributes, complete arguments with variables that have matching type, etc.