You are not logged in.

#1 2010-11-07 12:59:54

Google
Member
From: Mountain View, California
Registered: 2010-05-31
Posts: 484
Website

IDEs versus plain text editors

This isn't meant to begin a flame war, rather I am curious. I have looked into reasons for and against IDEs and plain text editors. I want to know what you think.

Here are the common pros and cons I have found:

IDEs

Pros: refactoring, auto completion, automatic error checking without compiling, faster coding (more productivity), more organized.

Cons: bloated code (if you can write more code faster/easier you will), not helpful for remembering coding specifics (if you are using auto complete etc, you may rely on it).

Plain text editors

Pros: simpler, better for learning and remembering language specifics.

Cons: slower, no refactoring, auto completion, automatic error checking without compiling.

What do you think?

Offline

#2 2010-11-07 13:26:05

BaconPie
Member
Registered: 2010-08-11
Posts: 209

Re: IDEs versus plain text editors

I just use a plain text editor (gedit and vim for touch ups). If I was developing an huge application as part of a team of 30 with millions of lines of code, then maybe I'd use the niceties of an IDE.

But as far as simple stuff goes:

$ gcc -ansi -o hello hello.c

Is better than opening the IDE, configuring everything, setting up linkers, setting up how you'd like the editor to work, testing, exporting, compiling blah blah blah. Especially for learning. Putting a new programmer into an IDE is like putting a learner driver in a formula 1 racing car.

Last edited by BaconPie (2010-11-07 13:27:41)

Offline

#3 2010-11-07 13:35:36

drcouzelis
Member
From: Connecticut, USA
Registered: 2009-11-09
Posts: 4,092
Website

Re: IDEs versus plain text editors

Google wrote:

Here are the common pros and cons I have found

I don't think I've experienced any of the pros and cons you've mentioned for both IDEs and plain text editors. Did you write those from personal experience, of from information you gathered elsewhere?

Vim is my primary text editor. Even so, for my (pretty big) personal programming project I started using Geany IDE not too long ago for two main reasons:

* It remembers my programming "session", where I last left off. When using vim, I spend too much time setting up my programming environment, meaning things like which files to open and terminal window placement on my screen. That prevented me from doing a bit of programming if I didn't think I had enough time to set everything up.

* I can right click on anything (variable, function call...) and jump to where it's defined.

Of course, vim can do both of those things, but I suppose at that point it would be an IDE and not a plain text editor anymore anyway. wink

Offline

#4 2010-11-07 13:38:37

lman
Member
From: CZ
Registered: 2007-12-18
Posts: 255

Re: IDEs versus plain text editors

BaconPie wrote:

Is better than opening the IDE, configuring everything, setting up linkers, setting up how you'd like the editor to work, testing, exporting, compiling blah blah blah. Especially for learning. Putting a new programmer into an IDE is like putting a learner driver in a formula 1 racing car.

You have to do the config part only once... and most of the time, the IDE does it for you, or even includes the necessary programs to compile. When you start learning programming, you should at least once try to do it manually. But as build systems under linux get more advanced (qmake, cmake) for bigger projects editing those manually can be a pain in the *.
I personally use nowadays IDEs for most of my programming. I used to be a vim user, but the advanced auto completion, refactoring,  more integrated stuff etc. made me switch.

Offline

#5 2010-11-07 13:49:30

litemotiv
Forum Fellow
Registered: 2008-08-01
Posts: 5,026

Re: IDEs versus plain text editors

drcouzelis wrote:

Vim is my primary text editor. Even so, for my (pretty big) personal programming project I started using Geany IDE not too long ago for two main reasons:

Yes Geany is a nice mix between a simple editor and a full-blown IDE. These days i mainly use Vim when working remotely or for editing single files, and Geany for larger projects. I'm sure though that with the right plugins and configuration Vim could be just as functional for that, but you really have to spend some time setting up everything right then.


ᶘ ᵒᴥᵒᶅ

Offline

#6 2010-11-07 13:52:45

Google
Member
From: Mountain View, California
Registered: 2010-05-31
Posts: 484
Website

Re: IDEs versus plain text editors

drcouzelis wrote:
Google wrote:

Here are the common pros and cons I have found

I don't think I've experienced any of the pros and cons you've mentioned for both IDEs and plain text editors. Did you write those from personal experience, of from information you gathered elsewhere?

Vim is my primary text editor. Even so, for my (pretty big) personal programming project I started using Geany IDE not too long ago for two main reasons:

* It remembers my programming "session", where I last left off. When using vim, I spend too much time setting up my programming environment, meaning things like which files to open and terminal window placement on my screen. That prevented me from doing a bit of programming if I didn't think I had enough time to set everything up.

* I can right click on anything (variable, function call...) and jump to where it's defined.

Of course, vim can do both of those things, but I suppose at that point it would be an IDE and not a plain text editor anymore anyway. wink

I found those from digging around Stack Overflow, the Arch forum, and a number of other places.

edit:

I just looked up Geany, it looks very interesting. Can you do Vim bindings in it?

Last edited by Google (2010-11-07 14:04:41)

Offline

#7 2010-11-07 14:25:36

litemotiv
Forum Fellow
Registered: 2008-08-01
Posts: 5,026

Re: IDEs versus plain text editors

Google wrote:

I just looked up Geany, it looks very interesting. Can you do Vim bindings in it?

http://www.geany.org/Documentation/FAQ#QQuestions1


ᶘ ᵒᴥᵒᶅ

Offline

#8 2010-11-07 14:26:30

Awebb
Member
Registered: 2010-05-06
Posts: 6,662

Re: IDEs versus plain text editors

I use Geany (notepad++ on Windows) as both, text editor and IDE. It has nice features like Syntax highlighting, but it doesn't prevent me from learning how things work.

Pro IDE:
- Larger projects can be organized very well.

Contra IDE:
- The learning curve for the IDE conflicts with the learning curve of the language. If you start both at the same time, you spend at least half of your work fiddling with the IDE.

Offline

#9 2010-11-07 14:31:06

Google
Member
From: Mountain View, California
Registered: 2010-05-31
Posts: 484
Website

Re: IDEs versus plain text editors

Geany looks like an interesting smaller-end IDE. I tried out Net Beans once and it was chaotic considering it was my first time trying to code in Java.

I think for learners a plain editor or light IDE is a good idea.

Do most programming jobs require the use of a specific IDE? I assume a lot of Microsoft positions working with .net etc, would need the MS VS or something, but what about Java programming jobs, C/C++ etc?

Offline

#10 2010-11-07 14:37:28

AlexS
Member
From: Munich, Germany
Registered: 2009-05-16
Posts: 114

Re: IDEs versus plain text editors

You could also consider Emacs, which can provides IDE-like capabilities with far less grief than vim, but retains the advantages of cli applications (ex can use it via ssh, etc)

Offline

#11 2010-11-07 15:37:25

frabjous
Member
Registered: 2010-07-13
Posts: 367

Re: IDEs versus plain text editors

Unless you're someone who only develops or writes in one language or filetype, to me, it seems that the right answer to this question is to choose a plain text editor that supports IDE-like plugins. That way you get the best of both worlds. You aren't completely switching your editing environment when you switch from one language or task to another, but through the plugins you get the extra power (autocompletion, compilation routines, etc.) you need. It also makes for modularity -- you get exactly as much editing power as you soon. Modularity is something all unix/linux fans--Arch users especially--should be able to appreciate.

Of course, all the editors highlighted in this thread: emacs, vim, gedit and geany all fall roughly into this category.

AlexS wrote:

You could also consider Emacs, which can provides IDE-like capabilities with far less grief than vim, but retains the advantages of cli applications (ex can use it via ssh, etc)

You might want to reword that last part. I got confused thinking that you were saying that the "ex" text line editing program somehow could make use of emacs. But I suppose you actually just meant "for example" by "ex".

Last edited by frabjous (2010-11-07 15:38:03)

Offline

#12 2010-11-07 16:42:48

tlvb
Member
From: Sweden
Registered: 2008-10-06
Posts: 297
Website

Re: IDEs versus plain text editors

My personal experience, in this case with eclipse+egit tells me that an ide can be very helpful when coding
as it will suggest stuff and mark code in a way that you do not need to double check stuff back and forth
between your source files as much to get the parameters to a function correct as a you would need in a
simpler text editor. This is a big time-saver.

However when stuff starts to go bad (in this case with egit, perhaps my own fault more than egit's) there
is a great advantage to using tools following the unix philosophy (one program per task) and setting up
the environment yourself as it forces you to be in more control, instead of having the ide setting up
everything for you behind the scenes-which would then have you scour the web to look for those hidden
config files you need to change when the you or the ide makes an error the ide was not programmed to
handle.

Last edited by tlvb (2010-11-07 16:43:41)


I need a sorted list of all random numbers, so that I can retrieve a suitable one later with a binary search instead of having to iterate through the generation process every time.

Offline

#13 2010-11-07 17:34:45

Ryujin
Forum Fellow
From: Centerville, Utah
Registered: 2005-05-12
Posts: 246
Website

Re: IDEs versus plain text editors

In my experience it depends on the project, and on the level of developer you are. I have heard that most of the senior most developers at Microsoft for instance use Vim.
When I started programming in College I used eclipse and it was a life saver, and if I was going to develop on a large Java project I would most likely use eclipse, a C++/QT (I think the only way to do C++ is with QT) I would use qtcreator.

But since most of my work is in python and ruby now days, I am a vim man!

Honestly, in the long run becoming familiar with vim and maybe emacs will be a great help to your career, and they are not that hard, just take some getting used to.

Offline

#14 2010-11-07 18:11:10

Pank
Member
From: IT
Registered: 2009-06-13
Posts: 371

Re: IDEs versus plain text editors

In my opinion, Emacs lives up to all of the pros in your list and none of the cons. Then again, it is hardly a complete list of pros and cons smile


Arch x64 on Thinkpad X200s/W530

Offline

#15 2010-11-07 23:35:00

Ichimonji10
Member
Registered: 2010-11-07
Posts: 32
Website

Re: IDEs versus plain text editors

I've got to admit that I'm not a "real" programmer. I'm a student in college right now. That's the caveat against my opinion. However, in the past year and a half, I've written over 20,000 lines of code and learned a little bit of C, C++, assembly (one of the many variations), Perl, and Java.

In that time, I've never found a compelling reason to use an IDE in my own work. I use gedit for actual coding (syntax highlighting and theming options are nice) and the console for all compiling and file management. The biggest reason I do this is that it forces me to become comfortable with straight-up code. It's really forced me to think about syntax and how to write readable, well-formatted code. It also forces you to understand the relationships between different files. There's no IDE weaving magic behind the curtain; you create the magic yourself.

As someone learning how to code, I'd definitely go down the no-IDE route. I know fellow students who are still not indenting code correctly ("I can just click this button and collapse the code!"), cannot recognize basic compiler error messages ("main is undefined? Why?"), and do not understand the importance of documentation ("I can just click on the function name and view its definition. What's with the extra work?"). I'm not against IDE's per se; I just find that they can promote some very bad habits in the unwary user.

Last edited by Ichimonji10 (2010-11-07 23:35:49)

Offline

#16 2010-11-08 15:16:08

baion baion
Member
From: Nicosia, Cyprus
Registered: 2009-06-13
Posts: 48

Re: IDEs versus plain text editors

Not an experienced programmer I have just been playing with python during my free time. Vim does all I want and I do not even bother to look into an IDE. I do not even use the advanced features of Vim. I just use a custom settings file found here on the forums and that was it. Plus I also agree with Ichimonji10 when he/she said that "It's really forced me to think about syntax and how to write readable, well-formatted code. It also forces you to understand the relationships between different files. There's no IDE weaving magic behind the curtain; you create the magic yourself."

Offline

#17 2010-11-08 17:55:51

Cyrusm
Member
From: Bozeman, MT
Registered: 2007-11-15
Posts: 1,053

Re: IDEs versus plain text editors

Outside of work I only use vim and a variety of compilers/interpreters.  I've played around with several IDE's and I can certainly understand why people like them.  They usually do a lot of hand-holding during code writing and editing, and usually have a very intuitive and simple to use debugger.  all of which are a boost to productivity in it's own way.  However, I feel that this "hand-holding" can certainly be detrimental to learning good coding techniques and practices, and also leads to a strong reliance on the debugger, which in my opinion is not a good thing. 

I feel that when writing code without things like tab completion and a graphical debugger, you concentrate more on not making basic mistakes, because part of you knows that command line debugging sucks and you should just do it right the first time.  with an IDE you work with the attitude that the debugger and text completion are doing most of the grunt work, so you write sloppy code that you may not understand.

Vim (and emacs) have the strong advantages of simplicity, and the ability to edit quickly.  all commands are performed using keystrokes which leads to a higher initial learning curve, but a higher long-run productivity (since you don't have to push the mouse around and dig through menus to do something, you just type in a quick command.) 

of course this is all personal opinion.


Hofstadter's Law:
           It always takes longer than you expect, even when you take into account Hofstadter's Law.

Offline

#18 2010-11-09 21:50:03

dragonhawk360
Member
Registered: 2010-10-20
Posts: 21

Re: IDEs versus plain text editors

I grew up learning C++ on an IDE, which by its hand-holding killed the learning process.  Then, in high school intro to programming, on the linux machines, we had only g++ and vi to edit our code.  After then, I learned the advantage of simplicity, and finally got a good grasp of C++.  My current editor is still Vi (or Vim).


Arch i686 + KDE4
"I Write Programs, Not Excuses" - Panic! at the Kernel

Offline

#19 2010-11-11 11:57:16

Cloudef
Member
Registered: 2010-10-12
Posts: 636

Re: IDEs versus plain text editors

I usually do small projects on medit text editor, (Mostly C code), but something which I start to design, I'll rather start IDE with all my source/header files and stuff nicely lined up with auto completion and session managers.

Also Geany looks really interesting, I've been using code::blocks and may make a switch, since I don't really like WXWidgets.

Offline

#20 2010-11-11 12:03:32

hume's doona
Member
Registered: 2009-12-11
Posts: 206

Re: IDEs versus plain text editors

dragonhawk360 wrote:

I grew up learning C++ on an IDE, which by its hand-holding killed the learning process.  Then, in high school intro to programming, on the linux machines, we had only g++ and vi to edit our code.  After then, I learned the advantage of simplicity, and finally got a good grasp of C++.  My current editor is still Vi (or Vim).

linux machines in high school? epic

Offline

#21 2010-11-11 13:53:04

drcouzelis
Member
From: Connecticut, USA
Registered: 2009-11-09
Posts: 4,092
Website

Re: IDEs versus plain text editors

Cloudef wrote:

Also Geany looks really interesting, I've been using code::blocks and may make a switch, since I don't really like WXWidgets.

Hi, Cloudef. I'm learning how to use wxWidgets. I was wondering, what don't you like about wxWidgets?

I'm confused, because they both use GTK. (Geany uses GTK, code::blocks uses wxWidgets which uses GTK)

Offline

#22 2010-11-11 14:45:26

Ichimonji10
Member
Registered: 2010-11-07
Posts: 32
Website

Re: IDEs versus plain text editors

hume's doona wrote:
dragonhawk360 wrote:

I grew up learning C++ on an IDE, which by its hand-holding killed the learning process.  Then, in high school intro to programming, on the linux machines, we had only g++ and vi to edit our code.  After then, I learned the advantage of simplicity, and finally got a good grasp of C++.  My current editor is still Vi (or Vim).

linux machines in high school? epic

In my experience, this sort of opportunity is quite exceptional. You said this was for an intro to programming course. Was the entire school populace given access to these machines?

I myself went to a tech center for my last two years of school. They had both old Linux and Cisco boxes that we were able to play with. It was an amazing opportunity, but that was a pretty selective program, and few people had access to the same toys that I did.

@baion baion Thank you.

Cyrusm wrote:

"hand-holding" can certainly be detrimental to learning good coding techniques and practices, and also leads to a strong reliance on the debugger

This is exactly the sort of anecdote that I can relate to.

Offline

#23 2010-11-11 16:12:36

cirkit
Member
From: San Francisco
Registered: 2008-01-29
Posts: 80
Website

Re: IDEs versus plain text editors

I have a few IDEs such as Code::blocks and Eclipse, but I have not got around to using them extensively since I tend to use Vim for most of my editing needs. Regarding GUI text editors, I use Bluefish and gedit for simple editing. Maybe when my level of programming develops further, I may start to use IDEs far more for the 'added' functionality.

I do believe that both IDEs and text editors are fine to use depending on the circumstances, such as working on a large project with others, or smaller projects alone. I am really glad I started with cli text editors when I first started learning how to code instead of an IDE with all the bells and whistles because it has allowed myself (and im sure others can agree) to focus on my programming skills, instead of being overwhelmed by an IDEs learning curve at the same time.

Offline

#24 2010-11-11 21:56:54

Cloudef
Member
Registered: 2010-10-12
Posts: 636

Re: IDEs versus plain text editors

drcouzelis wrote:
Cloudef wrote:

Also Geany looks really interesting, I've been using code::blocks and may make a switch, since I don't really like WXWidgets.

Hi, Cloudef. I'm learning how to use wxWidgets. I was wondering, what don't you like about wxWidgets?

I'm confused, because they both use GTK. (Geany uses GTK, code::blocks uses wxWidgets which uses GTK)

Its pain to ass setup up, the build system is mess, it uses different "presets", and needs it own setup.h files, this already makes your project for others to build much harder. One example is PCSX2 which game me heck of a time to set WX right, atleast Dolphin-emu had it set-up much better and built fine. I like simpler and straightforward way.

Personally I just use GTK directly, guess Wx is all right for cross-platform apps, but it is not really something I dig. Also on runtime it just does not feel so snappy as QT or GTK.
This all comes from little personal experience tho, I don't program much GUI applications, more like cmd tools and OpenGL apps. GUI Apps usually tend to frustrate me.

Offline

#25 2010-11-11 22:57:29

ngoonee
Forum Fellow
From: Between Thailand and Singapore
Registered: 2009-03-17
Posts: 7,358

Re: IDEs versus plain text editors

Ichimonji10 wrote:
Cyrusm wrote:

"hand-holding" can certainly be detrimental to learning good coding techniques and practices, and also leads to a strong reliance on the debugger

This is exactly the sort of anecdote that I can relate to.

To play the devil's advocate, editors such as vim and emacs are also a different sort of 'hand-holding'. Once you get used to them you can't just 'use notepad' anymore smile


Allan-Volunteer on the (topic being discussed) mailn lists. You never get the people who matters attention on the forums.
jasonwryan-Installing Arch is a measure of your literacy. Maintaining Arch is a measure of your diligence. Contributing to Arch is a measure of your competence.
Griemak-Bleeding edge, not bleeding flat. Edge denotes falls will occur from time to time. Bring your own parachute.

Offline

Board footer

Powered by FluxBB