Choosing the Right IDE
Nerval's Lobster writes: Modern software development often requires working with multiple tools in a variety of languages. The complexity can give even the most skilled developer a nasty headache, which is why many try to rely on Integrated Development Environments (IDEs) to accomplish most of the work; in addition to source-code editors and automation, some even feature intelligent code completion. With so much choice out there, it's hard to settle on an IDE, so we interviewed several developers, who collectively offered up a list of useful questions to ask when evaluating a particular IDE for use. But do developers even need an IDE at all? When you go to smaller, newer developer shops, you're seeing a lot more standalone editors and command-line tools; depending on what you do, you might just need a good editor, and to master the command-line tools for the languages you use.
What IDE do you prefer, if any, and why?
Agreed. The Unix way is to use modular tools. IDE's are the antithesis of that. Eclipse is systemd of development, one size fits few and shitily. Completely inflexible. Emacs is by far the best option available, on any platform. Used to be you'd be laughed off this forum if you suggested anything else.
an ill wind that blows no good
The question is: "What language are you writing this project in?"
The language dictates the best IDE for the job.
I do not fail; I succeed at finding out what does not work.
One question I always ask when evaluating a new whizz-bang high sparkle product is: can I turn the features off?
If you use more than one application in your development, you're always bumping into interface inconsistencies. Having to stop and look at the result of what you typed is annoying, time consuming and distracting.
I can type <tab> really, *really* fast, so it makes absolutely no sense to try to overcomplicate things by having the editor try to do some sort of indentation for me - it only means that I have to stop and look every time, and I can't get used to the feature because no other application does it the same way.
For emacs in particular, all the various "electric $LANG" modes have different ideas of which characters are electric, what their behaviour is, and what coding style I should be using. Selecting a coding style to use is about 2 hours of internet search, editing the profile, restarting, and testing. (And that's if you're using one of the approved styles, otherwise you're either stuck or forced to learn lisp. *shudder*)
(And for the record, turning off electric-mode in emacs is wildly difficult to actually do. One pitfall example: having "save state" turned on will override the profile file, leaving you wondering why the profile command from the online tutorial didn't work.)
You can't get used to it, you can't develop muscle memory or take your eyes off the screen because the minute you switch to something else (the browser, E-mail client, putty terminal, LibreOffice or anything else), muscle memory results in errors.
Lots of applications have these inconsistencies. Clicking in a text editor will place the cursor where the mouse is, while clicking on the address bar in the browser *selects* the line and places the cursor at the end. It takes 1 click to insert text normally, it takes 3 clicks to insert into the address bar. Muscles don't remember that.
People spend an inordinate amount of time fumbling the interface without actually thinking about it. Your "rich, user experience" isn't warranted and reduces efficiency.
Just give me a simple, direct interface.
for .NET dev.
I like the IntelliJ family for other stuff.
If you were me, you'd be good lookin'. - six string samurai
If the langugage is Java (or even Python to a lesser degree), then I haven't come across anything that even comes close to IntelliJ. It's code completion and introspection are so good, that I find I don't need to test as often. And I rarely find any issues when I do.
I also use Eclipse and Netbeans, and everything seems to take an extra step or two and that really adds up, over time. Netbeans is good for C++ though, so I muddle through with it.
Sound reasoning and pragmatism. Very nice. I use vim and joke about the vim vs. emacs debate all the time, but in truth I don't care which you are proficient with so long as it is with at least one of the two. If you can't use vim or emacs proficiently, I immediately start to question your competence. I'm not saying everyone who is unfamiliar with emacs or vim is incompetent, just that the likelihood rises quite a bit when the person can use neither well.
Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
Using Visual Studio 2013 here. The refactoring tools are near useless in our large C++ project. For example, using "Rename" on a member field called m_size will often rename m_size instances from other classes too. They intentionally dumbed down the "Find all references" feature as users complained it was too slow, and by default it now uses a text search based approach which isn't really any better than a dumb text editor. I find it's easier to just rename the m_size field in the class to m_size2, find all the build errors, then do a text replacement on m_size2, than it is to deal with the unreliable tools in Visual Studio.
C++ is one of the toughest languages for tools to handle - it's crazy complicated even just to parse right. And in case of rename refactoring in particular (and anything else that might implicitly include that), it might not even be possible to do it right. Consider something like this:
Now suppose you're asking the editor to rename foo::x to foo::y. Should it also update t.x in baz, since it's referencing foo::x in one of the instantiations? But if it does so, then the other instantiation, the one that takes bar, will stop working. Should it rename bar::x as well? But it's not really related to foo::x in any meaningful way, they just happen to be referenced by the same template.
Those of us who are colorblind often struggle with the default colors used in syntax highlighting. If you can (or bother to) adjust those, it can work, but colorized syntax highlighting on a white background can often be near invisible to me. It doesn't highlight at all, it HIDES the code.
Necron69
ps. Colorized 'ls' - red on black? Are you out of your f*cking mind!?