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)."
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!
Out of the box, VS wins hands-down.
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.
And I *freeze*refu*freeze*se to h*freeze*ave anyo*freeze*ne tell me di*freeze*fferently. *freeze*.
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
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.
Democracy Now! - your daily, uncensored, corporate-free
"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.
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.
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.
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?
So the conclusion is "both work; each has some flakiness".
That's a long-winded way of saying "meh".
vi or emacs debates anyone?
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.
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.
"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;}
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".
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.
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.
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
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.
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.
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.