Holy War One: Your programming editor
by Mark Storer · in Technical Issues · 05/16/2005 (3:06 pm) · 9 replies
In the private SDK forums, several of us have overrun a "GG coding philosophy" thread and turned it into a tab-vs-space/which-editor-is-best free for all.
The tab-space thing was pretty much beat to death, but I'd like to ask around about IDE/Editors.
What editors do you use and why? How many have you used, and for how long (qualify your exerience).
I've been using various incarnations of VC++ for some time now (8 years?! I'm getting old). It's quite decent. Code coloring, code completion, available macros, "code folding", and various other goodies. It's second place in my book.
First place goes to IntelliJ's " IDEa" java development environment. It Is SWEET. It parses code as you type it to clue you in to syntax errors. It has a handy keyboard shortcut for "go do the definition of whatever's under the cursor"... plus all the stuff VC++ has, only done RIGHT. It has a lot of "refactoring" capability built in: Renaming variables (across your entire project), moving functions up and down the class heirarchy, all that jazz. You name it, they've got it.
I'm not working for them, I'm just a happy customer: www.jetbrains.com/idea/index.html
I've used Director 3->5 (something akin to notepad for text editing), notepad, vi (never got into EMACS), borland's old pascal environment (way back pre-90: highschool), lots of stuff.
A good IDE can save a programmer a Lot Of Time in busywork. It's not going to slash your development time to 1/10th what it used to be, but knocking off a third is quite reasonable, particularly when you've got all your hot-key's memorized and can touch-type.
I fully admit, there are environments out there where all these toys aren't available, and you HAVE to use notepad-grade text editing. Fine-n-dandy, use what's available. But if you can get it, a good IDE is Very Useful.
Features in a good programmer's editor:
Gotta-have-its: tab-space conversion, multi-line indenting with a single keystroke (select several lines, hit tab->all those lines are now indented one more level), code coloring, ctrl+arrow to move the caret by word instead of by character (if you don't have this, tab's start looking good). The ability to launch builds (even if it's just a system command line: "make all" kind of thing). Editable coding style/color settings (a tab == THIS many spaces, show strings in light blue). KEYBOARD SHORTCUTS.
Really-nice-to-haves: Integrated project management and debugging (an IDE in other words), find the matching brace, code completion (no, I don't have your entire API commited to memory... what are the member functions of X?). Built in language/API reference (select a class name, hit a key, see the help file describing that class). Source Control integration. Open this include file that I have selected. User-definable macros on the fly (I've got a tab-delimited file I need to stuff into my source. START RECORDING. Format the first line and go to the start of the next one. END RECORDING. Replayreplayreplay... all done)
Gravy: refactoring automation (rename a type across files, stuff like that), code folding. Unit testing integration, plugin structure with available 3rd party plugins.
I realize I'm spoiled. The Java IDE I'm praising runs 500 USD for a single user license. VC .Net isn't cheap by any stretch ($800 for the pro edition, more with a MSDN subscription). Many here don't have that kind of cash to spend. I don't, but the company I work for does. The good news: There are several good, Free editors and IDEs out there. jEdit, Eclipse, Dev-CPP, K-Develop, vi, emacs, and on and on.
What do you use, and why do you like it?
The tab-space thing was pretty much beat to death, but I'd like to ask around about IDE/Editors.
What editors do you use and why? How many have you used, and for how long (qualify your exerience).
I've been using various incarnations of VC++ for some time now (8 years?! I'm getting old). It's quite decent. Code coloring, code completion, available macros, "code folding", and various other goodies. It's second place in my book.
First place goes to IntelliJ's " IDEa" java development environment. It Is SWEET. It parses code as you type it to clue you in to syntax errors. It has a handy keyboard shortcut for "go do the definition of whatever's under the cursor"... plus all the stuff VC++ has, only done RIGHT. It has a lot of "refactoring" capability built in: Renaming variables (across your entire project), moving functions up and down the class heirarchy, all that jazz. You name it, they've got it.
I'm not working for them, I'm just a happy customer: www.jetbrains.com/idea/index.html
I've used Director 3->5 (something akin to notepad for text editing), notepad, vi (never got into EMACS), borland's old pascal environment (way back pre-90: highschool), lots of stuff.
A good IDE can save a programmer a Lot Of Time in busywork. It's not going to slash your development time to 1/10th what it used to be, but knocking off a third is quite reasonable, particularly when you've got all your hot-key's memorized and can touch-type.
I fully admit, there are environments out there where all these toys aren't available, and you HAVE to use notepad-grade text editing. Fine-n-dandy, use what's available. But if you can get it, a good IDE is Very Useful.
Features in a good programmer's editor:
Gotta-have-its: tab-space conversion, multi-line indenting with a single keystroke (select several lines, hit tab->all those lines are now indented one more level), code coloring, ctrl+arrow to move the caret by word instead of by character (if you don't have this, tab's start looking good). The ability to launch builds (even if it's just a system command line: "make all" kind of thing). Editable coding style/color settings (a tab == THIS many spaces, show strings in light blue). KEYBOARD SHORTCUTS.
Really-nice-to-haves: Integrated project management and debugging (an IDE in other words), find the matching brace, code completion (no, I don't have your entire API commited to memory... what are the member functions of X?). Built in language/API reference (select a class name, hit a key, see the help file describing that class). Source Control integration. Open this include file that I have selected. User-definable macros on the fly (I've got a tab-delimited file I need to stuff into my source. START RECORDING. Format the first line and go to the start of the next one. END RECORDING. Replayreplayreplay... all done)
Gravy: refactoring automation (rename a type across files, stuff like that), code folding. Unit testing integration, plugin structure with available 3rd party plugins.
I realize I'm spoiled. The Java IDE I'm praising runs 500 USD for a single user license. VC .Net isn't cheap by any stretch ($800 for the pro edition, more with a MSDN subscription). Many here don't have that kind of cash to spend. I don't, but the company I work for does. The good news: There are several good, Free editors and IDEs out there. jEdit, Eclipse, Dev-CPP, K-Develop, vi, emacs, and on and on.
What do you use, and why do you like it?
About the author
#2
05/17/2005 (10:25 am)
I would say: "Wow! That's awsome!! Where's the resource?"
#3
I guess we all like what we're familiar with :-)
Gary (-;
05/17/2005 (11:53 am)
MUST HAVE to me, includes vi keybindings and must run without a graphical display.I guess we all like what we're familiar with :-)
Gary (-;
#4
05/17/2005 (12:02 pm)
@ Mark - The demo is going to be ready this week.
#5
05/17/2005 (12:15 pm)
Nice Gonzo, can't wait to check it out.
#6
05/17/2005 (1:30 pm)
...i aint even a programmer and i think thats a damn good idea... !
#7
05/17/2005 (5:30 pm)
...i aint even a programmer and i think thats a damn good idea... !
#8
The only problem is that it's only really well suited for java.
I just wish something as good as Idea/Eclipse would show up for C++ :/
I use VC7 for C++, and Vim for everything else. Love vim :)
05/17/2005 (6:14 pm)
Idea is a very nice IDE, but for free, you can't beat IBM's Eclipse. I've been using it for 2.5 years, and it has pretty much all the same refactoring / indexing / searching / templating / ridiculously customizable features as Idea.The only problem is that it's only really well suited for java.
I just wish something as good as Idea/Eclipse would show up for C++ :/
I use VC7 for C++, and Vim for everything else. Love vim :)
#9
www.garagegames.com/index.php?sec=mg&mod=resource&page=view&qid=7362
05/18/2005 (10:28 am)
TBE uses Eclipse's C++ stuff.www.garagegames.com/index.php?sec=mg&mod=resource&page=view&qid=7362
Torque Owner Gonzo T. Clown
This is only good for developing ingame(scripting, level editing/building, testing, content generation) so you will still have to do your engine mods via an external editor(for now, that will change soon). I've used TextPad3-4 for a while thanks to those types of features but it's getting less and less use all th time, and I have plans to pretty much do away with it for all my editing needs.