What IDE do you guys use most?
Printable View
What IDE do you guys use most?
I was first introduced to C on the awful Dev-C++, and I've pretty much stayed away from IDEs ever since. I use Notepad++ on Windows and SciTE elsewhere, and then GCC/Mingw for the compiler.
Methinks you will get chastised for missing Visual Studio out of the list.
I don't like IDE's because I'm into the more modular approach WRT coding->compiling->debugging, etc.
I use (g)vim for everything I do -- coding in various languages, plus working with mark-up files, templates, text etc. You can do code completion, include lookups, bookmarking, etc, so I don't think I'm missing much. I still haven't found a filetype someone hasn't written a vim syntax highlighting module for. They even write add-ons for some big APIs. One thing I would like is auto indexing for functions.* There are ways to incorporate a compiler and debugger into it like an IDE, but I don't see the point. I don't even bother with ! for shell commands, I just have lots of terminals around opened into appropriate directories. I prefer to use the mouse as little as possible when I'm typing.
* probably there is a plug-in somewhere...oh there is: Vim Taglist plugin Apparently the "top-rated and most-downloaded plugin for the Vim editor", lol. Supports C/C++, perl, js, java, shell, php, make, etc. I'm pretty much covered. I guess I will try that out :)
[later...works great, requires ctags]
Why is the poll multiple choice. Anyway, I feel tool agnostic now. I basically use what I'm required to use.
Most of the C-only stuff I've done is actually on the forum though (so codepad.org actually).
I find it funny that Visual Studio was not included yet the first two choices are not really IDEs :)Quote:
Originally Posted by MK27
I really like Qt Creator. I've recently started working with Qt, and I really like their IDE. it has one of the best GUI designers I've seen, and the autocomplete is nearly on par with visual studio.
Me thinks the OP needs to distinguish between IDE and compiler.
I used Dev-C++ for years when I first learned C(++), then eventually moved to Code::Blocks. However, as of the last 4 months I've been really taken by VIM (even though I've actually used in occasionally for over a year), so much so in fact that I'm also learning Vimperator.
@MK27: I find '!' to be quite nice, here's a snippet of my rc file:
Coupled with Vimperator, I can literally switch back and forth from the browser to the editor (and operate them) without ever touching the mouse. Really useful when you keep them on different desktops and are writing markup/JS.Quote:
map ≤ :silent ! $PROGRAMS/launch do goto prev<CR>
map ≥ :silent ! $PROGRAMS/launch do goto next<CR>
map ⊆ :tabprevious<CR>
map ⊇ :tabnext<CR>
map × :silent ! $PROGRAMS/launch do rcmusic prev<CR>
map ÷ :silent ! $PROGRAMS/launch do rcmusic next<CR>
map ≡ :silent ! $PROGRAMS/launch do rcmusic pause<CR>
map ␀ :silent ! $PROGRAMS/launch do rcmusic play<CR>
map ⊤ :silent ! $PROGRAMS/launch browsemusic<CR>
map ⊥ :silent ! $PROGRAMS/launch do rcmusic display<CR>
Eclipse (say it ain't so!). The autocomplete is money, you can't beat beat the visual hints that something is uninitialized, out of scope, etc...all occurring as you type.
Such visual hints are hardly exclusive to eclipse, though, just so you know.
Oh, for sure. Eclipse is what I'm using, but I guess I'm talking more generally about the benefits of a nice IDE...and perhaps making a gentle jab at the hardcore text editor folks. Myself, I love Vim, and I use it for many things...but not coding. When I spent more time hunting down plugins, tinkering with my .vimrc, and trying to remember my Tekken-combo vim commands...than actually coding....well, I felt I had lost my way. Probably some people never had these issues, but I felt they were taking up precious coding time. For me, what an IDE does is to get all the pain in the ass details out of the way (oh, I forgot a semicolon...etc,etc), and lets you spend more quality time thinking about the big issues of the logic of your code.
I am in agreement with you. An IDE, to me, increases my productivity, not only through visual hints, but integrated features, as well.
However, it is as you imply, that using an IDE or not, and if using an IDE, which IDE out of the many (especially when they typically share a common subset of functions), is usually just individual preference.
I do not have a favorite IDE, I use the best tool for the job at hand.
So far this century no employer has supplied me with any of the 'IDE's on your list.
I'm just not used to people having more than one favorite whatever.
Haha, I know, I got your point, just wanted to pick on you a little. :) Plus I don't think the poll was meant to be like 'what is your one and only tool which you worship for ever and ever 'til the end of time no matter what task you're working at?'. Might rather have been intended to give an impression on what people regularly use. Natural languages are not as strict and literal as programming languages. :)
The only IDE I've actually tried is Code::Blocks and that was briefly and a long time ago. The main thing I don't like about the idea is the "integrated" part -- I don't see the point of something that compiles and runs code for you, to me that is just too gimmicky. It reminds me of "instant tea". Isn't tea instant already?
The other thing I don't like is having to use mouse cut n' paste for editing; probably there are alternatives to that on most IDEs (?).*
But I wouldn't mind hints about, eg, scope screw-ups, above and beyond what you get from syntax highlighting. Perl uses braces for both scope and indicating hash or object members:
Not hard to forget that red brace, and (obviously) it does screw the interpreter up, occasionally in awkward ways. As in, depending on the extent of the nesting, an error can be reported dozens of lines later. Not a huge deal, but it does mean some tedious scanning from time to time.Code:$self->{sloop}->{buffered}->{$self->{fd}} = 1;
If I had an editor that could spot stuff like that, I'd use it. Eclipse works with perl and all the other languages I commonly use except javascript. Maybe I'll give it a try in the new year when I start learning java, if it works properly on linux. Voluntarily using the windows desktop is really a bit to much to ask, and macs are even more deranged.
* I'm very attached to vim "command mode" yy, dd, p, ctrl-j, etc.
haha, no mention of UNIX vi editor..can't beleive it, no S&M fans here then! :tongue: ...
I love code blocks, but recently have been having to write a lot of shell script stuff and as a stand alone editor notepad++ is ace, Its been really useful tool, it supports so many languages and has lovely configurable highlighting for related statements depending on the context.
Haha, Tater, you never know. Wasn't there this one guy from the Darwin Awards who, "for a little convenience", tried polishing his testicles with a bowling ball polishing machine? :D
A very good point, i might just have to add that as thought for the day on my signature.Quote:
Trust me... your testicles will not fall off if you endulge yourself with a little convenience...
I think we are talking about evoultion myself. Instant tea has completely 'eclipsed' the use of tea leaves, straining, messing about manually etc, And do you mean instant tea or tea bags? In which case there is no reason why a tea bag cannot contain the same quality tea as manually making it, its just that its packaged in a convenient way :-> so why should the build process be any different? You can set up make files, compier options, flags, output build process however you like blah blah, in a good IDE, so why would you want to stick with pure command line stuff? Despite having a very good command of keyboard shportcuts and what have you in whatever environment, I am in danger of getting RSI by working so much at the command line at the moment!
What are the advantages really? the only reason the company i work for does so much UNIX stuff is down to legacy applications, ie old stuff. migration is in progress to new platform for all clients, all releases and the build tools etc will be taking care of everything, then its all hosted or cloud stuff, I cant see where the command line fits in other than smoke and mirrors to non technical people.
A very eminent programmer I met said that 'IDE's' get in the way of the 'Real work'
Can anybody explain that statement? I dont see that , but then i am not an eminent programmer...
Yes, well... I know a guy who's only role in life, for nearly 20 years, was putting spark plugs in engines on a production line.
One day they came alone with an air wrench for him to use and he declined saying he can do a better job with his old crank and socket. The foreman took the air wrench and put in 4 spark plugs in the time it took him to put in one.
He still complains about it to this very day, entirely missing the point that the "real work" he was doing was slowing down the entire line and made his job much harder than it needed to be.
So, what is the "real work" of a programmer... Producing code... right?
I don't care to mess with all the manual tools and their added difficulty.
I also don't want to spend my time doing recompiles over typos that syntax highlighting will show me on the fly.
I also don't want to make some gargantuan effort about brace matching when the IDE can do it for me.
I don't want to thnk about a messy, drawn out process...
I want to think about the behaviours I'm leveraging and the best way to accomplish my goals.
A good IDE's lets me do that...
No, I meant instant tea. You don't have to let it steep, but it doesn't come in a bag, so you have to measure it out. Some people will fall for anything.
Because it's easier. I do not like point and click as an abstraction layer. I have the option of using stuff like that, occasionally I have to use stuff like that, I find it tiresome and slow. Like it amazes me that most people think GUI file browsers are a good idea. As if drag and drop represented an improvement over the F5 key. No, it does not. And pull down menus are not an improvement over command-line auto completion (unless your shell doesn't have that, which my hunch is the windows terminal and shell are both such decrepit pieces of tish that in fact, your only choice is point and click -- ie, it's you that does not understand the alternative, not me).Quote:
You can set up make files, compier options, flags, output build process however you like blah blah, in a good IDE, so why would you want to stick with pure command line stuff?
I honestly believe in large measure the appeal of a lot of GUI stuff has nothing to do with convenience. It's because people like glitzy interfaces. I can understand for people who simply don't use a computer to do work much, and hence don't want to learn or remember commands or keystrokes. But I do this all the time. To me it's about as hard as speaking English.
For me to use the compiler (or "make") manually takes four keystrokes (select and foreground terminal, up arrow, return). If I want to adjust the flags or what ever, they're right there -- no pulling down menus. I also don't see an advantage in someone else's ideas about an additional interface between me and the compiler that exists purely to facilitate a GUI that takes up half the screen with shiny buttons. Plus: one of the last things I'm interested in is consulting compiler documentation, then IDE documentation about the compiler interface. TOO MUCH ABSTRACTION.
I prefer standard to automatic, too, altho I know this baffles some people.
what I feel is the biggest advantage of an IDE is an integrated debugger. it may be just because I'm not very familiar with using gdb from the command line, but I really like being able to step through my code visually, and have a window full of local variables update automatically, on the fly, while I'm debugging. having the visual feedback just makes the process flow more naturally and smoothly.
Just to play devil's advocate, about every text editor on the planet will do most of those. Eclipse has been mentioned and I don't think it fails to do anything you mention at all. The one place the tool chains truly get messy is the long, drawn out process you alleged to in your reply. People use makefiles just like an IDE does though. Personally I never stuck with the approach to make my own, but that's what's efficient.
My holy grail is the debugger in an IDE. I can't be arsed to invoke gdb myself, although I definitely know how.
GDB is pretty cool, btw, but I am kinda disappointed with all the pointer values I end up looking at. MSVC dereferences those, so it means fewer watches I have to set.
I use the mouse in a very limited way even on the gui, i am not into pushing a pointer all around the screen when a few keystrokes can do the job, but i do like the view you get of all your work and ability to map and access tools in a common interface, project window view in a way you dont get otherwise, and I have to log onto damn modem and vpn sessions on client servers in Korn or Bash Shell to accomplish half my tasks, there is plenty of auto completion of course, its still a pain in beehind though and not worried about how shiny interface is, just so long as i get a decent view of the workspace, turbo c was fine for me on that count.
Well, except for creating a "one click" build environment, that frees me from messing with complex toolchains, yes I'd agree...
About the only editors that don't do syntax and brace matching these days are Notepad and it's silly cousins...
I will also agree that the debugger is a definate advantage, although I personally don't use it that much.
I've got to be pretty far down the "WTF is going on" road before I go there.
No, WRT to the car it's because I pay more attention that way, and enjoy it more (altho driving in general is not something I particularly enjoy).
But that is admittedly not a good analogy anyway, except in the sense that when I drive automatic, I don't find it significantly easier. Using a shift and clutch comes very "automatically" to me, I don't have to think about it much. The exception would be tractors and some old trucks, where the stick is cumbersome, or some clutches.
WRT to the "integrated compiler" concept, as I've said repeatedly, it's because I don't find the command line hard work but:
Your experience using a shell is negative. Mine isn't. Of course, it did take some time to get to the comfort level I have now, which is probably very worthwhile for some of the work I do (on remote linux servers).Quote:
Originally Posted by MK27
Check this out... POIDE and Code::Blocks
That's some serious convenience going on there...
Not sure i follow you there tater mate, i do use Code blocks its smashing super great, I said earlier, I just meant turbo C as in despite no shiny shiny goinng on it still offered basic 'convenience'... :->
the old saying "work smarter not harder" applies here, methinks. obviously I'm not going to convince the hardcore command-line-compiler/text-editor users, but many of us find that we are more productive when we can type a few letters of a long function or type name, and have it pop up a list of suggestions. I don't understand why you wouldn't want that. of course this doesn't stop anyone from going to the command prompt to run the compiler. I just don't understand why anyone would want to give up productivity and convenience. if someone is employed as a software developer/computer programmer, and they're not self-employed, I can imagine that their employer would prefer that they use something that makes them more productive, regardless of their preference.
Not to keep bashing windows, but I again think some of this stuff is a consequence of the OS. Eg, multiple virtual desktops are not native on windows. There are third party things to do it, but the ones I've tried have been very primitive compared to what I have on linux.Quote:
a decent view of the workspace
Going back and forth to a taskbar,* cycling through windows, etc, is all slower and more awkward than just switching desktops. I'd rather have 4 separate applications running on 4 separate desktops than cram them all into one window.
But to each their own...
* yeah, I find taskbars irritating and ridiculous too. Apple really brought that silliness to new heights.
Oh... okay... I've used Turbo C as well and frankly found it's IDE to be a pain in the arse to use... of course Turbo C got dropped like a hot potato when I realized it was 16 bits.
Same IDE they used to supply with Turbo Pascal and I just couldn't wait to get it hooked up in TextPad so I could do some real programming.
Then came the Delphi IDE which lasted about 40 seconds with me... I spent the next week and a half prying the compiler and RTL out from under Delphi's load of crap and getting it conencted into (I think it was) ConText which at the time had a nice Pascal highlighter.
Then I found Pelles and well... still there.
That's not limited to IDE's. There are various way to do it in vim and I presume other code oriented editors.
So it seems to me that the issue is really that some of the IDE die-hards simply haven't used a decent editor much, and have some mis-conceptions about it. ;)
Vim is a pretty unique piece of software tho, I don't think there is anything else even remotely like it, so maybe it deserves it's own kind of category.
you're probably right about this. I used to be an editor/command-line kind of guy, and in some cases, I still am. I haven't used VIM, so I can't speak to that, but a lot of the text editors I've used don't do any syntax highlighting or autocomplete of any kind, so I guess it's also hard for me to judge. what I do know, however, is that an IDE provides all of the features I like when writing code. I'm absolutely not saying that some other type of tool wouldn't, but rather that I prefer an IDE, and for many of the same reasons, so do many others.
You are wrong.
It's all about your mindset. I find it easier to remember where things are visually than to remember command lines.
Yes, I do prefer "glitzy interfaces" before ugly interfaces, and I'm sure many would agree, but the point is that because it is visual, it's a lot easier for some to work with.
The reverse is obviously also obviously true.
Productivity all boils down to what one is used to doing and how one's mindset works. CLI works for some. IDEs work for some. There is no best.
It is also true that a "mindset" isn't static. You may be good at what you do now (eg using a crank and socket), but it doesn't mean you cannot learn to be more productive with something else (eg using an air wrench).
It's also about the time it takes to learn and get used to that.
BTW, I find gdb worth puking over. CLI debuggers are little better than no debugger at all in my opinion.
Yeah. "Individuality" has some more or less irreducible aspects. Discussion is productive tho. I am going to give eclipse a chance now, so I at least won't feel like I'm making a religion of anything.
But windows, which I use regularly, really and truly, I think went down the wrong path, as least WRT to what I like to do on a computer. OSX, even worse. If I were an artist of some sort -- musician, photographer -- I'd probably feel differently.
One of my big qualms about programming is that it is all I really do with a computer (that, and blab away on forums ;)). If I weren't into programming, I'd probably barely use the thing. So my perspective on software is sort of screwed up: except for the tools I use, I really find it boring. Like my friends will get all excited about some app and I just sit there thinking: I'd rather read a book. :/
Maybe that is because of mindset again? I don't go to the debugger that often. Say a few times an hour at most, and only for a few minutes at a time. It's always because of a specific problem that I want a clue to solving. I get my clue and then I exit.Quote:
BTW, I find gdb worth puking over. CLI debuggers are little better than no debugger at all in my opinion.
An advantage to CLI tools like gdb and valgrind would be that you can scroll back and check the result of previous runs (if you have enough scrollback in the terminal emulator).
Gdb does have some more elaborate front-ends, btw, but they are not pretty either. The full on graphical one I use very seldom. I think a reason for that is currently, I don't do teamwork in C or C++, so I rarely have to detangle someone else's code, or worse, someone else's buggy code. If that were the case I could see more of a need for visually tracking a lot of different information; the stuff I do collaborate on generally doesn't have much of a conventional debugger option, so I'm habituated to other forms of sleuthing.
I do find it easier to remember a word and the meaning of a word than a symbol. Of course, GUI menus are usually more word than symbol, but what I find slow about that is the mouse. I've tried rollerballs, etc, doesn't help. Worst of all are Synaptic touchpads, which I think are a very nice, refined piece of technology in context, but no one prefers it on a desktop AFAIK (maybe: gesture fetishists?). No matter how much I tweak the settings, the touchpad is a drag.
A touchscreen would be good, except then my hands would be even further from the keyboard, so :( and putting a keyboard on the touchscreen is no good for serious work. If instead, someone built a normal keyboard with a touchscreen built into it above the F-keys, so you had a bar with all the currently visible clickable icons on it (you'd still use the mouse for cursor movement, etc) -- I'd place an order today. But from what I know of GUI programming, that would require fundamental changes to the underlying interface...
Some kind of wii like finger thimble, made of thin fabric, would be good. A glove that activates when your hand is a few centimeters off the keys.
I'd go for the Matthew Nagle device if they could make it external :D
Matt Nagle - Wikipedia, the free encyclopedia
Quote:
I can't put it into words. It's just—I use my brain. I just thought it. I said, "Cursor go up to the top right." And it did
they do make fully configurable graphical keyboards, where each key is a full color 64x64 (?) pixel display. they are insanely expensive though... well into the hundreds or even thousands of dollars. I would think a keyboard extension with 15 or 20 keys like that would be very helpful for developers. keys for building, debugging commands, etc. you could even develop a plugin for your favorite IDE to access those keys, and have various "scenes" depending on what task you're working on, whether it be editing code, debugging or whatever.
edit: the optimus maximus keyboard
I couldnt care less about the mouse, i think its more about an integrated environment, i dont want to have to control the whole shebang from the command line and remeber where i am, or ask to know where i got up to. it all feels very clever and super duper when you work from the command line, and i do enjoy the 'natural' feel of it but let be realistic, today, productivity is better via an IDE.
Damn those new fangled electric lights, my candles cast a much better light! * shakes angry luddite fist at the new fangled lights! *
Not much point actually responding to the poll, as only 1 of 4 IDEs I regularly use is actually included. Other humourous aspect... it's as if C++ is the only language with IDEs... ;)
this is interesting IDEs Are Dead. Long Live the IDE! | Dr Dobb's
Now that's just plain scarey... Not only are major corporations entrusting large parts of their data to exparte servers coupled by what has been called "The first communications failure in any disaster" (the internet) now we'll have them putting the code to access that data out in the thin air as well... Corporations that increasingly claim to be "security conscious" are also increasingly making the mistake of trusting others with their data.
My first prediction for 2012 ... Somebody's going to invade one of these cloud servers and dump some major corporations dirty laundry all over the newest incarnation of WikiLeaks... Just watch, it'll happen... eventually.
I dont think that guy has much merit to talk about IDEs tbh. "But if you're a C or C++ developer, you're forced to adopt Visual Studio on Windows and Eclipse on Linux" tells me everything I need to know about how much this guy knows about IDEs for C and C++ (and probably alot of other languages aswell)...
It's the Government you have to be more concerned about... Corporations usually have the money and expertise (or can get it).