I have used quite a few different IDEs in my days (in roughly chronological order):
- Turbo Pascal (mostly version 7, though I do have version 1 as well) when I got started with programming in High School,
- Delphi (versions 1, 3, 4, 6, 7, 8, 2005, 2006, 2007 and XE) for all of my leisurely programming in college,
- JBuilder (versions X and 2005) for a Java class in college,
- Dev C++ for a C class that I accidentally took in college,
- Excel’s VBA editor for automating the spreadsheets I have to manage my finances,
- SharpDevelop and C#Builder 1.0 for my first experiments with C# and the .NET framework way back when (I think it was .NET 1.1 at the time),
- PyDev for some occasional Python coding at work,
- and I had even written a little mini-IDE when I was first learning HTML and I needed an editor that had templates and a preview feature, but was otherwise more light-weight than a full-fledged web development environment.
Anyhow, since I do most of development theses days in C#, I obviously spend a lot of time in Microsoft Visual Studio. While Visual Studio by itself has a ton of features already, there are a couple of plugins I no longer want to live without:
- First and foremost, ReSharper, a tool that has dramatically changed the way I code and made me so much more productive, it’s unbelievable. I dread the times I have to code without its help (i.e. when using Visual C# Express at home).
- Productivity Power Tools: although it has some overlap with ReSharper, it adds a couple of nice things to the IDE, like the ability to pin tabs.
- See also Scott Hanselman’s collection of his favorite tools.
Visual Studio = C# + Python + HTML + XML + …
But I don’t just use Visual Studio for C#. Thanks to the Python Tools for Visual Studio I no longer have to leave my favorite IDE when I need to code in Python. I also use the free Visual Web Developer Express for the light HTML and CSS editing I do from time to time. And for my .NET Gadgeteer development, I have Visual C# Express (also free) installed. At one time I also had the free Visual Studio Express for Windows Phone installed. I played around with it a bit, but never quite got around to writing my own Windows Phone app.
Visual Studio is also a very powerful XML editor. I used to use XMLSpy for this, but as I rarely used its advanced features, it was easy to move on. Also, Visual Studio’s XSL transformations are literally an order of magnitude faster, which makes a big difference in terms of productivity for me.
The only disappointment I had with Visual Studio was when I was working on C++ code. The developer experience in C++ is so vastly inferior compared to C#, it’s astonishing. I don’t know whether it’s because of inherent differences in the two languages or whether Microsoft’s focus is just C#, but without support from a plugin like Visual Assist, writing and navigating through C++ code in the current version of Visual Studio feels a lot more cumbersome than writing and navigating through Delphi code in Delphi 7 (which is almost ten years old by now).
.NET == C#
And one more C++ rant, before I go: The other day I was working with a colleague who’s a C++ developer working on a piece of C++/CLI I was going to use from C#. He’s a very smart man, but there were just so many tiny things that are super-easy and elegant to do in C#, that took him forever to accomplish in C++/CLI. I am exaggerating a bit, but I find it nonetheless amazing how one can seriously claim that C++ is the most powerful language for .NET framework programming. .NET is C#. Period.