What Free IDE Do You Use? 1055
postermmxvicom writes "I program only occasionally and mostly for personal interest. I went to update my favorite free IDE, Dev C++, yesterday and noticed that it had not been updated since 2005! I went looking for other free IDEs and came across Code::Blocks and Visual Studio Express. I work from a Windows machine, use C++, and make mostly console apps; but have written a few Windows apps and D3D or OpenGL apps. I wanted to know what free IDEs you use and recommend. What do you like about them? What features do they lack? What about them irritate you (and what do you do to work around these annoyances)? For instance, when I used Visual C++ 6.0 in college, there was an error in getline that had to be fixed, and the code indenting in DevC++ needed to be tweaked to suit my liking."
Vim (Score:4, Insightful)
Emacs (Score:5, Insightful)
What else would you need?
99% of the answers are going to be Eclipse (Score:3, Insightful)
Your VC++ irritation (Score:5, Insightful)
Keep in mind that VC++ is not the Microsoft Platform SDK. These are two completely different, albeit related, products. The SDK had a bug in getline(), but VC can't really do anything about the quality of the installed SDK.
The best free IDE is the one that you don't have to think about, it just gives you the tools to do your job without getting in your way.
My in-laws have a Mercedes. On the infrequent opportunities I have to drive it, I am always amazed at how well it supports my driving. It is the little things like rotating the headlights into a turn, actually automatically switching into neutral when the car comes to a stop, and auto-dimming rear view for night driving that make driving it a pleasure.
Visual Studio (Score:5, Insightful)
As long as you don't piss yourself in disgust when Microsoft is mentioned (as many here do) - Visual Studio is actually very good.
Re:Eclipse and Netbeans (Score:2, Insightful)
NetBeans is not that bloated.. it is comparable to Eclipse and in some cases better than Eclipse when it comes to Java.
Re:99% of the answers are going to be Eclipse (Score:5, Insightful)
Re:99% of the answers are going to be Eclipse (Score:5, Insightful)
I don't think the parent's point about handling 10k lines of code has to do with with ability to load these files into memory but rather about managing the complexity of such projects. When a program becomes this big, it becomes harder to keep track of all the names of variables, the argument types of subroutines etc. IDEs like Netbeans or Eclipse have autocompletion functionality that make your life as a developer at lot easier.
It's possible of course that Emacs or vi provide similar functionality but the main point is that you need some type of IDE when managing a large, complex development project.
Seconding this (Score:5, Insightful)
I use Visual Studio exclusively when developing in Windows. My only complaint is the lack of multi-monitor support but that's coming in 2010.
Re:99% of the answers are going to be Eclipse (Score:3, Insightful)
Heh. If you think that, you have never written (or perhaps grokked) a single line of Common LISP in SLIME. There is nothing quite like developing your code while it's running. And debugging and changing your code. While it's still running. And, well, never really being out of your program.
IDEs are a quaint imitation. Source analysis? Pfft. How about "active running code analysis" that's tied into what you're currently editing. Integrated debugger? Pfft. You mean you have to stop your program to fix the function you're in the middle of?
Re:Emacs (Score:5, Insightful)
vi is not an IDE or emacs competitor. Now vim on the other hand...
Re:Eclipse and Netbeans (Score:5, Insightful)
I am surprised to see you describe Netbeans as bloated when compared to Eclipse. I fought with Eclipse for years before trying out Netbeans, and have been nothing but pleased with it. More than anything, it is the bloat of Eclipse that drove me away! Plugins upon plugins upon plugins, all heaped together in some massive directory. Configuration panels that need a search box!
My Netbeans experience has been a breath of fresh air.
DEATH TO PROJECTS (Score:5, Insightful)
I've used several different IDEs, with several different languages, for many different programming tasks, over the past decade. I have encountered exactly one instance where having a "project" be anything more than a collection of files I work on at the same time was actually a good thing. Every other time it has simply been an obstacle to bottom-up design, by forcing me to make a lot of decisions about the structure of my code before most of it had actually been written.
The one time the project-oriented IDE was a good thing, I was working on a large app with more than a dozen people who never got to all meet at once, with a central authority dictating the general structure of things to make sure we didn't duplicate effort or step on each others' toes. There was AI involved, so having an integrated debugger to figure out why the AI was making particular choices was very useful. Kdevelop served us very well.
Of course, large development teams are inefficient and prone to communication problems that cause delays and bugs, so they should be avoided whenever possible, just like top-down design. Most of the time, I'm either working on incremental modifications to mature code, where a glorified source browser is sufficient, or writing a small utility from scratch by myself, where I really just need a text editor and a command line. I generally use kscope for the former, and kate for the latter. They get out of the way and let me code.
Sure, I still use a debugger, but the overwhelming majority of the time it's to analyze dumps from crashes I can't reproduce easily, so integrating it with the IDE offers no benefit. A debugger is no substitute for understanding the code, and I can count on one hand the number of times there have been enough control flow-relevant variables being modified at once to make that something I couldn't work out in my head or on a whiteboard.
Re:99% of the answers are going to be Eclipse (Score:0, Insightful)
Emacs actually could qualify (Score:5, Insightful)
If anyone says Emacs or Vi they are insane and have never done 10k lines of code in a modern environment.
While the handling of Vi or Emacs actually *is* breathtakingly bizar and unwieldy, what you're saying is not correct. If someone actually takes the time to learn to use Emacs and the extensions it offers for developement - which can take a few years - it can be the most powerfull and fast IDE out there. And it opens files upwards of 40 MB (that's Megabyte) in half a minute and then you can navigate around them with no delay at all. That league of performance is the reason I started using it. In terms of performance Emacs is the most powerfull IDE on the planet.
Then again, I started using Emacs 3 years ago - after briefly considering the purchase of Macsperts new darling child TextMate, basically a modern Emacs rip - and I still can't bear it for longer than 10 minutes - mostly because it so totally doesn't comply with CUAS (Common User Access Standard). Yet then again, Emacs was created when CUAS didn't even exist, so that's no fault on behalf of Emacs.
Bottom line:
If you are willing to invest months (!) of time actively learning an IDE, the cli version of Emacs will be with you until the day you die, as it runs well on everything that uses electricity. Up from the most powerfull supercomputer using the most bizar unix variant right down to a 10-year old handheld PC.
Re:99% of the answers are going to be Eclipse (Score:2, Insightful)
From what I've seen IDE's help people write code faster, but they don't help people write better code. Maybe I should try out this Eclipse thing just to see what all the fuss is about.
Certainly true. I read the parent post as implying a project where 10,000 lines of code is likely to exist. In such a case I struggle to imagine effectively using something like vi or emacs (not that I use them actively) when compared to what is offered by a good IDE.
Re:Eclipse and Netbeans (Score:2, Insightful)
Eclipse is brilliant for Java development - there is nothing quite like it I have found.
When it comes to C++, things are a bit stickier. The infrastructure is there for good code complete and refactoring tools, but they are currently (last I looked, a few months ago) too slow to be really usable and just a bit erratic. Code completion that sometimes throws up the wrong answers is much more frustrating than no code completion at all, and code completion that regularly takes significantly longer than typing the expression manually is worse again.
As seems to be the rule with all things eclipse: If it almost works in this version, it will work in the next version, and it will be fast the version after that.
Re:99% of the answers are going to be Eclipse (Score:3, Insightful)
When a program becomes this big, it becomes harder to keep track of all the names of variables, the argument types of subroutines etc.
If you're talking about a project, 10,000 lines is not big. A single _file_ of 10k lines is big, but why for the love of god would you do that?
Clearly thought out code structure will keep your project pretty easy to read and work with up to maybe 20-30k lines (more if you're smarter than me, less if you're working on unfamiliar code). After that, an IDE becomes increasingly helpful because it saves you time searching for variable definitions, members of structs/classes etc. The application I'm working on (accounting software yay) at my current job has probably ~2mil lines of code, and is small in comparison with the codebase at my old job (an MMO game client).
Qt Creator (Score:3, Insightful)
I use Qt Creator, xemacs and vim. On all platforms.
Re:99% of the answers are going to be Eclipse (Score:2, Insightful)
Let me make a bet here...
The person using GVIM or EMACS has 10,000 lines BECAUSE of GVIM, or EMACS... Flipping files in an IDE is trivial... In an editor like GVIM, or EMACS it is not a trivial. Ok not that hard, but I wonder if tedious as compared to an IDE.
HENCE, they have 10,000 lines in a source code file because of the environment they are using.
Re:99% of the answers are going to be Eclipse (Score:2, Insightful)
no you do not IDE to do that or to put it differently - Emacs is an IDE - it allows to edit, compile and in some cases debug code of (almost) arbitrary size and structure. One can even consider vi as a part of IDE with command line compilers and other tools. You may not consider such environment as integrated but that is your perspective - others have different one.
Absolutely right, the notion that "integrated" means a single program or window with a lot of widgets and toolbars is a pretty narrow view of what an integrated environment is. I could make a similar argument that because I use GNOME Terminal which has multiple tabs it is an IDE (which for me it is). I accept that some people are more effective and comfortable working in an IDE such as Eclipse or Netbeans but I am more comfortable in a terminal that gives me access to text editors, compilers etc. There is no _one_ solution for all that is _better_ it is down to personal preference and working style. If you don't feel comfortable in an "IDE" or in a text editor with shell access then you are not going to be productive.
None. (Score:2, Insightful)
Seriously. Why bother? IDEs are so hard to simply so hard to setup. Whenever I try to use one, I always end up fighting with trying to add nonstandard libraries, or hooking it into the code repository. It's horrible. Seriously, a three line makefile is all you need. It is so much easier just being able to say, "You! Compile this, with this option." It's 50 thousand clicks and it still doesn't work.
God, IDEs suck.
Re:Either emacsclient or ed (Score:3, Insightful)
Why would you do that from a shell buffer instead of using Emacs built in version control operations?
Re:ID what? (Score:5, Insightful)
What more does anyone want?
The efficiency that is gained by not having to move your project through 20 different tools manually?
In other words, the INTEGRATED part of "IDE".
Re:But it's not free (Score:5, Insightful)
Yes, that's what's generally referred to as zealotry and ignorance.
If someone just wants to build Windows apps then Visual Studio is far and away the quickest and easiest way to do that.
A lot of people don't care if their software was built by an angel with a halo over his head, if that software isn't very productive they'd rather take the piece written by an average day to day coder.
Some people have better things to do than bicker about religious software vendor wars and just go for what lets them get the job done best, and sorry, but free software all too often just loses out here, until there's a realiation of that, it aint gonna change but the free software has a strong focus on getting things to work, without much effort ever being put into how it works and improving usability and productivity.
Asking people to give up usability and productivity for some moral stance is going to be about as easy as getting blood out of stone.
I support the idea of free software, but the free software movement has to accept these points and act on them as the ideology alone isn't enough to make people switch.
Re:ID what? (Score:4, Insightful)
Re:Quite (Score:5, Insightful)
Vi, gdb/dbx and strace should be all any unix/linux coder needs.
Which means that you don't use vim, make, a sccs, a profiler, ctags, or one of a dozen other tools.
Re:wxDev-C++ extended that project (Score:4, Insightful)
wx is about the best free GUI toolkit available for Windows. They all suck to some degree, but wx less so than the others.
I'm not sure why the OP is bothered by Dev-C++ not being updated. If it works, why not carry on using it?
Re:Quite (Score:3, Insightful)
Frankly, I would put /bin/bash as first on the list.
My toolchain (ranked by degree of my dependency on the tool) is: bash, vim, exuberant ctags, GNU make, GNU diff, GNU grep, GNU find, GCC, man, git, perl, gdb, objdump.
The chain covers about 95% of projects I do. (To GNU moniker: I'm no GNU nazi, but just to highlight the fact that - flame me all you want - I find the BSD variants of the tools mostly useless in everyday use.)
VIM is powerful indeed. But one should never forget that sizable chunk of its utilities depend on good shell and system file/text tools. Otherwise you probably want to pick Emacs instead.
P.S. For Qt/KDE development one also has to include qmake and FireFox (on-line documentation browser).
Re:ID what? (Score:5, Insightful)
What's the difference between activating "make" thru some keystrokes in the IDE, and Alt-tabbing to another window and typing "make"?
Count the keystrokes.
Its all of 1 keystroke in (for example) Visual Studio to build a project and start debugging it.
Alt-Tab, make is 5x that amount. And I might do this a hundred or more times in a day.
But that won't actually work do it, you have to save the file. So that's a couple more keystrokes per round trip to count (and a 100+ opportunities to forget to save the file(s) added to your day)
And that's on a tiny project with apparently one editor window and one terminal window. Alt-tabbing 7 or 8 times, and saving changes in half a dozen different editor windows before going to the terminal and typing make is a more realistic scenario, and its a lot more keystrokes...
Plus, the IDE indicated I had a syntax error as I was typing it, and the code completion prevented me from making another one; and when the class I was trying to instantiate didn't get colored as a 'type' by the syntax highlighter that I knew was correct I immediately knew I hadn't included it in this file. All that saved me a round trip or two through the build process.
And when the app compiled there was a compiler warning; in the IDE a double click on the warning took me right to the source line in the editor, so I could fix it, and rebuild. With bash I get to read the name of the file and linenumber that had the problem, alt-tab to the right editor window, manually jump to the line number, make the fix, save it, and then switch back to the terminal window and run the build script again.
So... no difference at all between an IDE and bash, except the IDE saves me multiple round trips through make, prevents errors, and saves thousands of keystrokes a day.
I didn't say the IDE was more "powerful", I just said it was more efficient. And it is.
Re:99% of the answers are going to be Eclipse (Score:2, Insightful)
Emacs and vim are great tools for quickly editing a file and updating some code on a remote linux box. I use vim every day, but managing a huge project with total 10k lines of code distributed over hundreds of files with a tool like vim is a nightmare. For working on projects, go with and IDE like Eclipse or Netbeans, especially if you're doing multiple mini-projects. For small "hello world" apps that aren't gonna do much intensive stuff, use vim.
To be frank, if you really think that 10kloc is too much of a "huge project" for Emacs or vi, then I get the distinct impression that you really don't have the experience of either software projects or Emacs to be handing out advice on either.
I regularly work on a project with approx. 150k lines of C code, not to mention Scheme code, build scripts etc. When working on that project, I can use Emacs to edit C, Scheme, Flex parsers, Bison grammars, Makefiles, M4 files, shell scripts, and gettext translations, and can use it to do compilation and full-text searches on arbitrary subsets of the files in my project. I get all of this with context-sensitive Tab autocompletion and indenting, and consistent syntax highlighting. It also integrates with my version control system (Git) & patch management system (StGit). I can use it to create and edit diffs, and refine three-way merges. All I need to work on that project is a terminal emulator and an Emacs instance.
The thing that makes Emacs so great is that it scales all the way from quickly hacking config files to a fully-fledged IDE with all the features you'd expect from one. Your claim that all it's good for is, '...small "hello world" apps that aren't gonna [sic] do much intensive stuff,' is risible.
Visual Studio 2008 is the best IDE (Score:1, Insightful)
There are good free IDE's
But the best is Still Visual Studio 2008, specially when you work with .Net
I have used Eclipse to develop Java, but compared to VS2008 it sucks major!
Re:99% of the answers are going to be Eclipse (Score:5, Insightful)
I don't know about emacs, but in vim I can open multiple windows at a time (not to mention multiple buffers!), and switch between them rather effortlessly.
Look, most of use defending vim and emacs are not saying that it is impossible to use an IDE to be productive; just that it isn't necessary. I certainly believe that each person should work with whatever tools they feel comfortable.
However, the "IDE kids" keep categorically rejecting the notion that you can be productive in anything but a large, bulky (and yes, maybe even bloated) integrated system. They would do good not to be so narrow-minded.
I've used both and, although I see value in some IDEs, I personally prefer using the leaner, smaller tools. Sometimes all those windows and automatic wizards and code injectors just get my way.
-dZ.
Re:99% of the answers are going to be Eclipse (Score:1, Insightful)
Re:Visual Studio (Score:3, Insightful)
>> There just isn't anything as powerful in a single cohesive package.
Wow! That's a pretty bold statement. You should go out and look around more. Seriously!
If you want to take my words, as someone who has actually worked with various different packages (including your beloved VisualStudio), I find VisualStudio slow, unstable, and bloated, and too obtrusive for real work. Let's see, the Delphi IDE, to me at least, seems more powerful and versatile (and it even does C++ and C#, too!). And how about C++Builder from Borland? Even Eclipse seems to be at least comparable with VisualStudio (even to the slow and bloat level). And if you concede that Delphi is at least as good as VisualStudio, then you must say the same for Lazarus, which is an open source clone of it intended for FreePascal. And this is not even getting into using plain-old developer's text editors with plug-in support (such as EditPlus), which can easily integrate with external tools.
VisualC++ is certainly not evil, but--and I say this from experience--it is not the only integrated development environment, nor even the best one, for C++ out there. It is just the only one most Windows developers know about.
And let me just end by saying, as I always do, to each his own-- just don't go claiming that your favorite pet system is the best in breed just because you like it.
-dZ.
Re:ID what? (Score:5, Insightful)
I tried using Visual Studio at work, and was frustrated with the amount of effort it took to create and configure a project
Maybe you're incompetent.
Re:Quite (Score:5, Insightful)
Sounds like you've never found an IDE that suits you. I've tried using the vim + gdb + strace type of development and gotten along just fine, but when you find a decent IDE with a good debugger, stack trace, good search facility, debug probe and a ton of other helpful tools it's hard to go back to messing around with lots of separate ones. I think it's important to be able to use the separate utilities to get a project done, and understand what you're doing with them, but why make life more difficult if you can get something that's integrated and does everything you need in one place?
Try to stop being so suspicious of people who like to work differently to you. It's likely they know how to use the tools you use but prefer an integrated environment to get their work done. Not everyone using an IDE is using it because they want their hands held. Those that do won't be using their IDE properly anyway.
Re:99% of the answers are going to be Eclipse (Score:3, Insightful)
I have it easier to keep multiple code windows open in Emacs, since I don't lose lots of area to IDE buttons etc. (I generally run two A4 of Emacs and one A4 Shell window. If I do development, I'd really need another screen for browsers and other windows).
Re:ID what? (Score:5, Insightful)
For newbies and people who cannot touch type, yes. For professional programmers, not so much.
Spoken by someone, who very obviously, has never taken the time to learn the ins and outs of a good IDE like Eclipse or VS. There's no argument here. If all things are equal, ie you know both methods the same, and IDE is SO much faster to work with that it's not even close.
Re:Quite (Score:3, Insightful)
Do you also use a second terminal for typing in the "make" command? What about other terminals for viewing documentation or file structure? Vim is only a small part of the entire interactive development environment that you actually use. I code mostly in Java and use Netbeans. It contains not only the middle bit for actually writing the code, but I also get windows for debugging and viewing the directory structure. Although this could mostly be achieved by a few terminal windows and Vim, I prefer to use Netbeans because I get nice context boxes showing me the structure of a particular method/function with a little documentation on it.
Re:99% of the answers are going to be Eclipse (Score:3, Insightful)
I think that if you think 10k lines even begins to stretch the capabilities of emacs (or vi), you don't know either editor very well.
To be somewhat fair to the OP, I believe his point was more that if you try a modern IDE for a decent amount of time (say 10k worth of code) instead of just dismissing it after opening it and fiddling for a bit, you'll come to appreciate the advantages it offers. Whether that's actually the case is debatable, but the thrust of his point -- that people often dismiss an editor/IDE without actually taking the time to fully appreciate what it can do -- is, indeed, exactly the same as yours. I've used both Emacs and Eclipse extensively, and they both have their pros and cons, not all of which are obvious without actually making good use of them.
Re:Eclipse and Netbeans (Score:3, Insightful)
I think it's worth the time anyway. Look at the original request.....casual programmer. Microsoft has catered to that market for quite a while (one of the reasons that VB was thought of as a "second rate" language at times -- and most enterprise developers I know disparaged "VB coders"). As a casual programmer, who wants to deal with make files and hand coding GUI's in a text editor or any of the stuff mentioned so far? Create a Solution file, Add one or more projects, set up a small local DB if needed, drag and drop the interface, code the events, step through the code in debug, and build the final solution. To me, Visual Studio is the easiest INTEGRATED development environment. Out of the "box", I can do everything I need to build complete apps with no tweaking required. I've used others and always found them missing *something* that I have to track down some plug-in or extra utility to accomplish.
For the original poster, I'd recommend Visual Studio Express. For anyone else that does serious programming......I still think that Visual Studio is a good development environment, but if you want to be a MS basher then get Eclipse (which I personally don't enjoy using, but it is widely supported and can eventually do everything you need after a lot of tweaking).
Re:ID what? (Score:1, Insightful)
I don't think it's your development environment that's providing an efficiency problem.
Re:Not Free, but... CodeWarrior (Score:3, Insightful)
CodeWarrior has a feature no other current Windows-based IDE has - independent free floating edit windows without being locked into an MDI container with grey backdrop. I'd gladly pay a few hundred dollars for a modern, actively supported editor that had such a feature (I hear SlickEdit has been planning it, but they have yet to deliver).
Mod parent up. Why is it that, two decades after GUIs became the norm for spreadsheets and word processors, programmers still have to make do with tabbed editors and split-screens? (This is not to say that tabs and split views aren't important.) Am I the only developer who'd like to use his second monitor for something other than Slashdot?
Re:Eclipse and Netbeans (Score:3, Insightful)
I'm getting the impression from people I talk to that until very recently, Netbeans really sucked. Since version 6.0 it has sucked significantly less. Not sure if that is enough less suck to be better than eclipse or not - my limited experience with both has indicated that they both are very usable, but have their issues.
Re:ID what? (Score:3, Insightful)
Your comparison is incorrect because that is not how shell people write software. In your example, make would be the last command in the bash history.
You are constructing ridiculously optimal cases for your argument.
make might be the last command, it might not be. You'll have to visually check it before you push enter after pushing the up arrow. Maybe its make, maybe it was some other tool, maybe you deleted an object file, or ran grep on some output. Your single alt-tab is also probably really multiple alt-tabs -- most of us professional programmers have more than a single shell and a single text editor window going.
And if you've got multiple text-editors, you might have multiple ctrl-s's to save them. So sure, it might be ctrl-s, alt-tab, up, enter... or it might be ctrl-s, alt-tab, alt-tab, ctrl-s, up, up, up, enter. And because you need to actually confirm that the correct window and bash command are selected, you can't necessarily do it blind foldeded -- you need that visual feedback loop.
Reaching all the way for F5 is faster. And hey, Visual Studio is happy to let you remap keys. You want compile to be ctrl-; go for it. It even comes with a pile of emacs short cut schemes; you just have to turn them on.
That same code completion will also embed spelling mistakes in the API because programmers are to lazy to type out the method names and so wont notice when they contain spelling errors.
Wow, that's digging awfully deep for an nit to pick at.
Right, you have to double click on the warning. When I see the warning in the shell, I press alt-tab, C-x b, M-g, enter the line number and I'm right at the line that the compiler complained about
No, I don't have to double click.
By default I can press Alt-F6 a couple times to cycle tool windows to the error list, down-arrow to select the warning, and enter to jump to the line in the code. Less than half the keystrokes you need. (assuming 'enter the line number' is at least a 3 to 4 digit number). And if there are 10 text editors going and the one I want is actually closed, its still just 3 or 4 keystrokes, because the IDE selects the correct editor... and even opens the file if its closed.
And again, I setup additional hotkeys. And I can make hotkeys that are more preciese... instead of 'cycle tool window' I can hotkey - 'select compiler output tool window'. I can macro the whole thing too... and we're not talking 'simple recorded keystroke sequences' we're talking full on context and state aware stuff; branching, conditionals, full on programs unto themselves.
Really, modern IDE's approach emacs in terms of flexibility, extendability, programmability, etc.
For newbies and people who cannot touch type, yes. For professional programmers, not so much.
Spare me.
Re:99% of the answers are going to be Eclipse (Score:1, Insightful)
That is exactly what is wrong with Emacs users. Of course the people who are ex-Emacs users (like myself) know ctrl-x b. It works great if you remember the names of the files you are switching to. What happens when you didn't write the code you are editing and have no idea what file you need? In an IDE it is a trivial problem, using CLI style the first thing I would do is grep. You can solve the problem either way and you can argue the merits, but I always feel like current Emacs users who argue with those who have left Emacs always think that we left because we're idiots. Emacs users kind of epitomize the "if your only tool is a hammer then everything looks like a nail" crowd.
Re:And here you still are with your buzzwords (Score:3, Insightful)
"Well then why don't you just explain it to us?"
You suggest that vi is usable, and then suggest that just because I can't use it doesn't mean it isn't usable. Truly usable software does not require any amount of training, prior knowledge or particularly high levels of skill, realistically you shouldn't even need documentation. If you truly believe vi can be used by someone who has never used it before without any reference, help or anything like that then you're lost so deeply in your zealotry that you're undoubtedly doing more harm than good to the free software movement because your view of software is so far removed from the view of software which people expect that you are no help whatsoever in getting the word out there for FOSS.
A good way to understand usability is that with usable software it should be clear how to perform a specific task through nothing more than seeing the interface. If your application is entirely keyboard shortcut driven then, it fails badly at usability, unless there is clear information on screen at which point it is somewhat usable, but there is almost certainly a better way of doing it. I am not against keyboard shortcuts, they are great for power users and help productivity when you know what they are, but in something as complex as a high end IDE you cannot keyboard shortcut everything without keyboard shortcuts simply getting out of hand.
In terms of general productivity, the most obvious factor is that VS has the best intellisense implementation out there and it only gets better when you're using the likes of C# with inline XML documentation. But really, from the debugger through to libraries and language features such as LINQ, Microsoft's development suite has so much to offer in terms of productivity. Rather than try and run through every individual productivity feature in VS though wasting my time reiterating what's already out there if you bother to look for yourself, I'll assume you can use Google and move on.
"With the wealth of alternatives available (let's not leave out Eclipse, since it seems pretty popular too, as well as Free), I can see no reason to tolerate the moral bankruptcy of the factors of Visual Studio. But you don't want to talk about _that_."
Again, no one really cares how corrupt Microsoft is when it comes to making money themselves. The moral aspect of using Microsoft software is no big deal for most people when you compare to the moral aspect of other every day vendors from your fuel vendors for your car, to your sweat shop made iPods and clothes, Microsoft is in the grand scheme of things, guilty of far less evils than many other companies whose products we consume every single day. Presumably then, if immoral companies are such a big issue for you you've never fuelled your car, never bought branded clothing or gadgets and have never eaten at a fast food chain? If you cannot honestly answer yes to that, then you're a hypocrit.
"I'll agree that the Imperial "Tools" are da bomb. Not being a beginner, however, "Beginner Friendly" is not what I want."
Not being a beginner at what exactly? Certainly a lack of understanding about software usability suggests you're severely lacking in some of the more important concepts of software development. Perhaps you mean you're just good at churning out code which is only a small part of software development? In the real world, companies need to do more than just churn out code though, they need full product life cycle from requirements gathering, to design, to implementation, to testing, to deployment and of course maintenance. Microsoft offers a full blown tool chain to handle all of that in a single package, that's quite attractive and it's something the FOSS world needs to work seriously hard towards to offer an alternative. Eclipse is certainly the best attempt at this so far, but it's still not quite there.
You keep using that word... (Score:4, Insightful)
I do not think it means what you think it means.
An IDE is an Integrated Development Environment. That means all the necessary development steps for at least coding and compiling and debugging are part of the same interface.
That doesn't mean swap out to a different terminal session and type "make."
I've never understood the sad devotion to vi and vim and other obfuscated tools that UNIX elitists have. Sure I can use vi, but why in god's name would anyone want to unless they're forced to work over ssh for all of their development?
If you're comfortable with it, that's one thing. Recommending somebody else cripple themselves with obsolete technology that completely ignores how people actually work because it should be enough for anybody reeks of that famous Bill Gates quote.
Re:Quite (Score:5, Insightful)
Re:Emacs (Score:4, Insightful)
Spare hot-swappable pinky fingers?
Re:ID what? (Score:5, Insightful)
As much as I enjoy using bash for the things it's best at, you are showing the blind spot that irritates me most about open source evangelism and UNIX purism.
That is the mistaken 100 tools that do the same thing (and more) as one single specialized program are just as good as having a single program custom tailored to your tasks. With that sort of attitude, nobody would ever have written "make" in the first place, let alone all those automated tools to write makefiles.
For that matter, "bash" would never have been written because "sh" can already do most of the same stuff and commandline tools and cleverly written shell scripts can make up the functionality, right?
I think by now, if you're reading this at all, you're scowling and looking for something to disagree with.
The point is that sh and the dozens of powerful commandline GNU tools based on the great old stuff that was written for UNIX are still useful and relevant today, but they're not the only thing that is useful and relevant today. Sometimes you just want a single tool which does the job and gets out of your way with the least amount of effort. That doesn't make you stupid or lazy or childish, or everybody who's using bash right now needs to grow up.
If you have to spend 5 minutes writing a command with 12 pipes and output redirection through 13 programs which duplicate a functionality I get from a single checkbox in, say, Visual Studio, then you're not working efficiently. And merely because I choose to skip those steps does not mean I have no idea how to do them - I'm a professional UNIX system administrator as my day job.
The point is that although practice makes perfect, familiarity breeds contempt. When I get home to code on my own projects, I'd prefer not to have to write makefiles, build scripts, hand compile everything, edit out of a single window so I never forget to save anything, and constantly search for line numbers in a lousy no-syntax-highlighting no-code-completing circa 1980 text editor. I did that circa 1980, and I believe in progress.
Re:Quite (Score:3, Insightful)
Then I bought my mac and discovered XCode. It blew my mind. If I ever go back to linux I will be finding myself a good IDE.
How so? I mean, my major IDE experience comes with VS2k5, though VS is generally considered one of the better IDEs out there, and while I've found it useful, about the only things I find truly excellent is it's code completion features, and the ability to easily jump to a symbol definition with F12... but I'd hardly call those a "blew my mind"-type features (and they can certainly be done in Vim or Emacs).
So what else does XCode do that's so impressive?
Re:But it's not free (Score:3, Insightful)
Asking people to give up usability and productivity for some moral stance is going to be about as easy as getting blood out of stone.
For some, living the moral life is a prerequisite for sleeping at night.
Re:Eclipse and Netbeans (Score:3, Insightful)
This is a common theme. People tried out version 1 or 2 of Eclipse, bitched that it was slow, and never tried it again. Version 2 was... jeeze... probably about 2001 or 2002? I know when I started working on CDT in 2004, version 3.0 had just come out.
Eclipse has come a long way in the last 5 years, and so have the JVMs. I think you'd find that there is a world of difference now in comparison.
Re:99% of the answers are going to be Eclipse (Score:4, Insightful)
In modern computing, its not acceptable that you have to go out of your way to figure out how to do something that trivial.
Its not the 60s any more, the last 50 years has been spent figuring out ways to make interfaces more user friendly. If you're 'IDE', be it vim or emacs can't be bothered to make itself a little more user friendly then why should users bother to use it?
Not saying that you should stop using it or anything, if it works for you, more power to you. You should however stop suggesting it as though it were an acceptable solution. Its not. 20 years ago sure, today, its just not, especially to someone who is ASKING ABOUT IDEs. If they are asking about IDEs they are not experienced enough to start using user-unfriendly IDEs that require a reference manual until you memorize 7 or 8 hundred keyboard shortcuts to get the job done.
And building a house isn't done with a screwdriver alone, but you certainly use a screwdriver when building a house, and a mouse when programming on anything that matters in a slashdot discussion.
If you like emacs or vim, good for you, glad it works. Just stop being such a retarded short sighted, my way is the only way, douche bag and stop pushing it on the rest of the world.
Re:You keep using that word... (Score:1, Insightful)
You are kidding, right?
Shortcuts may be the E part of IDE. The I part is something like setting breakpoints while seeing the code. Or seeing the code while you step through it with the debugger.
And what do you do when you have to rename some function? There is absolutely no way to automize that when all that glues your code files together is the Makefile.
Re:Vim (Score:1, Insightful)
I don't understand this thread, even after I completely reddit
Re:But it's not free (Score:3, Insightful)
And they are almost certainly hypocrits.
It's nigh on impossible to live the moral live without living in a cave.
No doubt the PC you posted that message on will end up in a nigerian scrap yard polluting the toxic components into the land rivers and sea in that area.
Living a moral life does not mean you get to pick and choose what morals you follow, doing that means you're just choosing a different set of morals that are and aren't important to you than someone else without actually making you any more of a good person.
Unless you sew your own clothes rather than purchase those in shops that have almost certianly come from sweat shops, unless you forego use of a vehicle filled up with fuel from the large fuel giants that pollute and even make species extinct, unless you have never wasted a drop of food in your life whilst children are starving in ethiopia, unless you've never consumed a product whose leftovers end up in a tip seeping pollutants into the earth and riverways used by humans, unless you've never consumed a newspaper or other publication from one of the controlling media groups such as Murdoch's, unless you can claim to have never done any of those things, you cannot possibly suggest that you are a more moral person than anyone else.
So there's the problem, when people are more than happy to support companies that have caused species of plant or animal to go extinct (from big oil, to wood/paper product firms) as a matter of their daily lives, I do not think taking a moral stance against Microsoft, which has actually been far more philanthropic than the likes of Apple and many other tech. companies ever have is really high on anyone's agenda.
Ironically, being more productive and hence less stressed is almost certainly going to net the majority of average joes working their day to day lives a much better night's sleep than pretending they've actually made a difference by not supporting Microsoft whilst guzzling gallons of fuel on their commute to and from work each week.
Re:You keep using that word... (Score:3, Insightful)
I type, I hit ":make" and it builds the project, and returns me to the first line that caused an error if any, showing the error in the bottom of the screen.
How is that not integrated for you? As someone else said [slashdot.org], most people critical of such an environment don't know how to use it.
Re:99% of the answers are going to be Eclipse (Score:2, Insightful)
In modern computing, its not acceptable that you have to go out of your way to figure out how to do something that trivial.
Completely false. In modern computing, specialized, learner-unfriendly interfaces designed for experts to get the job done fast are completely acceptable. Whether you feel emacs is this or not is probably a matter of personal preference. But I've certainly been overwhelmed by Eclipse's dialogs-within-dialogs, so I disagree that it's as user-friendly as you say.
Ethan
Re:Emacs actually could qualify (Score:2, Insightful)
Have you heard about CUA mode [emacswiki.org]?
Ethan