On Mon, Mar 28, 2011 at 2:20 AM, Rick Mann <email@hidden> wrote:
And what's your development experience background, out of curiosity? Are you a long-time Mac OS developer, or a long-time developer on a different platform, or neither?
Eclipse/Java. I have also used IDEA and found it good. Never used Visual Studio but from what I hear it is pretty much on par with Eclipse/IntelliJ.
Prior to Eclipse, I used CodeWarrior. In those days I remember thinking "why, oh, why can't I use all the information the compiler has"? For example - I should be able to see, instantly, where a variable is accessed from. All the places it's set. All the places it's retrieved. Same for methods. Same for classes. But CodeWarrior couldn't do any of that. It was a big, dumb, text editor with a few project management features tacked on.
Then Eclipse came along, and it did everything that I had always thought an IDE should be able to do. And more, it had the incremental compiler which allows it to find and indicate errors in real time, across modules.
In my estimate, using a proper IDE with full support saves about 30% time when programming. Code completion, preventing errors, refactoring, calling chains - they're all invaluable time savers. Particularly when the code base gets bigger. Or for analyzing code somebody else wrote.
XCode 4 is a huge step forward. It's not quite at the level of Eclipse but it's getting there.
Then there's little things, like the [ ] completion. I can now type
foo doSomething where both foo and doSomething are code-completed by the IDE. Then type ];
and XCode 4 makes it into [foo doSomething]; // filled in the leading '['
In Eclipse, I have gotten used to write code like this: obj. (here I get a popup of choices *with API documentation* - XCode take note, that would be great) I choose the method I want to call without having to go into a separate window or mode to look up the docs.
-> Completed to obj.getHashMapOfObjects(...); (the parameters get filled in with locally visible variables that fit) now I invoke the shortcut for "assign value to new local variable" and get this:
HashMap<Foo, Bar> hashMapOfObjects = obj.getHashMapOfObjects(...);
The local name is derived from the method name.
The IDE takes care of tedious, repetitive tasks, like looking up the API, calling a method and assigning the return value to a new local variable.
|