Slashdot Mirror


Visual Studio vs. Eclipse: a Programmer's Comparison

Nerval's Lobster writes "Developer and editor Jeff Cogswell is back with a comparison of Eclipse and Visual Studio, picking through some common complaints about both platforms and comparing their respective features. 'First, let's talk about usability,' he writes, 'and let's be frank: Neither Eclipse nor Visual Studio is a model for sound usability.' That being said, as an open-source project, Eclipse wins some points for its customizability and compatibility with languages; it's more difficult to modify Visual Studio to meet some programmer needs, which has led to any number of abandoned projects over the years. Microsoft choosing to eliminate macros in recent versions of Visual Studio has also led to some programmer frustrations (and a need for external tools)."

37 of 543 comments (clear)

  1. Re:Studio v. Eclipse by binarylarry · · Score: 5, Informative

    Eclipse struggled a bit with the Eclipse 4 release but the new version Kepler is fantastic.

    Visual Studio is great if you're developing for Microsoft platforms.

    Fortunately, Microsoft platforms are growing less relevant by the day.

    --
    Mod me down, my New Earth Global Warmingist friends!
  2. Out of the box by Anonymous Coward · · Score: 4, Insightful

    Out of the box, VS wins hands-down.

    1. Re:Out of the box by Shados · · Score: 3, Interesting

      Of course everything you described is the bare minimum for a modern IDE. Eclipse does have an advantage because it has more extensions written for it, but both IDEs have a ton (VS is also extremely extensible and has countless extensions written for it too).

      But you're not helping your case if you only mention core IDE features. Issue tracking integration? ::GASPS:: stop the press!

    2. Re:Out of the box by Anonymous Coward · · Score: 3, Informative

      And VS has TFS, which integrates with Sharepoint, Project, Dynamics CRM, and any of the Dynamics accounting systems (or any other software that integrates with CRM or Dynamics, like QuickBooks or ConnectWise).

      How is Eclipse's Mylyn integration anything special? It's free? I don't see that being much of a big deal to a business. Maybe to a small dev shop or a lone developer it matters because it's within reach. But to a business that wants to automate almost everything in the PM toolchain, Eclipse isn't even on the radar.

    3. Re:Out of the box by dkf · · Score: 4, Informative

      And VS has TFS, which integrates with Sharepoint

      You mean the collaborative web system that barely manages to do basic things like integrate its calendar with Outlook, let alone Exchange or the other plethora of calendaring systems out there?

      My friend, you're exhibiting a lot of Stockholm syndrome there; do you work for Microsoft perchance? (If you do, when will Sharepoint support CalDAV? Even read-only would be genuinely useful, because that will let me pull the calendar events into my dev team's main shared calendaring system from some of our external partners rather than leaving their meeting requests orphaned.)

      But to a business that wants to automate almost everything in the PM toolchain, Eclipse isn't even on the radar.

      The biggest issue with that approach is that VS is tied to a single platform. If you're not working somewhere that buys into the whole of that stack, you're utterly uninterested in any of it. That's a lot of pro development shops, whatever you think.

      --
      "Little does he know, but there is no 'I' in 'Idiot'!"
  3. Um excuse me ... by Anonymous Coward · · Score: 5, Insightful

    A developer with sufficient skills can be productive in ....

    A developer with sufficient skills can be productive in anything.

    vi.

    gedit.

    emacs/xemacs

    Pencil and paper.

    And on very VERY rare occasions, I've seen developers who did everything their head and just typed in any old text editor.

    1. Re:Um excuse me ... by kthreadd · · Score: 4, Funny

      Forget text editors. Real developers adjust bits directly in memory using the switches on the operator panel.

    2. Re:Um excuse me ... by binarylarry · · Score: 5, Funny

      Fuck that shit bitch, butterflies for life.

      --
      Mod me down, my New Earth Global Warmingist friends!
    3. Re:Um excuse me ... by Darinbob · · Score: 3, Funny

      I don't think the skilled developer is going to be very productive on Visual Studio for Linux.

    4. Re:Um excuse me ... by Darinbob · · Score: 3, Insightful

      I don't know, great editor but lacking a bit to make a good IDE. I don't like IDEs though so I don't mind that. The whole concept of having a single window to view code in that is surrounded by auxillary rarely used windows just seems backwards, and yet that seems to be the dominant design. Also the idea that all tools must be a part of the same overarching tool seems wrong, since it prevents you from mixing and matching the best tools. Ie, if you have an IDE with a great editor but its debugger is mediocre, then the entire IDE becomes mediocre; in some cases I have seen some developers use several IDEs in parallel to get the best of each, which also defeats the idea of "integrated".

      Emacs does what is important with an IDE, lets you edit, lets you run a debugger and present the data within it, lets you start a build and present the results within it, and lets you manage the source code control. Basically it has a way to integrate other text based tools. It doesn't need to be a Windows style MDI application to do that.

      First IDE I used was in 1981, UCSD Pascal. Edit/compile/debug in a straight forward tool. Things do not seem to have improved that much since then. Maybe they're prettier though.

    5. Re:Um excuse me ... by Darinbob · · Score: 3, Insightful

      Fired? That's ridiculous. Let the developers use the tools they are comfortable with.

      If you're doing a 3 second refactor with a tool then that means you are not cross checking to be sure that the tool did it right or the way you wanted it done, so add at least an hour to do that to do it right. Never trust a tool to do the right thing, unless you're in the sort of dysfunctional environment where fast code is more important than correct code.

    6. Re:Um excuse me ... by Dcnjoe60 · · Score: 3, Informative

      My friend fired a developer for refusing to use an IDE.

      I'm sorry, but no developer can ever be as productive using text editors over IDEs, once they man up and learn how to use them. For instance, renaming a class method that is called by numerous other classes is a 3 second operation in Eclipse, and possibly hours long in bash, with a much higher chance of breaking something. In fact, most refactoring operations cannot be done efficiently outside of an IDE.

      I would have fired your friend. Was the developer coding below expectations? Was the developer's code inferior in a way that an IDE would improve? Was the developer productivity a problem? If the answer to any of those questions is "No," then what difference does it make what tool he/she uses. IDEs are good for some things and lousy for others. Refactoring is something they are good for, but at the same time, if it is taking 3 seconds to do in Eclipse and hours in bash, then something else is wrong, regardless, that example assumes one is going to be refactoring on a regular basis. If that is the case, then the IDE is making up for other programmer inefficiencies.

      If you have a productive developer, who cares what editor/IDE they are using? The job of a manager is to remove the obstacles that keep employees from being productive, not making them jump through hoops.

    7. Re:Um excuse me ... by bertok · · Score: 5, Insightful

      Well, I'd never hire you in the first place, because modern IDEs are the automation of the software development world and demonstrably improve productivity while lowering error rates.

      You're basically saying that we should let the guys in the warehouse manhandle 500kg loads by hand because they "prefer" not to use the forklifts. We should just let them do whatever they please, because that's what makes for good management, right?

      I've been in mixed work environments before where everyone just used whatever tools they wanted: Linux, Windows, Mac, Vi, Emacs, etc... I personally used IntelliJ IDEA on Windows because it had code analysis and safe refactoring. My productivity was at least 50x higher than other developers. I was told not to submit changes too fast because the code reviewers couldn't keep up. Note that I didn't say I was 50x better than anyone else -- there were smarter and more experienced developers there -- but I was running circles around them because of the tools that I was using. A woodcarver, no matter how skilled in his art, simply cannot keep up with a CNC milling machine. A blacksmith cannot possibly outproduce a ten ton press that can stamp out a part every five seconds.

      Inefficiencies were everywhere: they took 30 seconds to check out a file from source control using a command-line tool, whereas I could just start typing with a barely noticeable pause on the first character as the IDE does it for me. They used "diff", I used a GUI 3-way merge tool that syntax highlighted and could ignore whitespaces in a semantically aware way. There was one particularly funny moment when some guy walked up to me to ask me to look into a bug in a specific method. He starts off with the usual "now go to the xyz folder, abc subfolder, now somewhere in here there's a..." meanwhile I'm staring at him patiently because I had opened the file before he'd even finished giving me the full method name at the start of his spiel. Global, indexed, semantic-aware, prefix search with jump to file is a feature of IntelliJ IDEA, not Emacs or Vi. He's never even heard of such a thing! Thought it was magic. Grep couldn't have found the method anywhere near as fast, not through 30 million lines of code anyway, and then it would have returned every reference to the method name as well, not just the method definition itself. Then I'd have to find the damned file in a haystack of thousands and open it manually anyway.

      Minutes of work in a seconds, hours in minutes.

      It's not about typing, or shortcuts, or block select, or the specific dialect of regular expressions in your favorite text editor. It's about indexing, refactoring, code analysis, live error highlights, popup-help, tab-complete, source control integration, boilerplate generation, integrated debuggers, and a thousand other things that most programming oriented text editors simply do not have. It's about letting the CPU in your computer do what it is there for, instead of just waiting patiently for the next keyboard interrupt so that it can use all 3 gigahertz of power to put a byte into a buffer and then go back to sleep.

      It's not even a good idea to let developers pick their favorite IDE either, because there are productivity gains to be had from consistency. Training is cheaper, licenses can be purchased in bulk, plugins will work for everyone, custom extensions may be cost-effective to develop for one IDE but not many, etc...

  4. Ec*freeze*lip*freeze*se works by Anonymous Coward · · Score: 5, Funny

    And I *freeze*refu*freeze*se to h*freeze*ave anyo*freeze*ne tell me di*freeze*fferently. *freeze*.

    1. Re:Ec*freeze*lip*freeze*se works by binarylarry · · Score: 5, Informative

      Check out the new Kepler release. Kepler was an iteration with a focus on improving the performance issues Juno had.

      http://eclipse.org/kepler/

      Kepler is pretty nice UX wise.

      --
      Mod me down, my New Earth Global Warmingist friends!
    2. Re:Ec*freeze*lip*freeze*se works by Githaron · · Score: 4, Informative

      I think I will stick with Intellij. It and its family are easily the best IDEs I have ever used.

  5. WTF? by TheDarkMaster · · Score: 4, Informative

    Eclipse IS slow, period. I work with him for over six years and has ALWAYS been slow compared with a similar IDE that is not based on Java. And not only slow, but terribly buggy. TFA sounds more like an article made by an eclipse fanboy than a developer trying to make a truly honest comparison.

    --
    Religion: The greatest weapon of mass destruction of all time
    1. Re: WTF? by thewils · · Score: 4, Funny

      Actually, Microsoft have been working on this aspect to try to slow down VS to compete with Eclipse. VS2012 for instance now has a pause built in where you can't do anything for about 10 seconds when you open up an aspx page, presumably while it parses the file for you...even when you don't want intellisense and just want to copy some code out. It gets really annoying after a while.

      Vanilla VS2012 won't let you build an installer for a Windows service either, which you could do with VS2010, so I have to maintain both of them on my dev box, unfortunately.

      --
      Once I was a four stone apology. Now I am two separate gorillas.
  6. Netbeans! by bigsexyjoe · · Score: 5, Informative

    It isn't nearly as popular (and I don't know why), but Netbeans kicks Eclipses ass. True, they are both memory hogs. But Netbeans doesn't drag and freeze as much. Its commands and interface are a lot more intuitive. Netbeans is also a much better IDE for the web. It handles JavaScript way better than Eclipse and even allows you to debug your JavaScript through a Chrome extension.

    1. Re:Netbeans! by TopSpin · · Score: 3, Interesting

      I concur with this. NetBeans is not attempting to be a generic GUI application platform; it is a mere IDE so it weighs a lot less than Eclipse. I moved to NetBeans because Maven integration with Eclipse is still half baked after all these years; with NetBeans you just open the Maven project and things work correctly. I stayed with Netbeans because it performs better and just has fewer hairs. Eclipse not spamming .project and .classpath all over the place is just fabulous as well.

      It is Oracle, however. One day it might cost $6000 per "seat."

      --
      Lurking at the bottom of the gravity well, getting old
  7. Reviewer doesn't know the first thing! by Anonymous Coward · · Score: 3, Insightful

    "Studio also requires a working set of about 250 megabytes of memory, while Eclipse requires about 3 megabytes of memory..."

    Erm, working set on a newly launched eclipse (no project) takes 13x,xxxK.

    Plus working set is actually a GOOD thing - in theory. Imagine two programs which each take 700 megabytes running on a machine with only 1000 (and 24). Imagine them sharing some ... libraries, we could call them, of 500 megs each. So the working set would only be 900! Yay! Disk thrash averted :)

    Oh, DLL hell? Ah.

    Yes.

  8. Qt Creator!! by goruka · · Score: 5, Informative

    For all of those that love Visual Studio for C++ programming, and having used eclipse for some time, I believe Qt Creator is by far a much better alternative, as it has around the same level of functionality of VS+expensive commercial plugins.

    Even letting the Qt integration out, It has excellent code completion, shows warnings and errors as you type, provides great refactoring tools, It's extremely lightweight, works with any compiler and any build system, in any platform, integrates with a wide array of debuggers and profilers, has a high degree of customization, and some unique features like the best search/replace I've ever used and the locator (ctrl-k).

    The only reason it's not more popular is that most people believes it's only useful for writing Qt applications, which couldn't be further away from the truth. It's simply awesome. If I worked for Digia, I'd try to change the name and promote it to something unrelated to Qt, that way it would be really easy to bring new developers to their platform.

  9. A real study is needed by mlwmohawk · · Score: 3, Insightful

    As far as I am concerned, IDEs are largely similar in their view of software development. They are like bloated bureaucracies that one has to deal with to do anything constructive. If you dare have a project format that VS, Eclipse, or what have you, doesn't understand, and you have to set up the environment to do everything manually. I know I sound like I am saying "Get off my lawn," but I am really saying we need to understand the development process better. IDEs obscure it too much. Tools like VIM and Emacs expose 100% of it. (In full disclosure I use VIM, ctags, make, etc.)

    We need to come up with the programmer's equivalent of the SAE and define basic tools of the trade. It will never happen, of course, but that's *really* what we are fighting about.

  10. Very differant experience by doas777 · · Score: 3, Interesting
    The author and I have had a almost oppositionally different experience with the platforms I've had. Visual studio, for all its flaws, feels smooth and solid, with prompt code assistance features and a generally good approach to code organization. It has its share of issues, but it seems to be clearer and more directed.

    Eclipse however just feels generally clunky. I pause for 20+ seconds just to get code completion prompting to come up in python or java, and half the time its in the wrong context. the perspectives is also really annoying. everytime I go to debug, it halts everything to tell me it wants to switch, and then gives me a 2inch high window for viewing the code, anchoring is weak, and it always seems like I never get back the space I should when I dock a sub-window. Personally I really don't care how extensible my IDE is. any given ide is not going to be able to support all langagues and technologies, so why try to shoehorn it in?

  11. Conclusion: meh by Aviancer · · Score: 5, Insightful

    So the conclusion is "both work; each has some flakiness".

    That's a long-winded way of saying "meh".

    vi or emacs debates anyone?

  12. Re:Studio v. Eclipse by Vanderhoth · · Score: 3, Insightful

    Is it important that a tree is equal to a fork? I know it's an exaggeration, but both are useful in completely unrelated ways that doesn't require comparison.

  13. Left out MyEclipse and IntelliJ by Kagato · · Score: 4, Insightful

    You're comparing an expensive IDE to a free one. I'd be more interested how it compares to a curated Eclipse experience like MyEclipse or a closed source IDE like IntelliJ. All that being said, Eclipse is mostly used by folks using Java or languages that run in the JVM. Visual Studio is going to be used by those on a Microsoft stack.

  14. Getters and setters by MemeRot · · Score: 3, Insightful

    "One full-time Java programmer told me that he hasn’t had to manually type in any setters and getters in years, and he has a template from which all his objects are typed in automatically, thanks to the code snippet tools in his favorite editor (which isn’t Eclipse—he uses IntelliJ). Clearly, methods of automated typing seem to be a favorite among a lot of programmers. So why did Visual Studio remove a feature that facilitated this? Who knows."

    Let's not mention the fact that in C# you don't need to manually type in all the getter/setter junk, just public int MyField {get; set;}

    1. Re:Getters and setters by AdamHaun · · Score: 4, Interesting

      Tangential question: What's the advantage of having getters and setters vs. just accessing the variable directly? If automatically generating getters and setters is just an easy/common thing, what function do they really serve?

      I've only done OO programming in college (I do embedded C now), so I'm assuming there's some real-world advantage that I'm not aware of.

      --
      Visit the
    2. Re:Getters and setters by HaZardman27 · · Score: 5, Informative

      One advantage is that it makes it easier on you if in the future you realize that you need to do any sort of validation or other logic that's not directly related to the accessing or mutating of a property's value, but needs to happen every time that property is accessed or mutated. If you were already calling 'getValue()' whenever you wanted 'value', all you have to do is add the new logic to the 'getValue()' method. It also allows you to have a private scoped object property while still making the property accessible to outside classes. Once again, you might want to do this so that you can always ensure that a value being set as the value of the property is valid and sanitized (if the property were public, any other class could directly change its value without the guarantee of the new value being valid).

      --
      Apparently wizard is not a legitimate career path, so I chose programmer instead.
  15. Re:Title not a good start by Jawnn · · Score: 3, Insightful

    This is not a good sign. A developer with sufficient skills can be productive using vi as her IDE...

    Yes, but not as productive. Yes, it's true. It's been measured. A skilled coder, working in an IDE, can run rings around the coder working in a text editor when the "product" is something more sophisticated than "hello world".

  16. Re:Studio v. Eclipse by lgw · · Score: 3, Informative

    There was a time that VS was just the best C++ IDE around. The best library docs, the best source debugger, and pretty decent at being an extensible editor with auto-complete for names. The peak was probably ~10 years ago, and Eclipse back then, well, it had a long way to go.

    Apparently "developers, developers, developers" didn't end well for developers using VS. It became less customizable each release, the focus shifted away from C++ (that part I can understand), and it kept getting more heavyweight. WTF? VS2010 at last seemed to be a step in the right direction, finally, but then the ribbon happened.

    --
    Socialism: a lie told by totalitarians and believed by fools.
  17. Biggest Visual Studio defect: Runs on Windows by swillden · · Score: 3, Informative

    The biggest problem with Visual Studio, for me, at least, is that it only runs on Windows. I use a lot of different operating systems, but Windows isn't among them.

    --
    Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
  18. Re:Studio v. Eclipse by K.+S.+Kyosuke · · Score: 3, Insightful

    That's a completely different issue. He never claimed that that there is a user group with *zero* Windows relevance, merely that it's getting smaller.

    --
    Ezekiel 23:20
  19. Re:No point by lgw · · Score: 3, Informative

    Some pointers to get you started:
    * Really understand pointers.
    * Use short names. FortyCharacterJavaNamesAreTheMarkOfTheBeast.
    * Efficiency matters (even non-algorithmic efficiency). Veteran C/C++ programmers will find your code confusing if you do something in a needlessly inefficient way, because that suggests something really tricky is going on that made you avoid the "obvious way".
    * The right lifetime for an object is usually the scope of the block in which it is introduced. Use RAII (C++ style) or paired "init at the top, cleanup at the bottom" (C style).
    * Understand shared_ptr, but don't overuse it. It's not a reason to avoid properly thinking through which block should own an object.
    * Use structs too, not just classes. One common rule of thumb: either have a struct with no members private (and no promise of constant validity) or a class with all members private (and promise constant validity). The simplicity of struct is valuable - it's often better to have a struct (possibly with an IsValid() member) than a clutter of accessor functions, despite the possibility of inconsistency.

    --
    Socialism: a lie told by totalitarians and believed by fools.
  20. Re:Studio v. Eclipse by lgw · · Score: 4, Insightful

    VS was the best debugger in the business, and if you're stuck with a legacy code base that's arguably the most important part of an IDE. And back when MSDN was installed with VS (instead of being a web site) it was amazing for its time, because you could select any library function name and with a keystroke get really well written docs for that library function fast. I used to have half my screen for code and half for the doc pane. Once it became wait-a-few-seconds-for-the web-page, that advantage was lost.

    --
    Socialism: a lie told by totalitarians and believed by fools.
  21. Re:Studio v. Eclipse by lgw · · Score: 3, Insightful

    Somewhere about 5-8 years ago there was a distinct and obvious transition between MSDN docs written by good tech writers, and MSDN docs clearly written by devs - unsurprisingly this was about the time auto-generating docs from docstring comments became the thing to do.

    The docs for the old win32 stuff are still good though. Look at the docs for the famously-silly CreateFile() function. Everything is explained, including all the corner cases, but critically there's also the vital "but you probably just want to do X" hints that are so needed when the docs get this long.

    Contrast that with File.Create() which only hints at what the various options do (but at least has proper grammar, unlike some of the seldom-used stuff).

    --
    Socialism: a lie told by totalitarians and believed by fools.