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

79 of 543 comments (clear)

  1. Re:Studio v. Eclipse by kthreadd · · Score: 2

    I believe so, or do you suggest that they are equal?

  2. 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!
  3. 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 binarylarry · · Score: 2

      Effective project management is pretty hard to implement properly (ask most developers).

      Eclipse's Mylyn integration goes a long way towards making that aspect easier.

      --
      Mod me down, my New Earth Global Warmingist friends!
    3. 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.

    4. 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'!"
    5. Re:Out of the box by Rob+Riggs · · Score: 2

      Out of the box, VS wins hands-down.

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

      --
      the growth in cynicism and rebellion has not been without cause
  4. 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 Anonymous Coward · · Score: 2, Funny

      Yeah, never forget the good old C-x M-c M-butterfly.

      captcha: bearded, just on the day I decided to shave. FML

    4. Re:Um excuse me ... by pr0fessor · · Score: 2

      Punch Cards!

      I'm so glad those were gone by the time I started into computers.

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

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

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

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

    9. Re:Um excuse me ... by OldCodger · · Score: 2

      Real programmers: http://xkcd.com/974/

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

    11. Re:Um excuse me ... by Darinbob · · Score: 2

      But if you've got Linux already, why use Windows as the development environment?

    12. Re:Um excuse me ... by Miamicanes · · Score: 2

      > Although, right now I am doing assembly on a a custom chip. Do you have an IDE for me,

      One of the following might be appropriate: Keil, Codewarrior, AVR Studio, MPLab, CubeSuite+, HEW, Xilinx ISE, Quartus, or ISPLever. Look at Keil first... if it's even a halfway-modern chip or popular chip, they probably have an IDE for it, and it's probably a damn good one. For m68k, Codewarrior is pretty much the gold standard (though if you're starting from scratch now, Keil is probably a better time-investment).

    13. Re:Um excuse me ... by Miamicanes · · Score: 2

      Actually, here's an even better example: the Atari 2600. Check out demos and homebrew games created for the 2600 since ~2008 using Stella's debugger, and imagine what somebody like David Crane could have done if he'd had the ability to do the equivalent of stop the CRT's electron beam and see what's going on with the video kernel. RAM was obviously a factor 30 years ago, but development tools have a lot to do with it, too.

      Imagine if Amiga game designers had been able to sneak into a secret "future room", boot Photoshop 6 on a Thinkpad delivered to them from the future, do their artwork, convert it to some Amiga-friendly binary format, and save it to floppy disks. HAM was a BIATCH to work with, but GETTING TO the point of having 12-bit art in the first place was an uphill battle in itself.

      In retrospect, even computers like the c64 were perfectly capable of halfway-decent Soundtracker-like music (at least, as long as they didn't have to do anything ELSE at the same time, like the title screen), and even an Apple II could have probably done some mod-magic for the title screen. It just never occurred to anyone at the time, because playback is almost a minor challenge compared to creating the music in the first place. We were so busy synthesizing monophonic square waves, the idea of PWM -- let alone pre-calculating wave tables at 1/2 or 1/4 volume & summing them up in realtime -- never even entered into the equation. I remember struggling with the very *idea* that meaningful single-bit digital audio was possible.

      The really sad thing is, I remember sitting in band class in 10th grade one day wondering why you COULDN'T emulate polyphony by sampling two or three instruments playing different notes, then change samples on the fly at playback time to simulate 2- or 3-channel polyphony with one channel (the number of samples would have actually been semi-sane, because even though there are 12 tones in an octave when you include sharp/flat notes, actual western music only uses a few well-known combinations). I actually tried some experiments, but I didn't understand the zero-crossing problem (hey, I was 16, OK?), and never figured out a way to stop the thuds that plagued note/sample changes. Had I understood physical acoustical modeling and come up with a way to pre-generate the attacks, sustains, and decays separately (instead of just sampling myself and a friend playing a few dozen note permutations) in a way that ensured that transitions occurred at zero-crossings, it might have actually worked. Sigh. Chalk one more thing up to the list of "things I could have done differently and changed the world with the knowledge I have now..." ;-)

    14. Re:Um excuse me ... by smellotron · · Score: 2

      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.

      A competent vim/emacs developer probably uses etags for indexing identifiers. I agree that grep is a poor, disk-intensive, high-latency tool for this particular job; but it is a straw man.

      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.

      Many a whitespace war could be circumvented entirely by forcing a team-wide editor. I've never seen it done, though.

    15. Re:Um excuse me ... by khchung · · Score: 2

      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.

      THIS. This is hardest part for many old school, text-editor-only programmers to understand, and this is no different from writers who insisted on using mechanical typewriters instead of more modern text editors.

      In fact, I once viewed a video of a fiction writer doing his writing, and I was surprised that his tool don't automatically highlight and index all reference of every characters in the story. Guess I am too used to modern IDEs.

      --
      Oliver.
    16. Re:Um excuse me ... by Blaskowicz · · Score: 2

      Agreed, when I do a search and replace in notepad I then check everything was replaced. Then when I do a multiplication of two big numbers in a calculator I check the result by calcuting it by hand.

    17. Re:Um excuse me ... by GoogleShill · · Score: 2

      It depends, is the person a valuable member of the team or somebody I'm looking for an excuse to let go? Chances are, if the developer is be let go because they refuse to use an IDE, there is more going on. Why didn't that preference turn up during the interview process?

      A person who wastes time out of arrogance is not a valuable member of the team. There was nothing else going on, period. There is an expectation of professionalism in software development, so questions like this don't typically come up in an interview. People are expected to know how to efficiently do their job and not waste time.

      Boss: I need X done.
      Dev: That will take me X hours.
      Boss: Why? It would only take X/10 hours if you use this tool.
      Dev: I don't use that tool.
      Boss: I'd like for you to use this tool to save some time.
      Dev: No.
      Boss: So, you want to waste company time and money by doing it the slow way?
      Dev: Yes.
      Boss: You're fired.

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

  6. Title not a good start by Captain_Chaos · · Score: 2, Insightful

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

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

    2. Re:Title not a good start by Waffle+Iron · · Score: 2

      I'm not sure anyone can be productive using vi . . .
       

      Maybe not with old-school vi, but an experienced coder can be highly productive with vim (especially the GUI version).

      It's like a fine chef's knife: A skilled chef can quickly prepare almost any kind of ingredient with it in countless ways.

      An IDE is more like a food processor: Anybody can crank out a narrow range of operations on suitable ingredients fairly quickly, but at the cost of less flexibility and a bunch of cleanup work.

  7. 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.
    2. Re: WTF? by Roman+Coder · · Score: 2

      And I just got moderated down by fanboys. Damn humans, they prefer theirs private fantasy worlds than reality.

      I didn't mod you down, but for what its worth, in all the years of using Eclipse, I've only seen/been affected by two bugs, one years ago, one recently. Juno was very buggy, but Kepler is doing great so far.

      I can't agree with your slow/buggy comments. If I did, I wouldn't be using it as my IDE (Intelli J and Netbeans being alternatives).

      --
      "The future can only affect the present if there is room to write its influence off as a mistake." - Yakir Aharonov
    3. Re: WTF? by Roman+Coder · · Score: 2

      Well, I'm not saying what I'm saying just because of me. I sit in the middle of the floor with twenty-five other coders, all who use Eclipse, and we talk to each other.

      And none of us see the problems you've talked about.

      Also, as a consultant for twenty years, I've worked at over thirty companies, almost all using Eclipse (different versions as the wayback machine is set higher and higher), and have not had/seen the kind of experiences you document in your post.

      All anecdotal, agree, but maybe, just to turn the tables, its you that is having especially bad luck with Eclipse, vs. all others ALSO having bad luck?

      You might want to consider a fresh install, etc. etc. $0.02 Otherwise, from one coder to another, I feel your pain, as I hate it when the tech gets in my way of doing the job too.

      --
      "The future can only affect the present if there is room to write its influence off as a mistake." - Yakir Aharonov
  8. 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
  9. 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.

  10. From C++ perspective by postmortem · · Score: 2, Interesting

    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.

    1. Re:From C++ perspective by BitZtream · · Score: 2

      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.

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
  11. 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.

    1. Re:Qt Creator!! by gl4ss · · Score: 2

      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's a comparison that could actually be useful: comparing another hammer to another similar hammer, so compare eclipse with idea because that's something a lot of people are contemplating now, if they should switch. but I guarantee that pretty much nobody was trying to decide if they should do what they do in visual studio in eclipse or the other way around. what's next, a compiler comparison between rcvt and intels compiler? oh wait I think we had that already..

      --
      world was created 5 seconds before this post as it is.
    2. Re:Qt Creator!! by shutdown+-p+now · · Score: 2

      No, it finds the headers just fine, since it gives completion for the corresponding types. But it seems to be unable to handle typedefs inside a template. Here's a sample:

      #include <string>
      #include <vector>
       
      int main() {
          std::vector<std::string> v;
          v.at(0).
      }

      Here the completion at the dot should be for std::string, but none is actually provided. And if you look at deduced signature that QtC shows when typing "at(", it shows the return type as const_reference rather than const std::string&.

      Additionally, I don't know what you mean by "complex templates", but to me this implies template metaprogramming that heavily uses specializations. And my experiments seem to show that QtC "handles" them by basically merging them all together, e.g.:

      template<bool> struct foo;
       
      template<> struct foo<true> {
          void is_true() {}
      };
       
      template<> struct foo<false> {
          void is_false() {}
      };
       
      int main() {
          foo<true> f;
          f.
      }

      This shows both is_true and is_false in the completion list for f, while it should only show is_true. Coincidentally, this also means that completion for std::vector<bool> is incorrect, since it's missing flip() (I'm not sure why in that case it completely omitted the specialization instead of just adding its members). Here's a less trivial example of template metaprogramming that's completely broken because of this:

      #include <string>
       
      template<class T>
      struct remove_pointers {
          typedef T type;
      };
       
      template<class T>
      struct remove_pointers<T*> {
        typedef typename remove_pointers<T>::type type;
      };
       
      int main() {
          remove_pointers<std::string**>::type s;
          s.
      }

      Type of s should be std::string and provide the appropriate completions, but QtC can't handle that, presumably because it couldn't properly handle the specialization. This kind of thing is going to break code completion for large parts of Boost, for example.

      This all is on QtC 2.7.2. I know that 2.8.0 has just been released, but I haven't tried this on it yet; I prefer to install the SDK, to avoid the hassle of setting up MinGW myself, and the SDK has not been updated to 2.8 yet.

    3. Re:Qt Creator!! by Bill_the_Engineer · · Score: 2

      KDevelop? Gorunka is talking about "Qt Creator" and you can find the Windows binary on their download page.

      --
      These comments are my own and do not necessarily reflect the views or opinions of my employer or colleagues...
  12. 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.

    1. Re:A real study is needed by BitZtream · · Score: 2

      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 files? You seem to think using a shitty editor is a good thing?

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
  13. 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?

    1. Re:Very differant experience by gaspyy · · Score: 2

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

    2. Re:Very differant experience by TWiTfan · · Score: 2

      It's a perfectly cromulent term.

      --
      The cow says "Moo." The dog says "Woof." The Timothy says "Thanks, valued customer. We appreciate your input."
    3. Re:Very differant experience by Nivag064 · · Score: 2

      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... :-)

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

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

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

    1. Re:Left out MyEclipse and IntelliJ by Anonymous Coward · · Score: 2, Informative

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

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

  17. refactoring by swan5566 · · Score: 2

    MSVS needs to get refactoring. This is huge for maintaining large software projects.

    --
    In debates about Christianity, there are two groups: those looking for answers, and those looking to just ask questions.
  18. Re:No point by BitZtream · · Score: 2, Informative

    C++ developers are rare? In what world do you live in that most of your computing doesn't depend on C/C++ code?

    Just because you play with a few scripts for your website doesn't mean the rest of your software is written in some crappy scripting language.

    --
    Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
  19. 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 Noughmad · · Score: 2

      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 simpler to just writte getters and setters for everything than figure which ones you'll actually need.

      --
      PlusFive Slashdot reader for Android. Can post comments.
    3. 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.
    4. Re:Getters and setters by MemeRot · · Score: 2

      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 object you've saved a ton of database queries. The the calling code just uses CompanyConfig.AllowSomeOption freely.

      That requires you to actually code that of course. The automatic get/set is just giving you the opportunity to do stuff like that. Once your class has exposed a public int MyField; you really can't come back later and change that. But exposing a public int MyField {get; set;} lets you come back and fill in the get/set logic when needed

  20. This article lacks the most important thing: debug by Anonymous Coward · · Score: 2, Insightful

    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.

  21. 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.
  22. 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.
    1. Re:Biggest Visual Studio defect: Runs on Windows by iggymanz · · Score: 2

      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

  23. Re:No point by lgw · · Score: 2, Insightful

    The bulk of new development is Java/C# these days. It's for the best really - have you seen the sort of C++ a "Java programmer" will write?

    --
    Socialism: a lie told by totalitarians and believed by fools.
  24. Re:Studio v. Eclipse by Pino+Grigio · · Score: 2, Insightful

    Yes, totally less relevant. Apart from large businesses, medium sized businesses, small businesses, government and home users, absolutely nobody needs to develop software for Windows.

  25. Well by ledow · · Score: 2

    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.

  26. 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
  27. banish "it can" by epine · · Score: 2

    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.

  28. Not grandpa - Overlord by SuperKendall · · Score: 2

    Gee whiz grandpa, I don't think any of the IDEs support punch cards.

    What you fail to understand is that all Emacs users are in fact travelers from the 25th century, trying as best they could with primitive technology to create an editing environment as elegant and direct as what they were used to back in their own time-stream.

    So while you cackle about punch-cards we Emacs users are rolling our eyes and figuring out which gene of your grandmothers to re-sequence to give you embarrassing flatulence in your thirties.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  29. Re:Studio v. Eclipse by Waffle+Iron · · Score: 2

    Yes, totally less relevant. Apart from large businesses, medium sized businesses, small businesses, government and home users, absolutely nobody needs to develop software for Windows.

    I'm not so sure about that. Most of the newer applications that I use at work seem to be web based these days.

    In the old days, these would have been implemented as a bunch of mostly mediocre Win32 applications. Now, they run in a browser on any OS.

  30. Re:Studio v. Eclipse by Gr8Apes · · Score: 2

    If you go that route, you can start with Borland C++, certainly better than VS. Or CodeWarrior.... VS wasn't terrible in its early years, for Windows coding. But it certainly wasn't the "best". And MS documentation has been at best mediocre.

    --
    The cesspool just got a check and balance.
  31. visual studio... by bored · · Score: 2

    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.

  32. 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.
  33. 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.
  34. 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.
  35. Re:No point by lgw · · Score: 2

    C++ is the stick-shift of programming languages, no doubt about it. (And C is the same without a clutch - no problem, you'll always shift perfectly, right?)

    Not to go all Paul Graham, but LINQ really is "Lisp invented poorly". I love it for being even that, but c'mon just name the functions "map" and "reduce" instead of making shit up!

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