Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Programming

Choosing the Right IDE 443

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?
This discussion has been archived. No new comments can be posted.

Choosing the Right IDE

Comments Filter:
  • Emacs. Next question.
    • That's not Borland 4.5
    • by Just Some Guy ( 3352 ) <kirk+slashdot@strauser.com> on Tuesday May 19, 2015 @05:33PM (#49730405) Homepage Journal

      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.

      • by Anonymous Coward on Tuesday May 19, 2015 @05:58PM (#49730573)

        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.

        • by mattventura ( 1408229 ) on Tuesday May 19, 2015 @07:21PM (#49731059) Homepage
          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.
        • by jrumney ( 197329 ) on Tuesday May 19, 2015 @07:51PM (#49731323)
          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.
          • I used emacs for years, and I invested weeks configuring it to work exactly the way I wanted. My .emacs was beautiful and people often copied it for themselves.

            Then I tried eclipse, and realized it already worked the way I wanted out of the box. Never looked back.

            It is not about how configurable the editor is. It is about writing code. If your editor helps you do that: great, if not, just try something else, don't get religious on it.

      • by Anonymous Coward

        Refactoring tools are very handy, if you know how to use them. For things more complicated than global-search-and-replace, there is really no substitute.

        I encourage you to go back to an IDE -- /any/ IDE -- and deliberately check-out the refactoring tools. You might be surprised at how effective they are, how much time they can save you, and how much it reduces otherwise error-prone hand-work.

        • by GigaplexNZ ( 1233886 ) on Tuesday May 19, 2015 @11:46PM (#49733045)
          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.
          • by shutdown -p now ( 807394 ) on Wednesday May 20, 2015 @03:07AM (#49733815) Journal

            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.

      • Re: (Score:3, Interesting)

        "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."

        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 everyo

    • If emacs is an IDE, then Linux is a robot.

      I choose the tools that are great at one thing and not at all things. I want tools that are not jack of all trades, master of none... as the saying goes. That because nowadays standard communication interfaces and formats are everywhere (we've reached parity).

      • Linux must be a robot then, because I guarantee you that emacs and vim are both IDEs. Perhaps you didn't know that IDE stands for Integrated Development Environment? That is the only way you could arrive at such a ridiculously stupid conclusion that emacs is not an IDE.
    • by sconeu ( 64226 )

      Great IDE. All it needs is a good programmer's editor.

    • by Okian Warrior ( 537106 ) on Tuesday May 19, 2015 @06:03PM (#49730609) Homepage Journal

      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.

      • And for the record, turning off electric-mode in emacs is wildly difficult to actually do.

        Can you follow along?

        - click on the "C" menu
        - mouse over the "Toggle" item
        - click on the "Electric Mode" item

        Is this really so wildly difficult?

    • by PPH ( 736903 )

      vi is my editor. I shall not font.

    • /Oblg. "The Emacs operating system needs a better editor." :-)

      I prefer Vim myself as I feel it is like an extension of my mind; it was written by a programmer for programmers.

      Either way, you can't go wrong with Vim or Emacs.

      Note: Only immature ob developers get into stupid flame wars over which editor is better. (Hint: They ALL suck; some just suck more.)

  • emacs (Score:2, Insightful)

    by Anonymous Coward

    C-x-C-c

  • by avandesande ( 143899 ) on Tuesday May 19, 2015 @05:07PM (#49730247) Journal

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

    • by Anonymous Coward on Tuesday May 19, 2015 @05:09PM (#49730281)

      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.

      • 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.

        I don't remember globally renaming a function in recent years. I often split or merge functions - two functions into one more general one, or one function into two more specific ones. This tends to require examining each case. So the search/replace activity isn't a large part of the whole.

        • People using simple editors rarely do. The work and the risk that you'll introduce a bug often isn't considered worth reconsidering the name of a function or identifier. Especially with OO code.

          But if you're using an IDE with refactoring support, there's next to no risk, and it's fast. So there's no reason not to rename if clarification is needed, or the code was originally written by someone who's not good at naming things.

          I do it quite often.

          • I think I don't do it often because I usually set out with a naming scheme and architecture before I start coding. A name is used because it's the right name under the naming scheme.

            It's nothing to do with the editor.

            Then again, I'm not often incorporating my code with other people's code. I'm usually creating original code to implement some crypto protocol or algorithm I'm developing, or to analyze data. If I was bringing in multiple name spaces from other places, I can see why I might want to prefix them

    • So you don't use syntax highlighting/validation?

      You can also redirect all the compiler errors to /dev/null, because you should just be able to spot them by looking at the code.

      Hell you don't even need a compiler. It should be obvious what machine code should be generated from a high level language. Just transcribe the machine code directly.

      That's *real* programming.

      • Of course I do. I don't consider memorizing the methods of a unfamiliar library to be programming.

        • Why would you use something that doesn't do any of the work?
          • My work (ie what I get paid to do) is to program things, anything else is a loss. If people were paid based on your definition of work, then ditch diggers would be millionaires.

            • I think you are confusing effort with productivity.
              • Does your job pay you to be productive or expend effort? I understand the physical definition of 'work', but when you go to work every day what are you paid for.

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

                  If an IDE takes care of things that I would otherwise have to do (programming or not), then it is doing work. It is freeing me to do other things. It is increasing my productivity.

                  The nice part about tools, is that despite the work they do, you don't have to pay them, so you should be using every tool that increases productivity.

      • by armanox ( 826486 )
        I don't see how syntax highlighting and compiler messages have anything to do with an IDE. When I'm building to code to see if changes work, I regularly switch C compilers depending on the current platform. I haven't quite seen an IDE that works with MIPSPro....
        • It's an example of another technology that makes the job of programming much easier, but doesn't literally write your code for you. I don't think we should consider tools that don't do any "programming work" as not doing any work. I think we should value any and all tools which significantly increase productivity.
      • by suutar ( 1860506 )

        You appear to include a lot of things in the term "programming" that are not actually generating code, though they certainly make it faster/easier to generate code. GP apparently doesn't. Is that really such a big deal?

        • I didn't include anything in the term programming. I think it is ridiculous to label anything that isn't "programming" as "doing none of the work". Either programming is narrow, and the job of a programmer includes lots of things that are not programming, and anything that helps with those no programming tasks is doing work (even if it is not programming), and is therefore useful. Or programming is broad and an IDE is clearly helping to do the work of programming.

          My post was meant to illustrate that ther

        • Your thinking of IPEs (Integrated Programming Environments - which as far as I know don't exist) not Integrated Development Environments. IDEs are helpful for development, of which programming is merely a subset. Unfortunately the industry is flooded with people who don't know the difference:

          How long have you been coding? 7 Days you say? When did you start the project? 7 Days ago? Seriously?

          Yes, alas, there are a lot of people who think that development starts with writing code. It doesn't. If y
  • Fuck you dice (Score:5, Insightful)

    by binarylarry ( 1338699 ) on Tuesday May 19, 2015 @05:08PM (#49730261)

    This is a fucking microsoft ad.

    • mod parent +1

    • Didn't work very well, the first half the thread is discussing emacs.

    • The article spends half the time insulting Visual Studio, just so you know.
      • how can you write an article about visual studio WITHOUT doing that? Truth hurts!

      • You must have read the wrong article. The one linked to in the summary mentions Vsual Studio no less than 21 times, and always in a way that is positive. Show me a single insult. I couldn't find it.
    • I didn't pick up on it at first, but CTRL-Femacs and CRTL-Fvim both show no instances of either. Eclipse is mentioned, but M$ Visual Suck is mentioned in the same very small paragraph. How many times is M$ Visual Suck mentioned you ask? 21 times! Again, that M$ garbage 22 times, emacs and vim not once. Yep, it's an M$ ad.
    • Are you sure? I thought this was a pretty lame attempt at getting traffic to hit dice.com (from a writer who's non-technical).

      It's not like C# developers on Windows don't know which IDE to use already.

  • by Megan Woods ( 2920951 ) on Tuesday May 19, 2015 @05:11PM (#49730293)
    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
  • by ardmhacha ( 192482 ) on Tuesday May 19, 2015 @05:15PM (#49730315)

    "Nerval's Lobster writes: "

    I'll bet it is a Dice article.

  • Delphi. There is still nothing better.

    • by Ronin Developer ( 67677 ) on Tuesday May 19, 2015 @06:30PM (#49730743)

      I would agree with you as I prefer Delphi for my personal work or for prototyping a solution. Others here couldn't give a rats ass about a tool they consider obsolete.

      As for IDE vs CLI? I prefer IDE. Others a text editor with, maybe, syntax highlighting. More power to them.
      A good IDE brings everything together, such a code, device views, active debugging, compiler, UML design tools, etc., into a single environment. Managing things such as refactoring, unit testing, code analysis, documentation and other tasks is a big help.

      I will not argue with those who prefer CLIs as some people are simply more efficient with the CLI over an IDE. Personally, I would give those in my shop the option to use alternative tools provided the code is properly written, bug free and able to be used, with ease, with the selected IDE.

      I do require a lot of screen real estate regardless. One can never have too much screen real estate when debugging when using a text editor or IDE.

      My favorite IDEs?
      Java - IntelliJ (from JetBrains)
      PHP - PHPStorm (derived from IntelliJ)
      Android - Android Studio (derived from IntelliJ)
      iOS/Mac - XCode, RemObject Silver (debate is out) and AppCode (derived from IntelliJ).

      For cross platform, prototyping and personal work, I prefer Delphi / RADStudio with VisualParadigm for real UML work.

    • For desktop application development, that's true, there has never been anything better than Delphi. Unfortunately, desktop application development appears to be dying off.

    • Compared to a full SmallTalk environment, Delphi always seemed like the little brother who wants to do everything his big brother does, except can't because his arms and legs are too short.

  • by grimmjeeper ( 2301232 ) on Tuesday May 19, 2015 @05:29PM (#49730385) Homepage
    I guarantee that you're not going to find good advice about what IDE is best on a Dice "insights" clickbait page.
  • by ndykman ( 659315 ) on Tuesday May 19, 2015 @05:45PM (#49730479)

    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.

  • Wrong question (Score:5, Interesting)

    by msobkow ( 48369 ) on Tuesday May 19, 2015 @05:51PM (#49730507) Homepage Journal

    The question is: "What language are you writing this project in?"

    The language dictates the best IDE for the job.

  • for .NET dev.

    I like the IntelliJ family for other stuff.

  • by Maltheus ( 248271 ) on Tuesday May 19, 2015 @06:12PM (#49730643)

    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.

  • Syntax hilighting (Score:5, Insightful)

    by phantomfive ( 622387 ) on Tuesday May 19, 2015 @06:14PM (#49730653) Journal
    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.
    • This is slashdot, there will always be someone who'll declare they prefer something primitive rather than something more modern and useful.

    • Re:Syntax hilighting (Score:5, Interesting)

      by Necron69 ( 35644 ) <`jscott.farrow' `at' `gmail.com'> on Wednesday May 20, 2015 @09:49AM (#49735551)

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

  • 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.
  • A Computer (Score:4, Funny)

    by OrangeTide ( 124937 ) on Tuesday May 19, 2015 @06:48PM (#49730849) Homepage Journal

    My favorite IDE is a computer. When I wrote programs without a computer it was much harder. (I wish I was joking)

  • by Ramley ( 1168049 ) on Tuesday May 19, 2015 @06:51PM (#49730879)
    Joe's Own Editor. I don't use a traditional IDE, but do still use JOE. Am I alone with this? *sigh*
  • Obviously.. (Score:5, Funny)

    by juanfgs ( 922455 ) on Tuesday May 19, 2015 @06:57PM (#49730919)

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

  • In the past few years I've largely use Eclipse. I tend to write small programs in C, C++, or CUDA C. I like Eclipse because it's free, has easy support for all these languages and others that I expect to use (Python, Java), runs on Debian/Ubuntu/etc., and there's tons of support online.
  • Personally, I find Vi to be a fast and efficient text editor. The ones built in to an IDE are inevitably inefficient for me.

    Some languages have so much boiler plate that it makes sense to start in an IDE (I'm looking at YOU Java), but I generally prefer languages that don't need that. Vim handles syntax highlighting just fine. It doesn't help that so many IDEs seemingly want 12 terabytes of ram.

  • Eclipse (Score:3, Insightful)

    by X10 ( 186866 ) on Tuesday May 19, 2015 @07:25PM (#49731095) Homepage

    So far I used Eclipse for Android development, but that's coming to an end. Google forces me to use Android Studio, which is terrible. Which makes me think: how can so many developers prefer AS over Eclipse? What does that say about developers? About me?

    • Android Studio beats Eclipse for Android development like an unloved child in a trailer park.

      Seriously. Night-and-day improvement. No more times when you have to cut something into the clipboard, save the empty file, and paste it back to make Eclipse realize that it's imagining all the errors it thinks were in it. No more "type a semicolon, then have the cursor inexplicably move back so that the carriage return a moment later pushes the semicolon to the next line and breaks the code." No more situations wh

  • by FranTaylor ( 164577 ) on Tuesday May 19, 2015 @07:42PM (#49731241)

    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

"Why should we subsidize intellectual curiosity?" -Ronald Reagan

Working...