LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Programming (https://www.linuxquestions.org/questions/programming-9/)
-   -   IDE vs Text Editor (https://www.linuxquestions.org/questions/programming-9/ide-vs-text-editor-912722/)

H_TeXMeX_H 11-10-2011 05:00 AM

I use geany as both a text editor and an IDE ... so I'm not sure how to vote, maybe other.

Cedrik 11-10-2011 05:04 AM

Quote:

Originally Posted by H_TeXMeX_H (Post 4520467)
I use geany as both a text editor and an IDE ... so I'm not sure how to vote, maybe other.

+1, I do the same since I noticed geany loads faster than kwrite on my system :D

asipper 11-10-2011 07:31 AM

I want to change my poll from Other to Both. How would I do that?

theNbomr 11-10-2011 08:43 AM

For a beginning programmer, a good IDE has the advantage of being able to provide a lot of help with matters of syntax and also knowledge of the standard functions/classes/subroutines. However, on the down side, it is often confusing to newbies whether a particular problem is based in the code they have written, or simply in the use/configuration of the IDE. Moreover, the IDE often conceals major parts of the software development process which are part of what you should be learning. This becomes an issue when you have to work on the code without the benefit of the training wheels provided by the IDE.
In Linux, I've only used the Eclipse IDE in any significant amount, and I find it messy to import and export software projects between it and a non-Eclipse environment. If I could shift seamlessly between the two environments, I would probably use the IDE more. I've always thought I should be able to say to Eclipse 'The project I'm working on is rooted <here>; you figure out how to deal with it'. Instead, I have to migrate the work into the IDE's world. I've never been a fan of mixing the IDE's internal book-keeping with the actual code that I'm writing and building. Still, as time permits, I try to convince myself that getting comfortable with Eclipse will have a net gain of some sort. So far, though, put me solidly in the 'Text Editor' column.

There are some pretty good programmer's editors available. I do use vi because of it's ubiquity, never managed to learn emacs, and routinely use nedit. If every *nix environment I worked in had one of the fancy Qt/GTK based editors (kate, kwrite, gedit, others I can't think of right now), I would probably migrate toward one of those.

--- rod.

ordinary 11-10-2011 11:08 AM

I am primarily an Ada developer. For programming in the large, I find a good IDE indespensable; I prefer GPS. For knocking little C or Python together, vi is fine.

dugan 11-10-2011 11:42 AM

Quote:

Originally Posted by ordinary (Post 4520813)
I am primarily an Ada developer.

Seriously? Do you work for a defence contractor?

SecretCode 11-10-2011 12:18 PM

I can't vote because there isn't an option for "it depends on the size of the project". I'll use a text editor with syntax highlighting for small scripts ... less than 100 lines say ... and a full IDE for things with multiple classes or when on-the-fly compiling and error checking is worthwhile.

OK, I've voted "other" considering this:

Quote:

Originally Posted by asipper (Post 4520619)
I want to change my poll from Other to Both. How would I do that?

Only a mod or admin can do that. You could wait for someone to notice your request ... you could PM one of the mods, but it's not fair to pick just one ... or I suppose you could click Report on your OP and put the request in the note. That would flag it for mod attention - don't see anything wrong with that.

ordinary 11-10-2011 01:48 PM

Quote:

Originally Posted by dugan (Post 4520841)
Seriously? Do you work for a defence contractor?

Yes, very serious. I've been an Ada developer for well over 20 years, and an Ada proselytizer for nearly as long. I have done other things, but I prefer Ada. I find it the most productive general purpose language for large projects. It's the opposable thumbs of large scale software development.

Ada finds application in various industries. I'm told it is currently more popular in Europe than in the US, but have not observed that personally.

I've even done web-development in Ada.

John VV 11-10-2011 03:02 PM

both
use the best tool for the job
ajunta or eclipce or gedit or vi or emacs

it depends on what you are doing

formiaczek 11-11-2011 03:11 AM

Hi,
I've noticed for years, that low-level 'gurus' would stick to text editors no matter what (as a rule of a thumb). I've been using couple a few of both and honestly it's a matter of a preference and balance between 'know-how' and 'easiness'. And I've been using Eclipse CDT for almost all of my development.

Why? Well - eclipse CDT seems to get better over time and is pretty much working nicely on most of popular platforms(windows/linux etc.). Although the indexer can struggle on huge projects - for gcc applications / small projects and also embedded stuff (as you configure it) it can do all the job for you: just press ctrl+F11 to get the program executed. It allows you to easy debug it in a 'graphical' environment, you can switch perspectives etc.

But the most importantly - it is the best editor I know that does the formatting well (and you can set up any type of style you like / prefer / need (customizing it) and writing the code is just easy: you can finally focus on real work and forget about trailing spaces.. or indentations.. etc - press Ctrl+Shift+F - it will format all the text for you (and so it will as you type). When indexed - leave mouse over a macro (or function) - it will resolve macros so you see what code the preprocessor would create (and it will also show you steps that macro is resolved). Same for functions / other declarations: you'll see the hover with function body, ctrl+click to get there for editing. Many other short-cuts to jump to 'last edited place' etc. You can also customize all shortcuts, define your own ones etc. Of course there's incremental search, file-browser, refactoring, header browsers and other 'standard' tools (hex editor, memory viewer and many more).

Ok - I know, that you can spend many years getting to know tools like gvim or emacs (there's also an old 'elvis')- and many people will tell you that these tools can do things like above - but you might well spend lots of time trying to set up tricky options in some configuration files (like gvim)- and might take you weeks to get it set up = eclipse just has it 'by default' - and you only need to klick through
*incrementally searchable* options to change 'defaults' to your custom preferences.

From free tools only CodeBlocks is comparable - it's a great tool probably much better than eclipse fin practice if you do variety of projects - as it has many scripts / predefinied configurations / templates to create different types of them (e.g. not only console, as in eclipse, but has templates or types for projects like: static/dynamic link libraries,GTK+ / DirectX, GLUT, GLFW, QT, Win32GUI, OpenGL and also embedded ones: ARM / AVR, and even device-drivers and D-language apps). The indexer in the CodeBlocks is quite good and fast). Cons are for me - that given all great stuff that CodeBlocks has - I couldn't set up exactly the code formatting style that was required as a standard in my company and I could easily do that in eclipse.

Anyways - in summary - it is a matter of preference really. Go and try it yourself, but don't get convinced, that 'real gurus' are only ones, who use vim or emacs - clever people are lazy and don't do work if there are good tools to do that work for them ;)

Rickert 11-11-2011 05:48 AM

Quote:

Originally Posted by formiaczek (Post 4521333)
Hi,
I've noticed for years, that low-level 'gurus' would stick to text editors no matter what (as a rule of a thumb). I've been using couple a few of both and honestly it's a matter of a preference and balance between 'know-how' and 'easiness'. And I've been using Eclipse CDT for almost all of my development.

Why? Well - eclipse CDT seems to get better over time and is pretty much working nicely on most of popular platforms(windows/linux etc.). Although the indexer can struggle on huge projects - for gcc applications / small projects and also embedded stuff (as you configure it) it can do all the job for you: just press ctrl+F11 to get the program executed. It allows you to easy debug it in a 'graphical' environment, you can switch perspectives etc.

Not always graphical environment is good. Take Linux bash shell for example. I find that working with the shell is more comfortable, especially when working on remote machine. Unlike remote desktop with GUI, which is really slow, the shell is really all I need.

Also, not always you can compile automatically with F11 (unless you program in languages with JIT compiler like Java or scripting languages. You still have to write the make file, so you can press ctrl+f11 to build.

Quote:

But the most importantly - it is the best editor I know that does the formatting well (and you can set up any type of style you like / prefer / need (customizing it) and writing the code is just easy: you can finally focus on real work and forget about trailing spaces.. or indentations.. etc - press Ctrl+Shift+F - it will format all the text for you (and so it will as you type). When indexed - leave mouse over a macro (or function) - it will resolve macros so you see what code the preprocessor would create (and it will also show you steps that macro is resolved). Same for functions / other declarations: you'll see the hover with function body, ctrl+click to get there for editing. Many other short-cuts to jump to 'last edited place' etc. You can also customize all shortcuts, define your own ones etc. Of course there's incremental search, file-browser, refactoring, header browsers and other 'standard' tools (hex editor, memory viewer and many more).
Emacs has most of this. For which it doesn't have, other features make up.

Quote:

Ok - I know, that you can spend many years getting to know tools like gvim or emacs (there's also an old 'elvis')- and many people will tell you that these tools can do things like above - but you might well spend lots of time trying to set up tricky options in some configuration files (like gvim)- and might take you weeks to get it set up = eclipse just has it 'by default' - and you only need to klick through
*incrementally searchable* options to change 'defaults' to your custom preferences.
You don't need many years to learn vim or emacs, simply because it's not similar to Microsoft standard way of text editing. You can learn the basic with built-in tutorial for just an hour at most, and in just a few days you can learn most of useful editing techniques (copy, paste, incremental/backward search, open file, open tab, using buffers...). You don't need to set up a lot of things with Emacs. You can just download the starter config file on the internet, or plug in different modules. To "install" new module, all you need to do is to download the module, put its configuration code in an .el file and then include it in ~/.emacs . It seems cumbersome at first, but once you get used to it, it's really easy. I used emacs for over a year and still learning it while using. Note that when I say learning, it means I have already learned many advanced editing techniques with Emacs and finds it more productive then using IDE like Visual Studio, it has so many features for me to discover, unlike the other IDEs, which are limited in many ways.

Really, even with basic editing features, the biggest advantages vim and emacs offer me is that I can fully work without switching between mouse and keyboard too usual. Also, I can get a very big area on screen for editing text, unlike other IDE where most of the inner windows consume too much space, which I occasionally use. The other IDE I use is Eclipse CDT. Still, I bind the keys to Emacs style.

formiaczek 11-11-2011 06:49 AM

Quote:

Originally Posted by Rickert (Post 4521427)
Also, not always you can compile automatically with F11 (unless you program in languages with JIT compiler like Java or scripting languages. You still have to write the make file, so you can press ctrl+f11 to build.

Well - I guess that recent CDT automatically creates /updates makefiles / build configuration, so even adding new source file / source dir - will automatically ad them (although still you have to manually add libraries you want to link against, but I'm not sure if this isn't the case in other IDE tools too). And CDT has error parsers, you you see right away (as you type) parsing / compiling errors (this might save time when build takes longer)

And you're right, it's not that bad to configure emacs, but still you need to do certain steps -get to find that configuration, customize it if needed and swap manually some config files to get it done.
Might be a good experience in itself of course. But just the fact you still have to do it might be a bit discouraging - it wasn't bad if a tool needed such actions (some*) years ago.. but now it could be a bit more user-friendly and more ready to use :)

Anyway, hopefully the author of the topic won't get confused too much, it is a matter of preference and is use-case specific.

sycamorex 11-11-2011 07:11 AM

Quote:

Originally Posted by formiaczek (Post 4521456)
... but now it could be a bit more user-friendly and more ready to use :)

I would expect applications like Thunderbird/Firefox to be "user-friendly" (it's a very relative concept anyway), but Emacs is a tool for developers and if a starting developer is afraid of modifying/pasting a few lines of config file to enable a particular mode in Emacs, then sorry but... perhaps programming is not the right career path for them.

Rickert 11-11-2011 07:27 AM

Quote:

Originally Posted by sycamorex (Post 4521473)
I would expect applications like Thunderbird/Firefox to be "user-friendly" (it's a very relative concept anyway), but Emacs is a tool for developers and if a starting developer is afraid of modifying/pasting a few lines of config file to enable a particular mode in Emacs, then sorry but... perhaps programming is not the right career path for them.

Fixed.

When I was first moving from IDE world in Windows to Linux world, I was shocked when I have to use vim to program (now it's very useful), and it left a big question on why I have to use vim. I understand how people, who are not familiar with Linux in general, feel. It's really frustrating as when you move from Java to C/C++, since your starting languages are scripting languages or high level language like Java, which abstracts the low level aspects. People are too used to the Windows way of doing.

So if OP is not really optimized keyboard usage, but is more comfortable with the GUI environment, then IDE is the best choice.

sycamorex 11-11-2011 07:31 AM

Quote:

Originally Posted by Rickert (Post 4521484)
Fixed.

Thanks. I was talking to someone when I typed my post.


All times are GMT -5. The time now is 12:48 AM.