It really does seem that a keyboard is a quite deep local maximum of human-computer interaction. Not a single other mode of HCI invented afterwards can match the combination of high versatility and high efficiency.
But virtual worlds, and the vision-oriented tasks (like e.g. 3D modelling, be it artistic, scientific, or engineering) - there I can see VR working much better than what we currently have.
I can see (3D manual manipulation + verbal commands + weak-AI inference of intent) being a pretty compelling interface package.
For our primary coding purposes, I doubt we'll ever surpass keyboard.
But the counterargument would be that coding is a fairly esoteric set of criteria that we've specifically built around the keyboard (i.e. every character matters, no synonyms, etc). Were there an alternative... say, boilerplate code intelligently glued together by verbalized architecture directions? I wouldn't want to put a bet down. Rails convinced me that sometimes being smooth is more important than being best.
Now I was going to say that the trick is workload reduction, and that 'AI-glued boilerplate directed by voice' could just work by doing most of the task automatically, but then I realized: workload reduction doesn't work. As proved time and again in the last few centuries, as soon as you find yourself with extra free time due to some efficiency improvement, more work will be assigned to you to fill that time. You may not want it, your employer may not even want it, but someone over at a competing company thinks they can get ahead this way, and now everyone has to follow suit.
For programmers of course its hard to work with those interfaces. But imagine a carpenter being able to order coffee, without having to deal with a screen.
That's the kind of utility we are talking about.
Real world interaction is obvious for certain fields where user does something that's comparable to a real world task. i.e. Loading ammunition, Surgery, Plumbing, Repair of various instruments.
For fields that don't have comparable real world representation I would imagine that we're again at the moment in computer science history where we have an opportunity to create a new desktop environment but in 3D space with certain well known natural gestures. For example transferring a file from my laptop to a smartphone doesn't have to be done with context menu, we can have a VR smartphone object and just drag file with our hands in that object lie we would do in real world if were to move a file from one place to another.
Instead of having to switch between different overlapping windows, we can have all windows laid out all around us in a comfortable zone. To go to particular window in focus we use certain gestures like pushing of pulling with hands.
Even if some gestures have to be created artificially, user would probably remember that better next time because of the muscle memory.
There's a really good discussion regarding this in Unity Unite 2016 (https://www.youtube.com/watch?v=HzPDTrWcjxc). In fact 2016 conference had a lot of good VR related discussions.
Are you referring to existing technology, or some kind of Sci fi holodeck thing?
I can think of 2 broad categories of potential computer program. The first, old world computer programs, and I can't see flicking through virtual files in a virtual filling cabinet being an improvement over what we have now. And the 2nd category is 'real world' computer programs. Basically simulating real life. So ranging from VR watching the tv (what's the point) to white water rafting. Which I can see, but that's basically back to computer games. Which is the thing the VR always ends up being used for.