Every other generation of development tools seems to introduce some really great productivity features. Syntax highlighting, code completion, IntelliSense, and code generation have all improved developer productivity immensely. Other features we take for granted include incremental search, extended search and replace, regular expression matching, and macro development. is pretty much feature-complete with respect to the aforementioned items. Another strength of this tool is its excellent visual debugger.
Yet Visual Studio cannot (and should not) be all things to all people. This is a mistake I see in several text editors on steroids that have become so feature-saturated that they are becoming less useful with every version. UltraEdit comes immediately to mind. I feel very similarly about Visual Slick Edit. As it stands, I think Visual Studio has just about all the features it will ever need. Two notable exceptions jump out at me right away. The first is some fairly extensive automated refactoring support. The second is a friendlier and more robust validation facility ala Dreamweaver MX. But before I'd like to see this tool add more bells and whistles, I'd like to see it perfect the jobs it already tries to do. The one thing I hate the most about Visual Studio is the crappy job it does with HTML and XML. The XML editor is especially weak when compared to something like Oxygen. The HTML editor often wreaks pure havoc on my markup. Given the priority Microsoft has placed on Web Services and the Internet in general, it is unfathomable to me that Microsoft should allow other tools to do a much better job in this area than its flagship development product. Of course, VS.NET and Oxygen aren't the only game in town. Altova has its XML Spy and so on. Yet no other tool really approaches the usability, "feel", or scope of Visual Studio.
So much for the current state of affairs in the Windows IDE market. There are other features I've been thinking about for editing tools in general that I think might be interesting to experiment with. When I sit down to write code for a while, I usually begin with a clean file -- a seeming ocean of whitespace -- and work my way down the screen. My head and eyes have travelled the height of the monitor and I'm now staring at the bottom most pixels on my screen. Continuing to type only scrolls my previously written code up outside the view of the window. My eyes remain at the bottom of the screen line after line until I can bear it no more, reach for my mouse, and return my current line to the top of the monitor. This breaks my "flow". On a related note, when I'm editing/reading code I really am focusing 80% of my attention on the current line, and occasionally focusing 10% of my code on the 5-10 lines above and below the current line, so I can see the context of the current statement. Visual Studio has a handy feature that lets you "fold" regions of your code so you can eliminate some of the visual clutter. While I love this feature, I have to stop -- fold a bunch of regions -- and resume reading the code I'm editing, rewriting, or reviewing. This also knocks me out of the flow. I'd love to see an editor that maintains the current line near the center of the screen and progressively lightens the code as it gets further away from the current line in either direction (up/down). This effect has to be subtle and carefully implemented. Perhaps i'll mock something up in Photoshop to cement this idea. Watch this space...