The visual representation doesn't get in the way, you can type code like you would and we convert the code into UI on the fly with regular autocompletes as you'd expect.
Why UI you ask:
1. UI allows us to give hard interaction points where you can click in the right places to access the programming language features available at that point in code. ex. select 4 statements and press ctrl+f to wrap then in for loop/ right click and select "wrap in for".
2. It lets us lay out your code in a map (or what is suitable for current task), for example when you want to see where all a reference has been used in a program, you can double click on it and we will show you the usages relative to your current position in the program in a map (instead of a list as in current IDEs). You can click on a method and we can bring all the fields/methods that are being used right next to that method without changing the code.
3. The UI is quite dense actually, you can zoom out to the point where it's just code with tokens you can interact with, zoom further and we can show you a local code map of the things that the selected region of your code accesses.
4. It could be useful for accessibility/interaction with code on touch devices.
5. Learn a language by interacting with the UI, the UI can serve to help you explore new language features by making them more accessible. Shifting the focus from learning a language to build programs to learning to use an IDE to build programs.
_________________________________ Here is a link to show what we have been experimenting with:
https://drive.google.com/drive/folders/18CdALYNg3v-Qngle-bOErWl3w8mWT-gR?usp=sharing
_________________________________
How do `you` imagine your perfect IDE experience to be? In your opinion how can one enhance the programming experience with meaningful UIs embedded in the IDE?
* If things are unclear regarding where we are going with this, we are just experimenting with ideas :)
Another case where a UI view would be especially useful, is live interactive UI/UX previews. Whether that be HTML or Java Swing GUI. The left window is code to render a part of your application’s UI, and the right window is an interactive preview of the UI itself. You can resize the preview, change attributes like color, and maybe add components, and it will affect the code. Or a game engine where the “scene” is actually constructed by code that you can edit, and it will edit the scene.