Forgot your password?
typodupeerror
Programming IBM Microsoft Open Source Software

Visual Studio vs. Eclipse: a Programmer's Comparison 543

Posted by timothy
from the nothing-beats-a-good-punchcard-maker dept.
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)."
This discussion has been archived. No new comments can be posted.

Visual Studio vs. Eclipse: a Programmer's Comparison

Comments Filter:
  • Out of the box (Score:4, Insightful)

    by Anonymous Coward on Tuesday July 16, 2013 @12:57PM (#44298767)

    Out of the box, VS wins hands-down.

    • by Rob Riggs (6418)

      Out of the box, VS wins hands-down.

      Until you need to target a non-MS operating system...

  • Um excuse me ... (Score:5, Insightful)

    by Anonymous Coward on Tuesday July 16, 2013 @12:57PM (#44298771)

    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.

    • by kthreadd (1558445) on Tuesday July 16, 2013 @01:01PM (#44298843)

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

    • by Darinbob (1142669) on Tuesday July 16, 2013 @04:06PM (#44301615)

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

  • by Anonymous Coward on Tuesday July 16, 2013 @12:57PM (#44298775)

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

  • by Captain_Chaos (103843) on Tuesday July 16, 2013 @01:00PM (#44298815)

    A developer with sufficient skills can be productive in both Visual Studio and Eclipse, ...

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

    • Re: (Score:3, Insightful)

      by Jawnn (445279)

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

  • WTF? (Score:4, Informative)

    by TheDarkMaster (1292526) on Tuesday July 16, 2013 @01:00PM (#44298819)
    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.
    • by nwf (25607)

      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.

      I've got Eclipse Juno and a later version of VS installed on the same relatively fast PC (solid state disks). Neither are speed demons, but I think VS is slower, particularly when building. It's somewhat amazing how fast Eclipse builds my project with over 1000 classes, whereas VS takes about the same amount of time to build a C project with 10 files small files.

      • Depends on what VS you are talking. If you mean the VS 2005 or newer, it is also very slow. As for Eclipse, it is slow in general: Slow to load a JSP, slow to load an auto-complete, slow for any operation more relevant. It may not be obvious on a computer for $ 6,000, but anything below is easy to see happening. And some important things are terribly buggy and poorly performing, such checking the correctness of a JSP file.
      • by sapgau (413511)
        Agreed, I guess your mileage may vary. Haven't experienced any lag on Eclipse. But then again I don't tempt fate and try not to run many things at the same time otherwise I experience Windows memory swapping.
  • Netbeans! (Score:5, Informative)

    by bigsexyjoe (581721) on Tuesday July 16, 2013 @01:04PM (#44298889)

    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.

    • Re:Netbeans! (Score:4, Interesting)

      by TopSpin (753) on Tuesday July 16, 2013 @02:01PM (#44299823) Journal

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

  • by Anonymous Coward on Tuesday July 16, 2013 @01:05PM (#44298895)

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

  • From C++ perspective (Score:2, Interesting)

    by postmortem (906676)

    Eclipse's gcc code parser integration is better than IntelliSense. It actually understand OO code. VS struggles badly with understanding OO code. for example, if every class re-implements one virtual function, VS cannot figure out usage of one particular implementation; even if there are object declared with that class.

    Thus VS is good for debugging, for everything else in C++... not much so.

    • by BitZtream (692029)

      Ironically, everyone else who makes IDE's doesn't use GCC for code parsing because it sucks ass ... Maybe when you get around to using LLVM, you'll really that Eclipse is actually the shitty one.

    • Which version of VS was your experience with?

      In my experience, VS has the single best C++ IDE parser out there. It's the only one of two IDEs that seems to be able arbitrarily complicated template metaprogramming code thrown at it (e.g. Boost.Lambda). The other is KDevelop.

  • Qt Creator!! (Score:5, Informative)

    by goruka (1721094) on Tuesday July 16, 2013 @01:06PM (#44298915)
    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.
    • by gl4ss (559668)

      you going to code java with qt creator? only an idiot - masochistic glorious idiot - would try to code qt with eclipse.

      which pretty much gets us to the point of why the fuck make this comparison? really, the c/c++ in eclipse is horrible and you most definitely are NOT going to be coding .net in eclipse.

      I've used both eclipse and visual studio for the past year.. and just as well. the other for android stuff and the other for windows phone development.

      trying out the new android studio now though.. now there'

    • I agree that Qt Creator is an awesome IDE, especially so if you want something cross-platform. However...

      It has excellent code completion

      How well does it handle templates? Can it figure out, say, std::bind? Or even std::vector<std::string>? Last time I tried it (a few months ago), it still had problems with the latter (v.begin()-> would not give you members of string).

  • by mlwmohawk (801821) on Tuesday July 16, 2013 @01:06PM (#44298919)

    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.

    • by BitZtream (692029)

      There is no benefit to knowing how to make a Make file if you're only going to compile a Windows app. Pretending that we all need to know the inner details of make is retarded.

      Protip: You can edit visual studio project files in VIM!!!! So its pretty hard to say it hides stuff from you when you have access to everything in a .proj file that you do in a Makefile and can use the same editors.

      I guess you think visual studio hides stuff because it doesn't require you to use a shitty editor for the project fil

    • by gl4ss (559668)

      yeah, so you craft your own makefiles for wp8 compilation? look there's practical reasons for why people use visual studio and it's pretty simply getting paid...

      I use multiple IDE's depending on what product the code is for, you still end up knowing the build process because things can conflict and fail at different points in the building and they will fail.

      also I don't agree that much with understanding the development process being out of tools that show you basic options.. if you're really hardcore and

    • by lgw (121541)

      VS actually isn't bad in this regard. At least with C++, every project can be a "makefile project:, which is pretty trivial to set up and get full VS integration. All the cross-platform C++ development I've done has worked that way.

  • by doas777 (1138627) on Tuesday July 16, 2013 @01:08PM (#44298957)
    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?

    • by gaspyy (514539)

      Agreed. I use Eclipse regularly (FDT and PDT) but whenever I get to work in Visual Studio, it's a much smoother experience.

    • by Nivag064 (904744)

      I've NEVER had Eclipse pause for 20 seconds!

      Be sure to increase the heap memory & enable parallel garbage collection in the 'eclipse.ini' file - see an earlier post by me.

      You can resize and reposition all the panels in Eclipse, so I don't have your problems with "2 inch" windows.

      Hey wait you must be an American (everyone else uses metric), find a non-American developer to help you & ask them to speak slowly... :-)

  • Conclusion: meh (Score:5, Insightful)

    by Aviancer (645528) on Tuesday July 16, 2013 @01:10PM (#44298969) Homepage Journal

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

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

    vi or emacs debates anyone?

    • > vi or emacs debates anyone?

      Yup. Meh. Only the immature junior programmers flame each arguing over which editor is better instead of channeling their energy into _writing_ code. /flame They ALL suck. Some just suck less then others.

  • by Kagato (116051) on Tuesday July 16, 2013 @01:16PM (#44299045)

    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.

    • Re: (Score:2, Informative)

      by Anonymous Coward

      http://www.microsoft.com/visualstudio/eng/products/visual-studio-express-products

      There is the free version. Can't help with the source though. ;)

  • by swan5566 (1771176) on Tuesday July 16, 2013 @01:17PM (#44299065)
    MSVS needs to get refactoring. This is huge for maintaining large software projects.
    • by Shados (741919)

      You have to be more specific when you say stuff like that. VS does have all the basic refactorings, and has more in every version (not really worth talking about 2010 and earlier when we're in 2013).

      Of course, whats build in is primitive compared to other IDEs, because of all the plugins and extensions that fill the gap. If you're one of the 2-3 VS users who don't use Resharper or other plugins, well, tough.

  • "Eclipse requires about 3 megabytes of memory (depending on what you're using it for)."

    If you are using it for anything, I think it probably does use more memory than that. The only other thing I'd note is that the Python Tools for Visual Studio work with CPython, not just IronPython.

    The rest of the article isn't that bad, but it does seem like a lot of words to say that both have advantages and disadvantages and are targeted towards different use cases and environments.

  • by MemeRot (80975) on Tuesday July 16, 2013 @01:31PM (#44299293) Homepage Journal

    "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;}

    • by AdamHaun (43173) on Tuesday July 16, 2013 @01:48PM (#44299603) Journal

      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.

      • by Noughmad (1044096)

        There are many situations where you want to do something else just before or after a variable is modified. One example is that you want to verify the new value is in a certain range, or is non-empty, or whatever. Maybe you have to delete the old one before the new one is assigned. A very common example is that you want to notify something else that a value has change. This is used in UI programming, when you want multiple controls/displays to be synchronized. At a certain point, you find out that it's simpl

      • by HaZardman27 (1521119) on Tuesday July 16, 2013 @02:01PM (#44299819)
        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).
      • by MemeRot (80975)

        Not mentioned in the other responses is the opportunity to use the "resource acquisition is initialization" or "lazy loading" pattern. You may have a field that gets populated by a relatively expensive operation like a database query. So your options are to fill it in during the object initialization. Or to have a get method that will check whether the private variable it exposes has a value yet. If not it goes and fills it in and then returns it. If you access that field in ~50% of your uses of the ob

  • The best IDE I've used is QtCreator, just because it is simple, the UI is clean and it does not get into your way. Lets use the points on this article to add it to the comparsion: - speed: much faster/lean than Eclipse, netbeans and Visual Studio. - usability: second place, have a nice debug view, but nothing as flexible as Eclipse perpective. - overwhelming: first, as I've said, have lots of features that do not make the UI big/fat/dirty. - customizability: last. You basicaly don't, just some panels you ca
  • by Anonymous Coward

    Yes I use IDEs for coding, and I want to be confortable using syntax highlight, shortcuts and fancy tools. But the most important feature I want is to have a professional and versatile debug interface.

    This article sounds like the propouse of an IDE is to be super fancy text editor.

    From my point of view, the capabilities of Visual Studio for debugging are far better developed than the ones in Eclipse.

    - My two cents.

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

    • by iggymanz (596061)

      Nevermind where it runs, can it generate code for anything but Windows? Haven't used for over a decade, I honestly don't know.

      With Eclipse, I can generate code for many platforms from mainframes to embedded devices with over a dozen different processors

  • by ledow (319597) on Tuesday July 16, 2013 @02:13PM (#44299989) Homepage

    Different people prefer different tools.

    I set up Eclipse, personally. It's free. It detects and plugs into Cygwin, MinGW, gcc and I can add a cross-compiler by entering a gcc build prefix into a box (just set up a new Eclipse in a VM with the intention of cross-compiling code to ARM, GP2X (a particular ARM device), Linux (32- and 64-), Windows (32- and 64-). It took about 20 minutes to install, and the rest was faffing about getting libraries to compile the same in all architectures (but now it's just a drop-down box and click - and it cross compiles).

    It works. It does what I need. It compiles. I can do it on Linux or Windows and it works the same.

    It's also fast. God knows what you people are doing but with C99 code, I haven't managed to crash Eclipse or make it churn and I don't sit around waiting for it to do anything (from Helios through to Kepler, on Windows and Ubuntu). Maybe if you're running it on some old sloth of a machine, but if you're programming why don't you have an 8-core, 8Gb machine at minimum nowadays? Hell, my laptop beats that and it cost next to nothing in terms of good laptop prices (sub-£500). The Linux VM I set up for Eclipse has 2Gb RAM and 2 cores running under VMWare on the machine and I'm never really waiting for it to compile unless I do a clean build (and I don't see that compile time should ever really be a huge factor - if you're that worried and have that large a project, stop faffing about with "consumer" programming tools and distcc it or something).

    Eclipse has little quirks of setup, like anything, but it's just the same as any other program of a similar complexity. Don't apt-get it. Just install it into a sub-folder in your home (an ultra-powerful feature in itself - keep Helious, Indigo, Juno and Kepler in separate folders and copy/paste/upgrade your whole IDE and workspace when a new version comes out).

    Debugging is marvellous. Probably it doesn't do some things that the MS software does but, you know what, it's infinitely better value for money and a darn sight better than struggling with gdb directly.

    I don't get it - maybe it USED to be a load of crap, I can't know that. But from Helios onwards, which was my first real exposure to it, it's become my IDE of choice. And you know what? If I want, I can give someone a copy of my VM that has my complete development environment and OS installed on it. 50% of handing off a compile is in the associated libraries, tools, setup and build config rather than what's in the source, and with an open-source environment and an OS IDE, you can just hand them your complete setup.

    If I was writing a programming book, I'd bundle an Eclipse VM setup. Most of my first exposure to any language is pissing about for weeks getting the toolchain set up. The most off-putting thing when I was learning programming was all the hoops you have to jump through to get a compiler that knows what it's compiling, from where, and what to do with it.

    I don't understand the gripes. Sure, I don't have a billion lines of code in there, but I have large multi-arch ports of gaming frameworks that tie into all sorts of bits. I have 20-30+ libraries inside a single program. I have 100,000 lines of my own C code in just one project. I know people might be doing a LOT more than me. But, fact is, Eclipse is damn-near perfect for that, especially for the amateur / beginner programmer, and you REALLY have to go some to outgrow it. I remember struggling along with some of the early Sun Java IDE's - it was actually easier to just not bother and code on the command-line for my university courses (especially as I'd already started on Java a few years before that on my own).

    You can say "it's not for me", sure, but all this "it crashes" and "it's dog slow" crap - I'm not sure I buy it. If it's that easy - reproduce the crash and submit it.

    To be honest, I'd be prepared to suffer quite a lot of performance problems when compiling just for the IDE-and-workspace-as-folders concept, the multiple platform availability, and the debugger interface to GDB itself. But I don't - because they aren't there for me at all.

  • by epine (68316) on Tuesday July 16, 2013 @02:25PM (#44300167)

    Some people are surprised to learn that you can also extend Visual Studio with new windows such as those I just described.

    This is typical of Microsoft products: obscure "yes it can" capabilities that you can't rely upon for continuity from version to version. Macros? Poof.

    Come on reviewers, picking out chopsticks does not count as "playing the piano". Microsoft products in particular needs to auditioned savagely before giving credence to any self-assigned tick marks, or awarding gold stars for limbo dancing under the bar instead of over the bar on standards compliance. Simon says "That's four noes." Especially in the late nineties, the vast majority of Microsoft product reviews were channelling Paula Abdul. Eventually I burned "yes it can" in a Salem bonfire.

    I've used Eclipse fairly heavily for C++ and R and I don't find it sluggish. Yes, it's far from perfect. Docking operations on the newest release went a bit insane on my 22" monitor in portrait mode. Hopefully that's just teething pains early in the release cycle.

  • by bored (40072) on Tuesday July 16, 2013 @03:45PM (#44301351)

    I was under the impression that for a editor to be considered a "programmers editor" it had to have some kind of programming/macro language built in. Because, sometimes you find yourself repeating some action over and over and over. Dropping to $shellutiilty to perform the same task is basically just admitting your editor sucks.

    Bonus points if your editor lets you assign arbitrary keys to the given macro.

    Frankly, I sort of gave up on visual studio after version 6 when they decided to rebind all the keys, and started rewriting parts of it in .net. Before that, it was a pretty good C++ environment, after that the C++ functionality took a back seat to the C# functionality that appeared to be trying to replicate visual basic/delphi, and frankly doing a pretty crummy job of it.

    Actually, having worked with a couple of ex-microsoft guys in the OS division, my understanding from them is that huge swaths of Microsoft actually use slickedit (IIRC) rather than visual studio. Basically anyone not programming in a .net environment. Maybe that has changed as Microsoft has tried to add support for driver development in VS, but it was definitely frowned on for a while.

For every bloke who makes his mark, there's half a dozen waiting to rub it out. -- Andy Capp

Working...