Thursday, September 23, 2010

If Eclipse views could talk...

If the various Eclipse views in the default Java perspective could talk, what would they say?

Package explorer: Here are the projects in your workspace!  Look, I can actually present them in a sensible way!  Not like some IDEs I could mention.  Yeah, you can have multiple projects open at the same time.

Java editor: I know what your code means!  I will automate boring tasks like adding getters and setters for you.  I will let you know when you've made a mistake.  You'll probably want to override my ugly default syntax-coloring choices.

JUnit: What am I doing over here in the left-hand pane?  Sure, you'll be able to see whether or not the bar is green, but the stack trace is much too narrow to show you the text of a failed assertion. Hey, why don't you move me down to the bottom pane?  Ahhh...that's much better.  By the way, if assertTrue or assertFalse fails, I'll let you know with the message "Assertion failed: null".

Type hierarchy: Let me tell you why I'm here.  Uh...hold on...I'm pretty sure there's something I can do that's useful...uh...crap, I can't think of why you would actually need to use me.  That sucks. Oh well, at least I'm not taking up any of your valuable screen real estate over here as a hidden tab in the left-hand pane.

Mylyn: Hi!  I'm Mylyn!  Every other view is named in a way that clearly indicates its purpose, but not me!  I'm Mylyn!  If you were an elite developer, you'd know what I'm for.  Apparently you're not an elite developer.  I'm Mylyn!  I need one-sixth of your screen! I'm Mylyn!  Wait, don't close me!  I'm My [click]

Outline: Hey, here's a concise list of your fields and methods! If your class gets really complicated, this will help you navigate around it.  Sure, this right-hand pane that I'm in is taking up about a third of the screen on that netbook you're using, but I'm totally worth it.  Wait...if you use proper object-oriented design, the class won't get complicated?  I don't believe it.  Wait...don't close me!  I [click]

Console: Here's your standard output.  You can type stuff here as standard input, too.  However, I adamantly refuse to position the cursor in any way that would indicate where the next character of output (or echoed input) will be generated.  Nor will I accept ANSI escape codes.  This big red button to kill the process is pretty useful, though.