How much do you use your IDE?

Started by
89 comments, last by Oberon_Command 12 years, 8 months ago

I know what you mean. Some time ago I decided to try out the Visual C++ 2010 IDE and made a simple Hello World program. Then, after having spend half an hour getting the project to compile because it was missing some files ("export/symbol definition files" or something like that), when I looked at the size of the project folder I was honestly shocked -- 50 MEGABYTES for a program writing one line in a console!! It turned out to be some Intelli-thingy that apparently created some very large files, which, after all, can be disabled. But still; waaay to much junk in that folder compared to a single makefile ;)

Intellisense? It's worth spending a few hundred megabytes on auto complete and smart reference-finding, particularly when modern hard drives have millions of megabytes of space. Not that the default intellisense for C++ is great, but in C# or C++ with VAX it's worth it's weight in gold.

When you're looking through tens or hundreds of thousands of lines of code, intelligent reference finding is very, very helpful.
Advertisement

[quote name='A Brain in a Vat' timestamp='1313602873' post='4850403']
[quote name='Bregma' timestamp='1313589399' post='4850314']
Nobody has ever demonstrated to me what possible advantage I could gain by using an IDE. I have encountered many disadvantages.

Without an IDE you don't have the integration between your source and the debugger. Is this necessary? No, but it's nice. I use gdb all the time, but on certain projects it's nice to be able to visually place breakpoints while looking at my code.

Without an IDE you don't have automatic refactoring tools. Are these necessarY? No, but they're nice. They save a lot of time and headache, and let you focus on writing logic.

Without an IDE you don't have useful autocompletion, "go to definition", call hierarchy, etc.

Without an IDE you don't have a class-level view of your program that is integrated with your source.

Without an IDE you have to remember the locations of each of your files. This may not sound like a big deal, but those of us working in giant codebases don't want to spend lots of time searching through directories.
[/quote]
Not a single one of those points require an IDE, unless you rephrase them to say "with an IDE, you cant ... in an IDE." So, I guess an IDE is kinda like a tautology. I can also create tautologies with an IDE, so again that's not an argument for their use.

I have tools that do all of the above. I do do all of the above. Well, not autocompletion, I don't like it, but my tools do it. And none of my tools are integrated with my source, because my source is in text files. An IDE is also not integrated with the source.
[/quote]

Why don't you tell us what these tools are? I'm especially curious as to how you do automatic refactoring. You can choose a class member and change its name, and not have to manually change the name in any of the code calling this function? What tool is this? Is it easy to use?

An IDE is also not integrated with the source? Maybe you didn't understand what I'm saying. While I'm coding I can do all of these things, without firing up some external tool. I don't have to configure some external tool to tell it where to point, and I dont' have to have a different view of my code. If I want to set a breakpoint in my code, I just set it with a quick command, as I'm typing the code itself. You cannot do this.

The fact is, if you have tools that do all of this, then you have a full DE. It just happens not to be I(ntegrated). So is your dislike of IDEs centered around the fact that the tools are integrated? You like having all your tools function in completely different ways, and none of them working particularly well together?
Intellisense? It's worth spending a few hundred megabytes on auto complete and smart reference-finding, particularly when modern hard drives have millions of megabytes of space. Not that the default intellisense for C++ is great, but in C# or C++ with VAX it's worth it's weight in gold.

When you're looking through tens or hundreds of thousands of lines of code, intelligent reference finding is very, very helpful.

I think it depends a lot on how you work. Personally I stick almost religiously to a set of rules I have made about organizing the functionality in my projects (both file-, folder-, and module/component-wise) along with a natural procedure for building them from the ground up, and I am not trying to sound arrogant or anything, but honestly; no matter how large my projects grow I always know instinctively where everything is placed and referenced. That said, I agree IntelliSense could sometimes come in handy when looking at other peoples code :P
The only time I might not use an IDE and instead write code in Notepad++ is when doing web development in something like PHP, especially when doing tiny scripts. For most serious projects I use Visual Studio though (even for PHP using the Phalanger plugin). Debugging, SVN, Intellisense, documentation access, solution explorer, live code inspectation (C#/Resharper) and refactoring tools are lifesavers. I normally use VS even for 'Hello world' style apps now that I have an i7 computer with 12GB ram and SSD drives.
no matter how large my projects grow I always know instinctively where everything is placed and referenced. That said, I agree IntelliSense could sometimes come in handy when looking at other peoples code :P
The situation is a bit different when working as part of a team of 20 on a many-million-line project, plus another 20 authors who no longer work there, plus a million lines of middleware and other external libraries mixed in. Being able to quickly explore and comprehend a foreign code-base is a very important feature in the real world.
I know what you mean [about the disadvantage of using tools]. Some time ago I decided to try out the Visual C++ 2010 IDE and ... after having spend half an hour getting the project to compile because it was missing some files...[/quote]Sounds like you're happy to set up camp at the bottom of the learning curve [font="Times New Roman"] [/font]tongue.gif

[quote name='Dragonion' timestamp='1313627013' post='4850550']no matter how large my projects grow I always know instinctively where everything is placed and referenced. That said, I agree IntelliSense could sometimes come in handy when looking at other peoples code :P
The situation is a bit different when working as part of a team of 20 on a many-million-line project, plus another 20 authors who no longer work there, plus a million lines of middleware and other external libraries mixed in. Being able to quickly explore and comprehend a foreign code-base is a very important feature in the real world.
[/quote]
Don't forget that half the code could have come from a different developer with different coding standards, and much of the code didn't follow either company's standard to begin with.

Anybody can do without a lot of things on a single person development team. You can write in notepad, follow whatever standards you want, not comment any code at all, etc. When you ramp up to an iterative product that gains features from other completely unrelated projects being developed in a handful of different companies over nearly a decade, this just won't do. It might upset you to work with an IDE, but I know it would upset me more to track down a static function that's defined in one of 20 namespaces the size of california in a 1000+ file code base when I could just right click->Goto Definition/declaration/find all references/etc. Or even worse following variable references being passed around functions, which are mostly uncommented and follow different formatting conventions, all over your code base. Even using Agent Ransack, which is phenomenal, it would take hours to do what I can do in an IDE in seconds.

I'm really quite baffled at how your productivity doesn't suffer just on a personal project basis. Even in single file projects; being able to write a program with the benefit of intellisense/context highlighting, place breakpoints, build, debug, and go back to coding without ever taking your hands off the keyboard, switching windows, or slowing down is a huge boost to productivity.

edit: if you want an experiment, go here, and fix a bug in Blender. See how well that works for you in notepad.

I will use vi in unix machines when I need to do c or c++ or perl there. Otherwise I'll use visual studio or netbeans (for java).

I used to be the same way. I love using vim for C++. However WinSCP with .hpp and .cpp binded to visual studio kills vim in productivity. Either that or a samba folder. Save a file you just edited and it's replicated to the linux box nearly instantly. Then just have a make file and an SSH connection open. Works like a charm.

As for myself I use WinSCP's built in editor for web work (javascript/php stuff) and Visual Studio for C#/C++ stuff. For some things I can't imagine not using an IDE. Took a class recently on ASP.NET. I can't imagine not using VS for that.

Also at work even with a project written by like two people at the same time an IDE is amazing. Find references is one of my favorite tools. To see where my coworker happened to use a method/class is nice especially in a large solution running on 3 operating systems. (<3 C#)

Also what's a boot time? I have a SSD and 16 GBs of RAM. Pretty sure windows loaded all my programs into RAM so I don't see splash screens. :)
The situation is a bit different when working as part of a team of 20 on a many-million-line project, plus another 20 authors who no longer work there, plus a million lines of middleware and other external libraries mixed in.

Well, I am not working in a team of 20 people, and I do not have source-code from 20 ex-employees, so even though the situation would indeed be different if that had been the case, it's utterly irrelevant.

Being able to quickly explore and comprehend a foreign code-base is a very important feature in the real world.

That's funny because despite the fact that I don't work in a team I am pretty sure I do live in the real world, and reading the documentation for the SDKs and 3rd party tools I use has always eliminated the need to manually explore the source code in order to figure out how it works. As a matter of fact, I would recommend you begin doing the same. (Trust me; it's much faster!)
oh yeah.. this is one of those threads where old grumps have their big chance to show off their makefile editing skills in notepad.

the answers to these kind of threads are mostly useless because, unless you tell us WHAT you actually do.. you answer has no meaning at all.

I mean.. I am sure you guys can make hello world as fast as an IDE but, besides hello world, what did you actually produce without an IDE? Links pls?

Dragonion.. I would keep that VS2010 story for myself if I were you mate.. it doesn't make u look that smart. rolleyes.gif

Of course for what I do (Windows racing simulations in C++ with some C#) I use VS2008/2010 with VAX, because it would be demented not to do so... not impossible, just plain demented.

Stefano Casillo
TWITTER: [twitter]KunosStefano[/twitter]
AssettoCorsa - netKar PRO - Kunos Simulazioni

The way I see it, arguments like these usually centres around the resistance of changing work flow habits. Which I think is fair enough. One invests a lot of time in learning a dev environment, right up to the point where things become automatic. Changing work flow can slow most people down like a mofo. Basically the whole day was spent on frustration, with no work was done, and practically reading boring help manuals. But I think some changes are worth doing, no matter how painful the experience might be.

Currently I'm slumming it on the Mac with Xcode 4... god I miss VS2010. But I'm sure I'll get used to it.
Latest project: Sideways Racing on the iPad

This topic is closed to new replies.

Advertisement