Fog Creek Software
Discussion Board




Brilliant IDEs - VS .Net is not

"Microsoft's brilliant and cutting-edge .NET development environment left out one crucial tool" - Joel

I use Eclipse and Visual Studio .Net at work, and do some Dolphin Smalltalk at home. I have to vehemently disagree with Joel. Visual Studio .Net (as it is today) isn't an "integrated development environment". It's a program creation tool. Here's what Eclipse has, (and what Smalltalk has) that I'm still missing in VS:

"find all reference to this", "find all implementers of this", "rename this class" (refactoring), "extract method" (refactoring), incremental builds (compile on save, with hot code replace straight into the debugger)

I want tools that help me nagivate around the code, and think in objects (not files). Tools that help me understand the message flows between objects and help me decide how to refactor the software to be smaller and simpler. I also want refactoring tools that will help me apply the refactorings should it find that they're safe to do. Integrated support for NUnit would make me more productive too.

I don't want to change one line, press a Big Build Button and have to go for coffee whilst the world is being rebuilt. I want compile on save, and hot code replace. (I can change the definition of a clock in Smalltalk so that the hands move backwards and as soon as I save it, all the existing clocks in the image run backwards. Believe it or not, this isn't new.)

Fold-up sections aren't an improvement: Encouraging people to write much more concise code would be good, rather than developing "innovations" that allow people to generate and wade through big piles of code. Lots of code generation is a bad smell too - why do I have to manage all these generated files? Why can't it be generated dynamically in a framework?

A brilliant IDE should help developers understand their code better and make it easier to keep small and simple. Inserting volumes of code is NOT what it's about.

Dafydd Rees
Wednesday, February 04, 2004

ahh. I feel a lot better now ;-)

Dafydd Rees
Wednesday, February 04, 2004

Interesting.  I am currently a Java developer (for the most part) and I use Visual Slickedit at home.  For years I have been reading that Microsoft development tools are the best and the envy of the rest of the world and the main reason for Microsofts's success.

They don't allow you to find everywhere a member or method is referred to?  I don't think I could get by without that either.  Are you sure you aren't just missing it? 

name withheld out of cowardice
Wednesday, February 04, 2004

""find all reference to this", "find all implementers of this", "

Unless VS has gone backwards (and it may have), it has some rather nice browse tools that will do just this.

Mr Jack
Wednesday, February 04, 2004

In general I agree with you about foldup sections.  If you have code that's so large and unwieldly that you don't even want to see it, that code should really be fixed. 

However, maybe some use it to browse code rather than hide it.  For example, they could have all methods default to folded, and the ones they're currently working on unfolded?  In fact, that really is not so different from Smalltalk eh?

Matt
Wednesday, February 04, 2004

"Unless VS has gone backwards "

Surely you're not refering to "find in all files"?


Wednesday, February 04, 2004

I have to say I have to opposite experience of VS.NET 2003. I love it and that's just as well as I tend to spend 8+ hours a day staring at it.

If you want to find definitions/uses of anything, just right click on it and select the appropriate option.

By an incredible coincidence, most of the things you say are missing are (I believe) going to be included in the next version of VS.NET (Whidbey).

For me, I'd like to be able to set permissions on database objects from within the IDE, but that's about all I'm missing from the current version of VS.NET.

Steve Jones (UK)
Wednesday, February 04, 2004

"Just right click..."  "Use drag-n-drop"...

While I'm WRITING code, I want to keep pressing keys, not wave my hands around all the time.  This is why I never liked Microsoft development enviroments. They all resemble MS Word too much, with clunky interface built for secretary types.

Egor
Wednesday, February 04, 2004

I dunno, I run VS with the keyboard.  Who needs a mouse?

Elephant
Wednesday, February 04, 2004

Most programmers prefer to use the mouse.

If you prefer to use the keyboard, you can press the "menu" key between your CTRL and ALT, and so avoid right clicking.

One of the great strengths of MS IDEs and software is that, while you can operate the program using the mouse, usually you can also do everything using the keyboard.

MX
Wednesday, February 04, 2004

>>  "Just right click..."  "Use drag-n-drop"...

>>  While I'm WRITING code, I want to keep pressing keys,
>>  not wave my hands around all the time. 

Oh for heaven's sake, then hit the F12 key.  Sheesh.

BTW, I think the .NET IDE is a piece of crap, having used every version of Visual C++, but c'mon...

Grumpy Old-Timer
Wednesday, February 04, 2004

I'm also miss the refactoring support but the simple solution to this is to install C# Refactory http://www.xtreme-simplicity.net/CSharpRefactory.html by Xtreme Simplicity and you get all of the refactorings that intelliJ users are used to.  The IDE greatness is driven in part by the MSDN library that comes along with, no Java IDE I have seen (and I have seen quite a few) has anything like it.  The database integration (including the ability to debug running stored proceedures is fantastic.  Really the only things that I find missing are real CVS integration (plug in CVS / VSS translators just don't cut it) and refactoring support. 

K
Wednesday, February 04, 2004

I gave up on the VC line when I noticed that no error messages were
readable without horizontally scrolling past the pathname and error
number.

I mean, come on!.

H. Lally Singh
Wednesday, February 04, 2004

It seems MS is a big eclipse fan too: refactoring support is in the next verstion of VS .NET.


Wednesday, February 04, 2004

Just about everything you want to do is in Visual Studio .Net, you just have to take a little time to go through the tutorial so it points out the things that arent overwhelmingly obvious (such as to intiate intellisense while trying to remember a variable, hit ctrl-shift). 

Theres all kinds of things that you wouldnt know about unless you just went through the brief tutorial.  You can jump to the implementation of a function or to any calls of that function using some key combo or a right click menu, etc.

So, my point is...all the stuff you people are complaining about not being there is generally there-- you just need to look up how to do it. And all the stuff you complain about not liking, some of us developers like (like being able to fold up methods and such).

Steve
Wednesday, February 04, 2004

In Visual Basic  you have two modes

1) All your code windows are inside of a master window (MDI mode)
2) All your code windows are separate windows with the menu/toolbars in a separate window that you typically have across the top. (SDI mode)

now why the major IDEs don't do #2. The reason isn't so much Visual Basic but I use dual monitors. SDI mode allows me to easily arrange code windows side by side.

This is a consistent fault (my from POV) so I feel like i am missing something here.

Rob Conley
Wednesday, February 04, 2004

VS has always been a simple text editor + thin shell on top of command line tools. The UI designed is ok, although in going to VS.Net they've seem to have dropped some features that made building UI easier (like guides).

I use both VS.NET and Idea on daily basis and they are not even close in usability when writing code. VS.NET is missing a lot of features that make Idea a pleasure to use. Even the ones that are there in VS are often a pain to use and don't seem to work in the most intuitive way. I hope that MS is going to fix this in the Whidbey release, or that Idea guys produce VS plugin.

igor
Wednesday, February 04, 2004

Maybe Joel's been using Whidbey off the MSDN discs he got as part of the Empower program.  Because it has phenomenal refactoring support, and pretty much everything you've said VS .Net doesn't have.  Sure, it is still a beta, but lots of people are using it for real development right now.

Mr. Fancypants
Wednesday, February 04, 2004

> Most programmers prefer to use the mouse.

When I program I NEVER use the mouse. If I am force to use the mouse then the program is broken.  Any mouse action always takes longer than a few quick key stokes.

The mouse is good for surfing the web.

Jussi (www.zeusedit.com)
Wednesday, February 04, 2004

I also disagree that most programmers prefer the mouse.  What planet are you from?

To the last point, actually I often surf the web only by keyboard.  Firebird has a lot of neat tools to help in that.

Rick Watson
Wednesday, February 04, 2004

> They all resemble MS Word too much, with clunky interface built for secretary types.

Yeah! Always thought that Find/Replace in all MS products are
designed for older women working in government agencies being
able to produce full-page document from 9AM to 5PM, lunch
and two coffee breaks included.

> I gave up on the VC line when I noticed that no error messages were
readable without horizontally scrolling past the pathname and error
number.

Is it still that way? Reminds me of '98 when I tried to produce
some Win32 code in VC. After 15 days of mortal combat with
PC hardware, Windows OS and VisualStudio never quite managed
to create anything more complicated than "Hallo World!" with colored
text in a custom sized window.

I remember the '80s when I was growing up with Turbo C and
MS Quick C. I had to link with libraries built for QC, so I used TC
as editor and QC as compiler and linker. In QC everything seemed
"wrong" to me, but since than, all MS products are having same
interface principles present in QC IDE, then a simple DOS application.

Then I was "forced" to make something on a Mac, that toy that
I didn't like at all for maybe a week or so.

Anyone here who used THINK C on Mac? Precompiled headers
and "jump to definition" 15 years ago. Select any file name in editor,
press command-J and it opens in another window. Or
Command-click in title-bar and it shows a pop-up with all headers
used in the source. Almost never had to use OpenFile Dialog in
THINK C and that was really something. CodeWarrior took al lot
from THINK C, which I think was successor of Lightspeed C (??).

And people say that MS VisualStudio took ideas from NeXT's
ProjectBuilder which explains why I didn't like it on MacOS X.
Lots of wasted space for nothing, and in the middle you're left with
some space for actual code. In both VC and PB monitor was never
big enough. Any monitor at any resolution.

> I also disagree that most programmers prefer the mouse.

Scrolling Wheel - anybody? I just love my IntelliMices, all four of them.
After Excel, best thing ever produced by Microsoft.

VPC
Wednesday, February 04, 2004

> >  Because it has phenomenal refactoring support, and pretty much everything you've said VS .Net doesn't have.


I dunno,  All the demo's I've seen of whidbey's refactoring are pretty minimal.  Rename method, extract method, rename variable and that's it.

That's still a good year behind eclipse and IDEA

Koz
Wednesday, February 04, 2004

Is anyone here using Emacs as their IDE, by the way?  What are you opinions?

Egor
Wednesday, February 04, 2004

'Surely you're not refering to "find in all files"?'

No, I'm refering to the browse tools. Don't tell me use use Visual studio and don't know about them?

Mr Jack
Thursday, February 05, 2004

*  Recent Topics

*  Fog Creek Home