Sunday, January 12, 2014

Visual Object-Oriented Programming (OOP) Language Editor - Updated

I feel quite challenged when I see Java codes that are very long and have so many methods. I always think that Eclipse, or any IDE for that matter, could be made more convenient. Of course, there is the Package Explorer in Eclipse, but I think it could be made cooler and easier on the eyes. This idea might not be suitable to those who are used to looking at lengthy codes.

So, what am I looking for? I am not looking at GUI builder or UML kind of programming. I am also not looking at Visual Programming, but it is closer to what I am looking for. So, what I am looking for is an editor that makes each methods as blocks, as well as the classes. Each method would be opened in its own window, so now we could have 4 methods or more on screen, but not arranged horizontally in length. We could copy methods around by dragging the method 'block' to the class we would like to copy it to (of course it would be awesome if we have a library of method 'block's we would like to save).

I can't really make it since I don't think my knowledge would be sufficient to make such plug-in for Eclipse or to make such editor. I am also not familiar with prototyping but I draw something to make sense of it.



My drawing is ugly (and I was very careless with the code) but I hope I could get the message across. So each class and its methods will be listed on the left just like in Eclipse Package Explorer. Of course the package and all will be shown there as well. Now, each methods will be listed under the class and if you double click it, that method implementation will be opened in a small window. Possibly, different modifiers will be colored differently, e.g. white for public, gray for private, yellow for static and so on so forth. The Java Doc (for Java) for the method will be shown as well and could be minimized. If a method is called within another method, and both methods have opened window, there will be a line between them to indicate the call.

Despite all this, we could click a button to show the whole class in its usual implementation - long codes. So, this plug-in or editor will be a smart interpreter of the code that could switch back and forth between the codes and this kind of visual editor.

What do I want to achieve?
1. Fun time coding - that kind of editor would be so fun to play around with and looks futuristic even when it isn't - for example, Jarvis theme to make it blue and transparent and stuff
2. Easier navigation - after going through Software Engineering class, I realize to make a good piece of code, you need a lot of modularity and abstraction. This also means you will have a lot of methods which could make it hard to go around the code if you are still not used to organizing the methods nicely - e.g. high level should be on top of lower level methods or linked methods should be placed each other. With this, you could open high level and low level methods at the same time from non-connecting methods (e.g. one deals with addition while the other subtraction) and edit them without losing navigability
3. Versatility - Dragging methods around to other class would be so fun. Of course, the editor must be smart, too! For example, children classes should not re-implement inherited methods but list them and show the code to the user anyway and so on so forth.

I am not sure if this is not a good idea, but I think it would be fun if we have such thing.

*Update:
I was trying out on the idea with some prototype, but apparently someone made it already. It's called CodeBubble (You could see the demo here). I am going to close my GitHub repo on the work now since someone made it already :)

No comments:

Post a Comment