HACKER Q&A
📣 vyomkeshj

What would be your ideal IDE experience be in Rust/Java?


We have been working IDE extensions to make programs nicer on the eye, easier to navigate through and playful to work with. One of the ways we have been experimenting with it is through 1:1 mapping of programs into a lean visual representation (Java for now).

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 :)


  👤 armchairhacker Accepted Answer ✓
i honestly can’t say i see the usefulness in your UI diagram. The issue is that you’re basically displaying all of the code so it’s just redundant. You need to make it higher-level, e.g. add an annotation which you can apply to specific methods and fields and constructors, and then only show nodes in the diagram when they have that annotation.

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.