IDE Eye Test: Is your Dev IDE better, worse or about the same?
What development environment have you used? I go way back and got started programming with dBase III and Clipper. What was our development environment of choice back then? Why Notepad.exe of course. It was cool. You could copy and paste "stuff". You could save it to your MASSIVE 120MB hard drive and you could... well, you could OPEN it again. Cool eh? But that was nearly 25 years ago. You would think things have changed. I moved from Notepad to VB 3.0 which was a "the heavens opening up and the angels singing" sort of experience.
Over the next 24 years or so it has continued. VB3 to VB5 (did anybody every use VB4?) to Visual Studio and .NET to C# and XAML, all along the way Visual Studio has constantly gone through makeovers, enhancements and improvements. It seems, though, in recent years those improvements have been seemingly transparent in that they just make life easier and sometimes you aren't even sure why.
I wanted to write about the progression of productivity enhancements that especially have helped memory challenged developers like myself. Part of the great thing about the .NET framework is you can do SO MANY THINGS. The big trouble I have with the .NET framework is that it's almost impossible to know what all those things are. Now, I started before the Internet really existed so our first way to remember all that stuff was to have bookshelves filled with all the reference material. Not terribly productive and difficult to stay current. I’ll focus on the one big thing that I face daily, finding stuff.
Hunt and Search
Along came the internet and eventually sites like sites like MSDN where you had all sorts of information and, most importantly, including MSDN community forums. Finding bits of code to help you write "the next great piece of software" could be tedious but you usually could find somebody who had faced the same problem and somebody else who had offered a solution. In the hunt, quite often you had to ask yourself "Do I search using this engine or that one?" or "is this answer (or question) really what I was looking for?". There were solutions out there but they were hard to find. Once you did find a solution that worked for you, you had to cut and paste it into your code and then you had to do lots of formatting because sometimes you got HTML buried in the code pieces or line numbers or whatever the author had stuck in there. It was better than books but just barely. Sometimes the author was clever and included a screen cap of the code (so it would look pretty) and you had to transpose it by hand into your code because you can't select text in an image right?
In Visual Studio 2005, Microsoft introduced the concept of code snippets. This was a wonderful innovation for those of us who can never quite remember the syntax for something or, in my case, when I was learning C# after working in VB for so long, remembering the for/next syntax format in C#. Let’s not forget those pesky semicolons either. But, the point was that now you had a way to do repetitive coding quickly, easily and accurately. Microsoft published the method for creating snippets so that not only could you use all the ones included by default but you or others could create snippets of things you use over and over again. This kept us developers happy... for a while. However more and more we returned to the Hunt and Search because the quantity of stuff out there kept growing. Code that wasn't in snippets. Code that you needed, maybe, just once so nobody could be bothered to create and distribute a snippet. So back to the Hunt Search we went until...
Bing! and your Productivity Improves
This last summer Microsoft Research release what I consider to be one of the single biggest improvements to developer productivity ever created. Microsoft's Bing Developer Assistant for Visual Studio which is a combination of two other Visual extensions (Sample Browser and Bing Code Search). The fun of Hunt and Search but embedded right in Visual Studio and with the code examples already formatted and ready for use as code snippets. Awesome. I can't cover everything it does here and now but have a look at this great Channel 9 video showing off the features.
You are creating some masterpiece and you have to put in some code to do something amazing and for some reason your brain just can't call up the information. No problem, Visual Studio's IntelliSense now gives it all to you without ever having to leave the IDE. As we all know, as soon as you leave the IDE to open a browser, the chances of you being distracted by shiny things goes up. You just have to pause to watch that cat video or whatever. Now, there is no need (although you can still watch those videos on your Windows Phone right?).
An example I like is a simple one. In Universal Apps popping up a message box is just a bit different than in Windows Phone. I can never remember the exact syntax, so I just create the object and IntelliSense does the rest. You can see below that IntelliSense and Bing Developer Assist search millions of code snippets and found the one I might be looking for. In this case it found a snippet of exactly what I was looking for on codeproject. I could just as easily hit the Search More button and gotten a full page of snippets from multiple source I could browse through.
The three major big features with Bing Developer Assist are:
- New Visual Studio IntelliSense experience to find code samples for API
- I live and die by IntelliSense and this just expands it so much you want to do a Snoopy dance (but I won't)
- Sample Browser one-stop shop
- All right inside the IDE with handy copy and paste all built in.
- Offline search
- This one works even if you are not connected to the internet. It uses all the samples you have previously downloaded or MSDN. Very handy when in those tricky places.
You can download the Microsoft Bing Developer Assistant here, or from within Visual Studio at Tools/Extensions and Updates...
The really great thing is that these big helpers while developing are not the only improvements to Visual Studio. They keep adding new ones all the time. I've developed in quite a few IDEs over the years and there is NOTHING, not one single IDE, that can touch Visual Studio in making App development more productive. Visual Studio creates better, faster, more robust code. I can't imagine going back to the dark ages again and I can't wait to see what the next version of Visual Studio will hold for us.
Speaking of the next version of Visual Studio…
Connect(); on November 12 and 13
A cloud-first, mobile-first, developer-first , virtual eventDon’t miss Connect(); next week! Scott Guthrie, S. Somasegar, Brian Harry, and Scott Hanselman will take the stage to show innovative, new Microsoft products, services, and technologies including .NET, Azure, Visual Studio, and Visual Studio Online.
Dive deeper into the technical details behind the announcements with over 40 on-demand technical sessions. Interact with the Microsoft engineering teams in live sessions to get answers to your questions.
Come experience the new world of mobile-first, cloud-first development where you will build on your existing skills to unleash your creativity in the comfort of your office.