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?

23 of 443 comments (clear)

  1. emacs by Anonymous Coward · · Score: 2, Insightful

    C-x-C-c

  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 Anonymous Coward · · Score: 2, Insightful

      If you use your brain for a sec, there are many reasons one would need to change function names. I honestly question your ability if you can't grasp this.

    3. 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.
    4. Re: Do most of the work? by holostarr · · Score: 3, Insightful

      You have a class which was originally written by someone else which is doing too much or is not following single responsibility principal, so you refactor out the pieces into other methods and classes, you then find method and variable names no longer reflect what the original method was doing and requires update. Or simply because you felt like it and using an IDE you fucking can! Seriously IDEs are great! I don't understand people on Slashdot who think if its not hard, its not worthy! IDEs provide so many benefits I would not be able to list them all. Here are some: - Intellisense sorting and cleaning of unused of import/using statements - Jumping to declaration of a method or variable - Hover over variable to see type - Debugging and stepping through code with ability to add/remove breakpoints on a whim - Hover over variable during debug to inspect its value - Watch variables - Edit conditional breakpoints quickly - Add bookmarks to code and jump between them - Highlight code errors and jump to them quickly - Compare code side by side - Show code smells - Run/debug test cases with a single click - Code completion for those hard to type/remember method names

    5. Re:Do most of the work? by Anonymous Coward · · Score: 2, Insightful

      What are you talking about? An IDE doesn't force you to not use the command line. If you don't like the build system in the IDE, do it on the command line. Most IDEs, including Eclipse, let you run arbitrary commands within the IDE but you can always go outside the IDE. I've never seen an IDE that couldn't handle an external program writing to a file. The IDE just says "Hey this file changed, do you want the changes?"

      People are missing some of the best points of IDEs and instead are focusing on rarer tasks like renaming. IDEs auto import the things you need when you need them. They inline documentation on whatever function you're calling or whatever variable you're using. They auto-generate your function docs so you don't have to write a bunch of @param or whatever you language uses. They'll tell you you're typing a bug before you finish typing it. They spell check your variable names and strings. They'll automatically reformat the code to whatever the team specification is when you save or commit and reformat it back to your format whenever you need.

      Depending on how you use Emacs, it is an IDE. A lot of people claim they don't like IDEs when they've actually created one out of the tools they're using.

  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. Still use the most productive IDE by bdhall1313 · · Score: 2, Insightful

    Delphi. There is still nothing better.

  7. 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?
  8. 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.

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

  10. Re:Wrong question by grimmjeeper · · Score: 3, Insightful

    Not just what language but "What is your target environment?" That makes a big difference too.

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

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

  14. Eclipse by X10 · · Score: 2, Insightful

    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?

    --
    no, I don't have a sig
  15. 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

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

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