Live data from Hacker News

New IDE: code bubbles

cs.brown.edu

141–150 of 226 posts

Re: New IDE: code bubbles

#141
post #103
post #99

Earlier quoted context omitted.

Can your emacs editor construct hyperlinked call graphs showing all callers and callees of a given function? Will this call graph generation remain up to date as I edit files? Can Emacs give me a hyper-linked list of all usages of a given symbol and do it properly(lexical scope, etc.), not just doing a simple symbol search? Can I edit my code in emacs, have a background compiler compile the file on the fly, and also…

Emacs can do whatever you want. If it doesn't, it can be added. In fact, Emacs is an IDE... It's just not a mouse-based IDE. Mouse clicking makes my hands hurt much faster than using the keyboard. I also find it annoying to switch from mouse keyboard, so I don't want a UI that relies on constant mousing.

I also find it annoying to switch from mousekeyboard, so I don't want a UI that relies on constant keyboarding.

Re: New IDE: code bubbles

#142

Earlier quoted context omitted.

Without screenshots / explanation / some more content, you're not very informative... (edit: I know it's emacs, but without explanations it's like saying C-x M-c M-butterflies)

Alright, I confess to being a little glib; however, I'm merely suggesting another way that people already commonly "see many fragments of code (or other information) at once without having to navigate back and forth."' It's not nearly as slick as code bubbles, but it does work for many of the use cases suggested above.

Slickness is an underrated quality of good user interfaces.

Re: New IDE: code bubbles

#143
Its refreshing to see new ideas being implemented well. What makes this particularly interesting is the panning desktop metaphor (which seems to be getting more and more popular) and is quite appropriate for multi-touch screens (think ipad).

It would be most interesting to see this idea extended in this manner, and possibly alter it so coding can be done differently. One possible way might be to have a collection of functions available, then link them together to create new functions. In most cases, this could be done using relatively few commands, so could be done on a touch-only screen.

Re: New IDE: code bubbles

#145
post #84

Earlier quoted context omitted.

These things are possible in dynamic languages with static analysis, it's just not as easy. (Oh, and if you write code that's unreadable, then the static analysis fails. But most people don't do that.)

Then where are the Python/Ruby/PHP/Perl IDEs with these features?

For Python Netbeans/WingIDE/PyCharm do this good enough.

Re: New IDE: code bubbles

#146
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…

Later on in the video they showed some examples of keyboard shortcuts, so there are some in there, but I agree, it's not entirely clear whether or not mouse-free code sessions are possible.

To some extent you'll need mouse-interaction, for dragging things and clearly visual stuff like that (nobody likes to position things with the keyboard, or at least they shouldn't), but they should really do their best to add keyboard hooks to almost everything that they can, definitely.

Re: New IDE: code bubbles

#147
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…

The plan9 folks would disagree quite vehemently. We are used to keyboard operations being more efficient for most tasks, but the keyboard operation for "go to the file over there, the one 3 links over semi-related to this one" may be slower than just clicking.

Re: New IDE: code bubbles

#148
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…

It may not be useful when you're trying to bang out new modules but for me the majority of my debugging is done by looking through the code... not much typing going on.

Re: New IDE: code bubbles

#149
post #68
post #61

Earlier quoted context omitted.

I'd like to have a dollar for every time I've seen a NullPointerException on some line that was constructed by someone who loves the list of methods that automagically pops up for the dot operator: foo.bar().baz().qux() ...Grrrrr!

Try catching a block that does that is actually less code than a long set of conditionals. Granted it's basically saying: if (foo != null) if (bar.bar() != null) if (foo.bar().baz() != null) { ... worked = true; } if (false == worked ) {/*to do*/} But, staying on the happy path until you can demo something is often useful. I think the problem is how you transition from demo to production worthy code.

if (foo!=null && (a = foo.bar()) && a != null && ...

a = foo.bar() will always evaluate to true as the assignment shouldn't ever fail. Of course, in compiled languages I'm sure there will need to be a declaration of 'a' but if there is a possibility to reuse temp variables then could work.

However, if you are coding in C/C++ (and to a similar extent Java, there really is no way around it.

This could be an example of why hybrid functional, imperative, and object oriented languages are becoming popular because the programmer can pick the paradigm that most suits the problem.

Re: New IDE: code bubbles

#150
post #128
post #68

Earlier quoted context omitted.

Try catching a block that does that is actually less code than a long set of conditionals. Granted it's basically saying: if (foo != null) if (bar.bar() != null) if (foo.bar().baz() != null) { ... worked = true; } if (false == worked ) {/*to do*/} But, staying on the happy path until you can demo something is often useful. I think the problem is how you transition from demo to production worthy code.

That's not the same since you are executing the bar method multiple times.

If you really want to get picky, return foo.bar().baz().qux() * 2;

Could become:

  Bar bar = foo.bar();
  if(bar == null) handleBarNull();
  else { 
     Baz baz = bar.baz();
     if(baz == null) handleBazNull();
     else { 
        //(assuming qux is a value)
        return baz.qux() * 2;
     }
  }
Post reply on HN