IDE's versus Text Editors

Nov 12, 2011 at 8:27pm
I've recently been told by quite a few programmers that it is best to use a text editor when it comes to writing code, though I can't see any reason for this, so I am staying in my corner of the IDE's. While I said this to myself, I knew that there was nothing but a huge learning curve for me to go to something like emacs.

I wonder, what does the C++ community think of the either one and its good/bad sides?

[I know that this is almost begging for a flame war, but this is the lounge, it should be a civilized debate]
Nov 12, 2011 at 8:38pm
Text editors are for masochists. They make building and debugging a real chore. While it's technically possible to write a program using nothing but notepad, anyone that does it is a fool (unless they're under some SEVERE system restraints).

That said... when people say they program with just a text editor, they're usually lying. Most popular text editors used for this purpose function more like "mini IDEs" in that they have built in functionality to communicate/invoke an outside compiler/debugger just like a full IDE does. They just don't have as many bells and whistles.

As for why people prefer "mini IDEs" over "full IDEs", it's probably performance reasons. Most popular IDEs are a lot more demanding than their lightweight mini IDE counterparts. Or maybe they just like the simpler UI.

Personally, I'm a full IDE man.
Nov 12, 2011 at 8:47pm
Like Disch said, what those people simply call "text editor" is usually something with a file browser, incorporated shell, numbered lines and pretty syntax highlighting.

You use what suits your style and your needs. If you work with Project files, IDEs. If you work with Makefiles, "text editors".
Nov 12, 2011 at 8:55pm
Even people who work with makefiles are often using mini IDEs.
Nov 12, 2011 at 9:06pm
There's a little text editor at the heart of every IDE's text editor.
Nov 12, 2011 at 9:16pm
So then the question becomes... where do you draw the line between what's a "text editor" and what's an "IDE"?
Nov 12, 2011 at 9:20pm
While I agree on everything that has been said here, I'd like to spice things up a bit, so here's something that was mentioned between the conversation that a few others and I had:

[For using text editors:] Using the IDE's is exactly like the "shoot yourself in the foot" for programming languages. Text editors make you shoot yourself multiple times, often wondering who pulled the trigger, but in the end, you can walk out of there with a few bandages.

However, when using an IDE, it is like holding a rocket launcher that weighs tonnes and has about 700 billion buttons on it, so shooting yourself in the foot may not happen if you know what to press, but when you don't everything fails.


I haven't a clue what it was based on either, but it made me think, IDE's do have one hell of a lot of features that I will probably never use. So, what is the point of even having one.

*Goes back to Code::Blocks hoping for redemption*
Nov 12, 2011 at 9:20pm
You said yourself, text editors are lightweight whilst IDE's are "full" and bloated.
Nov 13, 2011 at 1:33am
I don't know of any IDE that would allow you to "shoot yourself in the foot" or cause it that "everything fails". It sounds to me like your source is a bit full of himself.

People use the tool they find most comfortable and capable within the purview their requirements. Personally, I use my Delphi 5 IDE for editing nearly everything. It is also mighty convenient when I am coding in (Object) Pascal.

When I am just typing something in that I want to quickly compile and test before posting, I'll just use the command prompt and, if some revision is necessary, Notepad.

I'm also partial to NEdit on *nix, because I can make it behave the way I want it to, and vim.

But, again, the proper tool for the proper place. If I am coding in Visual Basic, I use the VB IDE. If I am playing around with Scheme GUI stuff, I'll use DrRacket. Etc.

The reason IDEs exist is to provide a bit of powerful convience to make life easier. You are not a wimp to want to save yourself some time and money by using more powerful or more convenient tools.

Obligatory link: http://xkcd.com/378/
Last edited on Nov 13, 2011 at 1:34am
Nov 13, 2011 at 3:10pm
Do you develop on the local machine or SSH into a server? All of my professional development has been done on remote servers and usually from a variety of locations including everything from my home desktop, to my work laptop, the laboratory test-bed, and in some cases even field hardware. A terminal-based solution fits very well for this purpose. I usually use Vim, which also happens to be on all of the platforms/machines I need to develop on. With that said, Vim has a plethora of customization options and in some cases I'm running it with my preferences and in others just the defaults.

At my current employer, we have tool-specific groups that maintain and improve development tools. We also have volunteer groups that maintain in-house add-ons for Vim, Emacs, etc.. It's actually amazing what capabilities we have available. Our editors have integrated menus and shortcuts for version control, building, source navigation, automated testing, bug tracking, code review setup, and more.
Last edited on Nov 13, 2011 at 3:12pm
Nov 14, 2011 at 2:49am
At my current employer, we have tool-specific groups that maintain and improve development tools. We also have volunteer groups that maintain in-house add-ons for Vim, Emacs, etc.. It's actually amazing what capabilities we have available. Our editors have integrated menus and shortcuts for version control, building, source navigation, automated testing, bug tracking, code review setup, and more.


Hmmm... I would guess you work in a pretty big company to commit resources to do such in-house add-on for your text editors/mini-IDE/full-blown IDE ?

Personally for me, if the project is huge, a full-blown IDE really cuts down a lot of time searching/hunting/investigation/code tracing etc. Think Eclipse.

If the project is "small", full-blown IDE is over-kill. I use Notepad++ which is pretty lean and works well so far for me. Of cuz for specific programming language like Visual Basic, I use VB IDE as that is pretty the default isn't it ?

Conclusion: I adapt my text editors based on problems/programming language on hand. I like to code in Windows desktop text editors and then SCP/FTP over to Linux for compilation. For editing direct in Linux most probably is those .sh files for minor changes.

Nov 14, 2011 at 3:03pm
Do one thing and do it well.
If you want to write text, then use a text editor. Use a compiler to compile and a debugger to debug.
¿why change your editor just because you want to try another language?

AFAIK makefiles are a more portable than project files.
Nov 14, 2011 at 3:15pm
AFAIK makefiles are a more portable than project files.


CMake.
Nov 15, 2011 at 1:11am
Aren't CMake.txt files like glorified makefiles with some added autoconf bells and whistles?

-Albatross
Nov 15, 2011 at 6:35am
Personally most text editors I have used are basically IDEs for example Vim , Emacs , JEdit , etc but the reason I love "text editors" is because they are:

A) They can be customized to your liking.
B) They do not use to many resources (my computer has 1.3 GHz CPU and 1GB RAM)
C) The key bindings save so much time
D) It makes programming a lot more fun than Code Blocks

Now don't get me wrong I love Code Blocks and use it for GUI but I prefer Emacs.

Don't believe me that Emacs is fun go here:

http://www.google.com/search?gcx=c&sourceid=chrome&ie=UTF-8&q=Is+emacs+fun
Last edited on Nov 15, 2011 at 6:38am
Nov 15, 2011 at 12:58pm
The only IDE I've found that I like is MonoDevelop. I really, really like MonoDevelop.
Nov 15, 2011 at 9:27pm
closed account (1yR4jE8b)
I, personally, can't stand it. It feels like a glitchy, crappy version of Visual Studio with less language support.
Nov 16, 2011 at 12:11am
It does have a few annoying bugs, but it also has a few features that Visual Studio lacks, such as auto-generated XML documentation (it's not always great, e.g., a variable called "CursorPosition" results in /// <summary> The cursor position </summary>" but it's very good with constructors, destructors, the Main function, and the override keyword). In Visual Studio if you want a right-margin at 80 columns you have to get a plug-in (and you have to have the version that allows plug-ins, otherwise you can browse the selection of plug-ins wistfully and never actually use them). In MonoDevelop that comes as part of the editor. I will admit, Visual Studio is pretty nice, but I like MonoDevelop more.

As for language support, in fairness it is aimed mainly at C#, with VB and ASP support as extras. It also supports C/C++ but I don't really use C++ any more and with C I only use custom-written Makefiles. If I can find a good-enough C IDE with completion features that work well (I thought I hated completion, as it happens I just hate Code::Blocks' completion) I'll try it.
Nov 18, 2011 at 12:29am
I like vim... super customizable, fast, and runs on super old boxes flawlessly :P
Nov 18, 2011 at 4:35am
closed account (1yR4jE8b)
I like Vim for basic tasks, but for large projects, I need to use some kind of IDE. Whether it's Visual Studio, Eclipse, Netbeans, or whatever: right tool for the right job.
Topic archived. No new replies allowed.