CodeBubbles: an IDE based on good ideas.
cs.brown.edu/people/acb/codebubbles_site.htmPosted Mar 13, 2010, 7:58 PM UTC
Posted Mar 13, 2010, 7:58 PM UTC
Why did they get who they did to narrate? And seriously, buy a halfway decent mic.
Also, looks like it would make me LESS efficient. especially when i have to right click for everything. viva la CodeRush.
I agree. Being pretty does not mean being efficient.
I think using the meta/alt key with some combinations to to navigate left/right/up/down, follow a function to its source etc. should fix that though.
This is a PhD candidate project, and the narrator is the creator of the system. I suspect the entire thing was written by him.
I expect they could take a lot of the Eclipse/IntelliJ keyboard shortcuts, like Ctrl-click to open definition, etc.
Looks suspiciously like the way Smalltalk programmers work.
My thought exactly. Even seems to have the awkward visual aesthetic of Squeak.
Have you tried Pharo? Much nicer.
Do they still have the oddly-dated pinstripe/Crest berrylicious Aqua look? It's the one other thing that manages to burn my eyes.
If I'm understanding you correctly, the answer to that is yes. Still better than the default Squeak theme, no?
This is very pretty, and probably not even remotely functional for getting work done.
Clearly they forgot the good idea of not requiring the mouse.
home row for the win.
Should be easy enough for them to add keyboard shortcuts though
So instead of reaching for the rodent, you reach for control-altgr-cokebottle? Ok sure, maybe that's an improvement for people who think home row is for pussies.
Make it modal, like vi. You don't really spend as much time typing raw, new code as you spend refactoring, reading, and mentally following execution paths, anyway.
But then there's the bit where things like vim already have the keyboard-only code navigation thing down pat. Still, it's always fun to see new user interface idioms being tried out.
Now that's a great new way to waste time and actually NOT code and NOT fix any bugs.
- "See my beautiful workspace??? I arranged it myself!"
- "Right. About that bug ..."
- "I'll start with it now. I'm just gonna arrange this bubble ... and then ... see? Cool, eh?
Now, what was I ..."
I thought the point was that the bubbles arrange them self.
Cool sounding idea, but I'm not entirely convinced I wouldn't be spending more time managing what's in these bubbles instead (I don't really spend a lot of time managing my files. Switching between them, sure, but a good IDE will keep the position I'm at in each open class in memory anyway).
We're long overdue for a new way of thinking about IDE's, though, and I think the metaphor behind this, at least, is worth pursuing. And I'll definitely check it out once it becomes available (and available for other languages besides Java).
We're long overdue for a new way of thinking about IDE's,
Exactly. This guy has obviously done some creative thinking about how an IDE could work and devoted a lot of time to it. For that, he gets my respect, regardless of whether or not I ever use his software. Good ideas grow from bad ideas. Nothing comes from no ideas.
Good idea, but I don't really think that would work for real coding, since that's tailored to a very narrow usecase.
It looks a lot like my common VIM -> grep -> VIM -> grep ... workflow when fixing bugs. For that it might be a better solution, but that wouldn't work nearly that well for writing new code.
Do you use ctags? With a tags file you can navigate to tags with C-] and then go back with C-o or open a tag in a new window with C-W C-].
I used to use them, but then I broke something (that has to do with either taglist or OmniCPPComplete) and they haven't been working since... Also, it's problematic to use them if the project is divided to many different directories
:(
Also, it's problematic to use them if the project is divided to many different directories
How come?
Assume you have the following directory structure:
src/util/List.h
src/util/List.cpp
src/gui/View.h
src/gui/View.cpp
Then you open VIM
cd src/gui
vim View.cpp
It uses the CTAGS file for src/gui - it knows nothing of CTAGS file of src/util and hence can't go to declaration of List from View.cpp. And I have no idea how to make it use eg. CTAGS file in src/ (one directory above). Ideally, VIM should search for CTAGS file going up directory structure until it finds one, but this doesn't seem to be the case...
How come?
I can't speak for all tags tools, but GNU global at least makes it difficult by putting tags files in the "root folder" of your project. If you're working on several libraries that don't have a common root folder, it's a pain. The best hack I can think of is making a new folder to be your root, and populating it with symlinks to all the folders you want tagged together.
What do you need for writing new code that code bubbles doesn't provide?
I would like the mouse to be completely optional as an input device.
I sort of assumed that this would be the case.
An interesting thought to IDE design, perhaps. I would want to try that for sure.
Looks interesting; I'm not sure how it would actually end up being when used. I can think of cases where I'm working on function A from file 1 and function B and C respectively at the top and bottom of file 2 where something like that could be an potentially novel way to interact with code.
I fear the new generation of bubble coders though...
you should take a look at vim windows.
I'm not a vim power-user so if you could elaborate your post it would be great. I use emacs a lot though and if you're going to suggest something akin to splitting your screen to display different "buffer" I'll say yes, it works, but it's not as fancy as the codebubble video :)
yeah, that's what I meant (in vim we say we hay the same buffer in two windows), and I actually find it makes a lot more sense and is more simple.
[deleted]
Although these are good, I quite like the code bubbles idea of being able to have a view of say, 10 functions next to each other. The windows don't allow the same number of on-screen views.
In reality, windows and shortcuts for jumping to definitions work very well.
I would be much more interested in an IDE that provides quick high-level understanding and navigation of the code rather than a small workflow change like this Bubbles idea.
Understand for C++ is sort of what I mean. You can see what functions call your function, what functions yours call, cross-reference things quickly, see how it all fits together, etc.
It seemed to me that it achieves both, navigation seemed especially clear using this IDE.
There's no informational/dataflow cross-referencing whatsoever..
Did you watch the whole video? I thought he specifically covers the what functions call your functions case, but it's been awhile since I watched.
This is a very cool concept. I must have a different workflow then the majority of commentators here, because this approximately fits the way I envision code in my brain. Having it on a giant workspace would actually quicken my coding time; it might take a little more time for setup but once you get use to the functionality I'm sure that time becomes marginal. Often times I wish I could lay out code in this type of flow instead of having 20 windows or tabs open and switching back and forth between them. Too bad I don't java.
I share everyone else's skepticism. I signed up for the beta, though, and look forward to playing with it on one of our production code bases.
It doesn't seem to be any different than what I already do. Just they this wavy stuff around boxes of code and break it into bubbles. They haven't really shown me anything that a good code completion/intellisense implementation in an IDE can't do.
I think it could be a nice way to lay out code when drilling into a complex issue. However, I'm not sure I would want to use this format to write new code from the ground up.
This is very similar to what I've been wanting for quite a while, now. I mainly just wanted to be able to pick and choose functions from a file which would then be displayed in their own little windows near each other (often keeping functions from the same file/class near each other). That way I could easily see relevant code without having to scroll/switch windows/switch tabs/etc, and lose my view of the code I'm working on. I even started writing some python code for an editor like this, but unfortunately I had to spend my time on more urgent matters, and didn't make much progress. I might still make a plan to write a simple version of this in Clojure in the future (or figure out how to get Emacs to do something close to what I want).
meh
I like it. I often wish I had an editor that let me open the same file in multiple places, and this seems to go even further with that idea. I think some of the features are unnecessary, though.
Does it only work with Java?
I think it looks really great, hopefully I'll get use for my big monitor, now in eclipse it's just half empty :(
That's a lot of mouse movement for a programming session.