Hacker News new | ask | show | jobs
by thesuperbigfrog 1109 days ago
Most programming work is still text editing with various amounts of debugging, refactoring, and autocompletion.

It is not obvious to me how an AR interface would make a difference other than more virtual screen real estate. You would still need a way to enter text, build code, run tests, etc. This means a keyboard and pointing device (mouse, trackpad, etc.) are still needed unless something else can do it better.

Granted, for the same cost as the Vision Pro you could get several large, high resolution monitors and have lots of screen to work on.

3 comments

> Most programming work is still text editing [...]

Text no longer needs to be the primary way of conveying programs. There are practical reasons text works best on screens, but if your coding environment is boundless then there’s no reason to believe you can’t do fancier things like direct manipulation of ASTs pretty easily. Imagine "grabbing" an AST node and attaching it to a different parent, all in space.

Beyond simple AST manipulation, the Vision Pro will probably enable Dynamicland-esque "programming spaces" where you manipulate objects in your virtual environment to construct programs.

This seems like a very literal interpretation of "spatial computing"; I don't think anyone will be physically manipulating ASTs with any regularity.
This sounds neat and all but I can “create” much faster with my fingers.

I think it boils down to it being a “programming language”

What we need for AR / VR is “programming gestures”

This way there is no syntax but visual mediums you manipulate via gestures. And this would get compiled to a binary which can be executed.

This was one of my first thoughts when I tried Hololens back in the day -- it would be great to watch the execution of my software, or visualize all the messages being passed between functions or different services on my network, and go all in on block-based programming in 3D (trees can be packed more densely in 3 dimensions, even moreso in 4)

I was expressing this to a friend who was involved in VR in the 80s (VPL research) and was simultaneously elated and disheartened to learn that they had the same idea ! Googling around for it now I suppose he was telling me about "Body Electric" or "Bounce" and looks like any other 2D data flow language [0]. Maybe just ahead of its time. A patent about it [1] describes the problem with wires going everywhere and needing to provide the user the option to hide any set of connections. I'd want to accomplish this by representing the whole connectome in 4D space, and then shifting the projection into 3D to hide and reveal a subset of connections. Further visual filtering could be performed with a depth of field focus and fog effect, controlling all these parameters to isolate the subset of the system you want to inspect.

[0] http://www.art.net/~hopkins/Don/lang/bounce/SpaceSeedCircuit...

[1] https://patents.google.com/patent/US5588104 (bonus, figure 3 shows the dataglove as just a hand plugging into the PC)

Literal spaghetti code?

How do you deal with references? Like defining a variable and using it later in multiple places?

We already have plenty of these, and they suck at doing anything serious.
Sounds like a good reason to try to do better. Unless you suppose the UI of programming is solved and everyone who wants to have control over a machine just needs to bite down and learn vim ?
Grabbing AST nodes and dragging them around is never the bottleneck when I'm programming. Cut/paste is plenty efficient even in notepad and doesn't require gross arm movements. Feel free to try it, but I maintain doubt that a literal forest of code is going to be anything more than a gimmick. By all means, prove me wrong!
:D I'm with you on gross arm movements, I'm just trying to expand the code-viewing experience beyond "strings stacked on top of one another"

While all the VR goggles try to embed your body into virtual space (putting the graphics "around you") I'm prototyping with a stereo-microscope, with it's nice heavy knobs for course and fine adjustment, such that you're looking into the virtual world from the outside. No illusions to pull off, no motion sickness, and nothing strapped to your face.

Agreed. So, in a word, Emacs. It's just Emacs buffers everywhere
I do have several large high-resolution monitors (8K, 4K, 4K, 4K, and a small 3K), and I have a workflow that relies on that.

But that setup definitely doesn't fit in a backpack. So the idea of duplicating this inside a spatial computing environment is really exciting, even though everything released so far doesn't quite cut it.

But aside from the portability angle, another way to leverage the possibilities would be make the OS, probably using applied statistics trained-model techniques, really good at helping move the 2D planes through space (basically, re-arranging the windows or "screens"). 4 monitors is really all I can get on my desk. In theory I could like, ceiling-mount a row of three more above the main row of left-center-right but IRL that would be way too much work and too low-benefit to be worth doing.

But in a virtual, spatial-compute environment, all kinds of things might be worth doing. Maybe I have 40 or 50 2D planes for editors, debuggers, design schematics, and a team of flying robot ninjas with jetpacks who can instantly move them in and out of position.

The main rationale for a multi-monitor setup like mine is to "see everything at once". I do know how to press Alt-Tab and use virtual desktops, and I understand some people even prefer that workflow.

But for me the ability to keep the main work front and center, but everything in my field of view and glanceable, eliminates hundreds of instances of what would otherwise be window/desktop switching, every day.

If I had Jedi powers, would I just fling a few more monitors to hover in the corner of my room near the ceiling? Sure I would. Why do I need btop taking up space on my main screens? Or my chat thing that I will only use a couple times?

The only reason is that I only have these monitors, right on my desk. In theory I could like, wall-mount more displays for those things I don't really care about, but the effort and time investment to do that is totally not worth it.

But in theory a spatial compute environment could go hog-wild putting less relevant info farther away, but still in view, using space in the room that we just can't practically make use of today. All my screens are 60cm or so from my face.

I suspect we will see novel ideas around how to position these 2D planes, and use applied statistics/trained-model techniques to make the OS better at helping manage them (in a useful, but perhaps also delightful, way) before we transcend the 2D-plane "window" metaphor.

I also don't see avoiding keyboard, for programming or other text-input-heavy tasks. The mouse, though... I mean, we'll see how the eye tracking works once they really ship it. I could see the mouse becoming obsolete on computers that are 20mm away from your eyeballs and know exactly what you are looking at....