Live data from Hacker News

New IDE: code bubbles

cs.brown.edu

151–160 of 226 posts

Re: New IDE: code bubbles

#151
post #131
post #18

That is a very interesting approach - instead of just presenting files , this IDE is already abstracting out some of the semantic structure for you and presenting code based on its relationships . It's meeting you halfway. And it keeps track of things the way you work - by explicitly acknowledging the task structure of the work, it's again meeting you halfway. This is a really promising start. Very cool.

One extremely annoying bit watching the video is that for an IDE manipulating text files it requires that your hand never leave the mouse. Every single operation it looks like requires that you right click, click to activate, click to drop down, click to open. Even the 'insta-search' box requires a click. Someone should buy a one button mouse and install it on their computer or just take the mouse away completely. A…

This was my exact impression; I hate leaving the keyboard when I'm writing or reading code. To simulate some of the functionality of codebubble in vim, I :vsp the same file and scroll up/down to the method I want.

I have, however, come to realize that navigation through a large project with keys alone is suboptimal. One typo in a nav command and you have to press at least four or five more keys. With the mouse, you're less likely to make such mistakes and your retry time would also be low. It'd be like trying to browse the web using the keyboard alone... even I, a hardcore vim user, found firefox/vimperator underwhelming to say the least.

What would be awesome is if they made some sort of hybrid superintelligent keyboard where the whole keyboard surface could also act as sort of a multi-touchpad. As a compromise, I've found that the thinkpad-style pointing stick in the middle of the keyboard does a fair job.

Re: New IDE: code bubbles

#152
post #137
post #110

Earlier quoted context omitted.

"Emacs can do whatever you want." Saying "Emacs can do whatever you want" is like saying "your computer can do anything you want." Sure it can, so long as you're willing to write the code to make it go. But my time is finite; I cannot be bothered to re-build environments that have already been implemented elsewhere.

In the 30+ years Emacs has been around people have written a huge amount of Emacs Lisp that does pretty much everything you can think of. Almost every feature from other editors and IDEs has been implemented in Emacs. I like Lisp but rarely write very much Emacs Lisp, and when I do it's usually an extension of some code someone else started. There aren't a lot of new ideas and when an Emacs user sees one he implement…

You may say this, but I don't see semantic member or statement completion for any language. I don't see "go to definition" or "find all references." Frankly, although cc-mode is fantastic for indentation and stuff, it offers a small fraction of the features of Eclipse or NetBeans.

Yes, I've used ctags and I've used etags. They tend to be interesting approximations but are never 100% reliable. They don't do a deep sematic analysis of my program. (For example, they don't understand C macros.) They don't update as I type.

The closest I've ever seen has been the "Semantic Bovinator" thingy. I have never managed to get it to run, nor has anybody I've seen try. You experience may be different, of course. (I realize that by posting this I'm inviting a raft of people to post and say "It works for me!" :) )

Re: New IDE: code bubbles

#153

I think they're trying to reduce the impact of the superhuman levels of concentration displayed by the uberhackers. I don't like it.

I disagree, they're augmenting the current impact of a super-human level of concentration displayed by an "uberhacker" by giving the fruits of that capacity to everyone. Automating a super-human level of concentration in one part of the development process will free up brain cycles for use elsewhere. The best developers won't instantly cease to be the best developers because of a mind-mapping IDE.

Re: New IDE: code bubbles

#154
post #114

Earlier quoted context omitted.

If only there was some combinator for sequencing computations... then you could write: foo >>= bar >>= baz >>= quux and there would never be a NullPointerException, because the >>= function could react appropriately when null was encountered!

Since I don't know haskell, I'll throw out that groovy does this too. foo?.bar()?.baz?.quux What other languages have this kind of shortcut?

Since coffeescript was mentioned, the Ruby andand library is also frequently mentioned when this comes up. (I only ruby for Rake).

Re: New IDE: code bubbles

#155
post #107

Earlier quoted context omitted.

Have a look at the 'Leo' editor, it has views on your source using 'cloned' nodes. It even allows you to group all the code around a bug and a fix together, document the whole thing and never move any of the original code around. It's a pretty neat literate programming tool.

Leo is really nice and I've used it on real projects to refactor and study my architecture.

I'd actually say that Leo is horrible except for the one feature that makes it amazing (outlines). I find myself wanting to implement outlines in Vim but knowing I never will.

Re: New IDE: code bubbles

#156

It's odd that it's so rare in software to find window widgets that push each other out of the way instead of overlapping. I'm thinking of the gazillion pallettes in Adobe CS that always occlude each other. You'd think they'd have figured that out by now.

Visual Studio sort of does this. When you drag one pane over another, the default is to have the panes be tiled or tabbed (depending on where you drag it). It's all very intuitive too, with the arrows to guide you through what you're doing. Visual Studio's window management is totally awesome and one of my favorite features.

Re: New IDE: code bubbles

#157
post #152
post #137

Earlier quoted context omitted.

In the 30+ years Emacs has been around people have written a huge amount of Emacs Lisp that does pretty much everything you can think of. Almost every feature from other editors and IDEs has been implemented in Emacs. I like Lisp but rarely write very much Emacs Lisp, and when I do it's usually an extension of some code someone else started. There aren't a lot of new ideas and when an Emacs user sees one he implement…

You may say this, but I don't see semantic member or statement completion for any language. I don't see "go to definition" or "find all references." Frankly, although cc-mode is fantastic for indentation and stuff, it offers a small fraction of the features of Eclipse or NetBeans. Yes, I've used ctags and I've used etags. They tend to be interesting approximations but are never 100% reliable. They don't do a deep sem…

cscope is quite a bit better than ctags, and is insanely fast on modern hardware. It integrates in vim (and probably emacs) and does fully analyze C, including "calls" and "called by" info. It appears to be useful for C++ and Java as well: http://cscope.sourceforge.net/

That said, I use vim for C, but I still use Eclipse for Java and C++/Qt.

Re: New IDE: code bubbles

#158
post #49

Guys, we need a better way for exploring big open source projects (like Android, for example), preferably online. Google Code Search is pretty good, but I think there is so much more that can be done.

The most striking thing is how few people here have addressed this point. Everyone seems to be living in a fantasy land where "learning APIs" is as hairy as it gets. I've messed with portions of the Linux Kernel, Chromium, Mozilla, and Coda Filesystem codebases. In each occasion, tools like code-search (provided by lxr.linux.no, mxr.mozilla.org, Google COde, and even `find . | xargs grep`) have been invaluable in get…

Do you find that "find . | xargs grep" is more useful than "grep -HnR" in some way?

I recommend setting up cscope for hacking the kernel. I haven't done any kernel hacking for a while, but when I did I found cscope (and vim+cscope) very helpful. Since it's database-driven and designed to run on systems from the 80s, it's still extremely fast.

Re: New IDE: code bubbles

#159

Earlier quoted context omitted.

The flip side of this is: Emacs was invented around the time I was born, and could be used to edit the languages that were available at the time. It can still be used to edit those languages, as well as the hundreds (thousands?) of languages that exist today. I won't be surprised if it's around in 10 or 20 years more, and still able to edit every language under the sun at that point. Emacs may have a shallower unders…

Sure, but when you're working on a project that uses only a few languages, specialised tools are always going to be much more effective, and you just update the tools as you update your choice of language(s). Jack of all trades is master of none, as the saying goes.

They're not. Most of your time is still spent editing text. Or if it isn't, you're not getting enough done. Any deficiencies in semantic understanding (that's what your brain is for, remember?) are made up for by the sheer speed a proficient user (and fast typist) can get out of a good editor. And while you only use one environment at a time, you probably use several over your career. I've used the same environment quite effectively across 4 platform changes. Can the IDE people say that?

Eclipse is a step in the right direction in terms of openness and universality. But the editing experience still sucks. And it's harder to extend and customize than it should be.

There may come a day when there's an IDE that a) has a great editing experience b) is fast, flexible, and universal, and c) offer not just crutches and marginal improvements, but radical, order-of-magnitude improvements to the way we interact with software. It's not today. But the linked research project actually has some promise.

Re: New IDE: code bubbles

#160
post #19

Earlier quoted context omitted.

But to your #2 - that seems to me to be exactly what this IDE is doing. That's the way I see it, anyway.

It's better than normal eclipse for sure - you get the arrow link between related methods, etc. What I meant is that in Vim I go to a name in ctags. That's what happens - whether I'm in the same file, or different, or I looked at that tag before. Type in tag name -> go - that's all that happens. With code bubbles, I could have the bubble already open, but just off the screen. Or maybe it's open in another dependency.…

It should be possible to add equivalent keyboard shortcuts to Code Bubbles, so that finding a nearby bubble could be accomplished by ESC,/tagname or something.
Post reply on HN