Slashdot Mirror


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?

25 of 443 comments (clear)

  1. There can be only one. by Just+Some+Guy · · Score: 5, Funny

    Emacs. Next question.

    --
    Dewey, what part of this looks like authorities should be involved?
    1. Re:There can be only one. by g0tai · · Score: 5, Funny

      Sigh.

      You appear to be both wrong. :wq!

    2. Re:There can be only one. by Just+Some+Guy · · Score: 5, Insightful

      Longer answer: IDE? No thanks. At least, I've used Eclipse variants and various Visual Studios, but they map onto how I think about writing and managing software. I want a blank screen with lots of keyboard shortcuts, some basic autocompletion, perfect syntax highlighting, maybe some Git support, etc. I don't want code generation or any refactor-all-the-things functions; I won't be using them.

      I used Emacs for years and years, only eventually switching to Sublime Text. ST was beautiful and fast but didn't have nearly the ecosystem of Emacs, plus its non-Freeness started showing when it went many months without an update. Life's too short for a proprietary editor, which is where I spent approximately 60% of my work life. I dependent on it more than any other tool and the prospect of my chosen tool dying on the vine wasn't appealing. I tried Atom for about a week, but it was slower than ST2, lacked a broad ecosystem, and, well... JavaScript.

      So one day I decided to revisit Emacs. Hey! It grew a package manager! Since that afternoon, I've had zero desire to look back. Emacs will outlive me and my children, will support every new language and tool that comes along, and will always be Free. There's nothing out there good enough to make me consider switching.

      PS, in concession: I could make the same cases for Vim and its grandchildren. Once you've learned them, if they do what you need then there's very little compelling reason to change.

      --
      Dewey, what part of this looks like authorities should be involved?
    3. Re:There can be only one. by Anonymous Coward · · Score: 5, Insightful

      I want a blank screen with lots of keyboard shortcuts, some basic autocompletion, perfect syntax highlighting, maybe some Git support, etc.

      Sooooo... An IDE. Granted a lightweight one - but that's not "just an editor" anymore.

    4. Re:There can be only one. by alexhs · · Score: 4, Informative

      Actually, it doesn't do exactly the same thing.
      :x writes only if the file has been modified (only the file's access time is updated).
      :wq writes unconditionnally (creates an empty file if it didn't exist, updates the file's modification time).

      --
      I have discovered a truly marvelous proof of killer sig, which this margin is too narrow to contain.
    5. Re:There can be only one. by mattventura · · Score: 4, Insightful

      Yes. If you load up an editor enough, then the line between editor and IDE gets blurred. It's why I'd always start with an editor that is good at actually editing text, and build off of that, because that's usually easier than taking an IDE and trying to get it to edit text how you want. An IDE could make your breakfast and drive you to work but at the end of the day the main point is still to edit text.

    6. Re:There can be only one. by jrumney · · Score: 5, Insightful

      The difference between Emacs and an IDE is that with Emacs, you can adapt it to the way you prefer to work. With an IDE you have to adapt the way you work to the IDE.

    7. Re: There can be only one. by shutdown+-p+now · · Score: 4, Interesting

      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:

      struct foo { int x; };
      struct bar { float x; };
      template<class T> void baz(T t) { t.x; }
      baz(foo());
      baz(bar());

      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.

  2. Do most of the work? by avandesande · · Score: 5, Insightful

    IDE's don't do any of the work- they take care of the things aren't actually programming.

    --
    love is just extroverted narcissism
    1. Re:Do most of the work? by Anonymous Coward · · Score: 5, Insightful

      Exactly. If you've never renamed a function in your life - then go ahead and code with an 'editor' alone. Otherwise pick a good IDE and enjoy the time you're not spending doing a search and replace.

    2. Re: Do most of the work? by Dutch+Gun · · Score: 4, Insightful

      Functions are named in human readable ways, and are designed to reflect the function they perform. If that functionality changes, then it makes sense that the function name has to change as well. Leaving a function name alone when it's functionality change is terrible programming practice, because the name is now actively misleading anyone who uses the function or reads code that uses it. There may be other considerations as well, such as the name simply doesn't match the style of naming conventions elsewhere in the project. People make mistakes, and code often has to be reworked or refactored.

      True, it's not something that happens often enough (at least to me) that it would affect my productivity if I didn't have automatic renaming tools, but it's not like this is some new-fangled fad. I'm pretty sure you can find some advice on good naming conventions in "Code Complete", published a few decades ago.

      --
      Irony: Agile development has too much intertia to be abandoned now.
  3. Fuck you dice by binarylarry · · Score: 5, Insightful

    This is a fucking microsoft ad.

    --
    Mod me down, my New Earth Global Warmingist friends!
  4. Just be productive.. by MegOnWheels · · Score: 5, Insightful

    Use whatever makes you most productive and understand that it will vary from developer to developer. 99% of IDE / Editor debates make stuff all difference to the outcome. Instead focus on:1. Only implementing exactly what you need. 2 Testing the thing, then going back and reviewing the testing with a view to adding more tests. 3. Not let the implementation get ahead of the tests. 5. Get someone else to test. 6 .. Test.
    Test.. test .. test

  5. "Nerval's Lobster writes: " by ardmhacha · · Score: 5, Insightful

    "Nerval's Lobster writes: "

    I'll bet it is a Dice article.

  6. As long as you consider one... by ndykman · · Score: 5, Insightful

    Moving past a text editor is a big help. Sure, it's good to understand the command line and all that, but having a tool that understands code and allows you to manipulate it is really useful. Refactoring support matters. A lot, actually. Safe delete, rename, extract method/parameter/etc. are all basic tools that can make a code base better. Code completion (intellsense, etc) support matters too. What does this thing do. Does it do what I think it should? Why or why not. Add in things like smart templates, etc. and even the most code aware text editors just look like nothing more than keyword colorers.

    Personally, I can't recommend Visual Studio/Resharper or the IntelliJ product line enough. Worth every single penny and then some. JetBrains has a laser like focus on just getting things done. High DPI support was a problem for their IDEs, so instead of waiting on Java 8/2D to catch up, they forked it just to get it work, and they admitted it was not a great solution, but a workaround.

    1. Re:As long as you consider one... by NoKaOi · · Score: 5, Insightful

      Code completion (intellsense, etc) support matters too. What does this thing do. Does it do what I think it should? Why or why not.

      Any code base that can't be understood without Intellisense is broken. If you need auto-complete to answer those questions, then you are programming wrong (as an antidote I suggest getting rid of your IDE until you learn to do it right).

      Oh, get off your high horse and stop being so arrogant. I don't think he said he needed it to understand the code. It matters to some people simply because they find it faster to use, not necessarily because they aren't capable without it. I, personally, think code completion is annoying, but I fully recognize that for some people it's great. If somebody likes it, then they should look at IDE's that have it. If somebody doesn't like it, then it's not a factor - they can use a tool without it, and I think pretty much any tool with it has an option to disable it.

  7. Wrong question by msobkow · · Score: 4, Interesting

    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.
  8. Can I turn features off? by Okian+Warrior · · Score: 4, Interesting

    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.

  9. Depends on the Language by Maltheus · · Score: 5, Interesting

    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.

  10. Syntax hilighting by phantomfive · · Score: 5, Insightful

    According to the article: "Some people love syntax highlighting; others hate it with the fiery passion of a thousand suns."

    Is that really true? I've never met someone who hated syntax hilighting.

    --
    "First they came for the slanderers and i said nothing."
    1. Re:Syntax hilighting by Necron69 · · Score: 4, Interesting

      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!?

  11. If I use an IDE, does it mean I'm a bad programmer by mark-t · · Score: 4, Insightful

    While I have coded without an IDE in the past, and I still do it occasionally for one-off throwaway programs, when it comes to larger projects, I do find that having an IDE dramatically boosts my productivity. All of the things I do with an IDE could theoretically also be done with vi and an appropriate suite of tools, but for myself, the point of using an IDE is to really just have it all bundled in as one, and not have to switch to a different window just to show a call graph or function definition for what is at the current cursor, for example, when a simple hover-window can do the same thing, and since the window disappears as soon as I start typing or otherwise navigating, I don't even need to switch windows again when I resume editing.

  12. Obviously.. by juanfgs · · Score: 5, Funny

    When I log into my Xenix system with my 110 baud teletype, both vi *and* Emacs are just too damn slow. They print useless messages like, 'C-h for help' and '"foo" File is read only'. So I use the editor that doesn't waste my VALUABLE time.

    Ed, man! !man ed

    ED(1) UNIX Programmer's Manual ED(1)

    NAME
              ed - text editor

    SYNOPSIS
              ed [ - ] [ -x ] [ name ]
    DESCRIPTION
              Ed is the standard text editor.
    ---

    Computer Scientists love ed, not just because it comes first alphabetically, but because it's the standard. Everyone else loves ed because it's ED!

    "Ed is the standard text editor."

    And ed doesn't waste space on my Timex Sinclair. Just look:

    -rwxr-xr-x 1 root 24 Oct 29 1929 /bin/ed
    -rwxr-xr-t 4 root 1310720 Jan 1 1970 /usr/ucb/vi
    -rwxr-xr-x 1 root 5.89824e37 Oct 22 1990 /usr/bin/emacs

    Of course, on the system *I* administrate, vi is symlinked to ed. Emacs has been replaced by a shell script which 1) Generates a syslog message at level LOG_EMERG; 2) reduces the user's disk quota by 100K; and 3) RUNS ED!!!!!!

    "Ed is the standard text editor."

    Let's look at a typical novice's session with the mighty ed:

    golem> ed
    ?
    help
    ?
    ?
    ?
    quit
    ?
    exit
    ?
    bye
    ?
    hello?
    ?
    eat flaming death
    ?
    ^C
    ?
    ^C
    ?
    ^D
    ?

    ---
    Note the consistent user interface and error reportage. Ed is generous enough to flag errors, yet prudent enough not to overwhelm the novice with verbosity.

    "Ed is the standard text editor."

    Ed, the greatest WYGIWYG editor of all.

    ED IS THE TRUE PATH TO NIRVANA! ED HAS BEEN THE CHOICE OF EDUCATED AND IGNORANT ALIKE FOR CENTURIES! ED WILL NOT CORRUPT YOUR PRECIOUS BODILY FLUIDS!! ED IS THE STANDARD TEXT EDITOR! ED MAKES THE SUN SHINE AND THE BIRDS SING AND THE GRASS GREEN!!

    When I use an editor, I don't want eight extra KILOBYTES of worthless help screens and cursor positioning code! I just want an EDitor!! Not a "viitor". Not a "emacsitor". Those aren't even WORDS!!!! ED! ED! ED IS THE STANDARD!!!

    TEXT EDITOR.

    When IBM, in its ever-present omnipotence, needed to base their "edlin" on a UNIX standard, did they mimic vi? No. Emacs? Surely you jest. They chose the most karmic editor of all. The standard.

    Ed is for those who can *remember* what they are working on. If you are an idiot, you should use Emacs. If you are an Emacs, you should not be vi. If you use ED, you are on THE PATH TO REDEMPTION. THE SO-CALLED "VISUAL" EDITORS HAVE BEEN PLACED HERE BY ED TO TEMPT THE FAITHLESS. DO NOT GIVE IN!!! THE MIGHTY ED HAS SPOKEN!!!

  13. de gustibus non est disputandem by FranTaylor · · Score: 4, Insightful

    you can argue all day about whether chocolate ice cream is better than vanilla and there is really no possible way that anything interesting will result from the conversation

  14. Re:If I use an IDE, does it mean I'm a bad program by BasilBrush · · Score: 4, Insightful

    No, using an IDE means you are a productive programmer. I swear most of these vi/emacs hipsters are still students or are unemployed.