Fog Creek Software
Discussion Board

Percentage of Developers Using MS Dev Tools?

Does anyone know the percentage of professional developers primarily using MS Dev Tools (Visual Studio / .NET)?

Tuesday, July 27, 2004

What else is there?


Steve Ballmer
Tuesday, July 27, 2004

"What else is there?"

It depends on your language.  If you are developing C++, VB, or C# for Windows systems, MS probably does have the best tools (and most others seem to have faded away.)  However for Java there is Eclipse, what has a great Java editor and some powerful refactoring tools.  I have never heard of it being used for C++ or another language, but due to its design, it could be extended to support just about any language.

I do know of a lot of people who cobble together environments with different tools.  They may use Visual Studio for debugging and compiling, but use, say, SlickEdit for the actual editing.

And, of course, on Unix or Mac there is no Visual Studio.

A Programmer
Tuesday, July 27, 2004

The reason I'd like to know is that I develop mostly in Visual Studio, and mostly in VB & VC++ - no web stuff.  I've been a developer for 10 years.  Anyway, I am just finishing my BSCS, and during the entire CS program, I was forbidden from ever turning in a MS application - never, ever, ever. 

Once I get my degree in hand, I want to go back to these people and ask a simple question:  "If most of your graduates will be MS developers, why forbid its products use?" 

Anecdotally, by far, most of the people I go to school with are or are becoming MS developers - but this isn't a basis for claiming that in general, most developers use MS tools.  Can I cite any evidence for this claim?

Tuesday, July 27, 2004

As far as I've seen, there are separate worlds of developers.

The first world uses Unix, or Linux, or some variant there-of.  They program using 'vi', in C or C++, or Java.

The next world uses Windows, and programs in VB, or VC++, using Win32 API calls.  Very few people I've seen use the MFC library.

It's actually nice to code using the Windows tools (Understand for C, UMLStudio, UltraEdit, CuteFTP, CuteHTML) and then port the results to Unix.

Actually, one of the problems in Software Engineering today is that there are so many different platforms and languages and interface libraries that it is hard to standardize.  Java and its large multitude of interface libraries (J2EE, JavaBeans, Swing, etc) is only the latest complexity.

If you've learned to code in C++, using one or more interface libraries (like the standard libraries of Unix) then you should be able to adapt to the continuing evolution of technology.

Tuesday, July 27, 2004

>> I was forbidden from ever turning in a MS application

What, really? <:0

Did they say why?

Tuesday, July 27, 2004

Do a search on or whatever your local job site is.  Compare the number of hits you get for VB or Visual Studio vs  C++ on Unix or Java.

My searches usually show more jobs for non-Microsoft technologies.

Not scientific at all, but interesting.

Tuesday, July 27, 2004

When I do Windows stuff (mainly I do embedded systems) I use Borland Builder. I  think it's great, and it does still seem to be sold.

Tuesday, July 27, 2004

When I did my undergrad, we did some relatively simple C++ projects using VC++.  It was easy to build some basic form elements and do things, but most of the class time became "look up the MFC classes"... this was a time before Google.

It was a pain and it didn't teach us anything except how to waste time digging through relatively useless docs.

Tuesday, July 27, 2004

>> " 'I was forbidden from ever turning in a MS application'

What, really? <:0

Did they say why? "

I'm not certain if it was just school policy - or maybe every university has this convention -  but the languages and platforms were stated on the first day of class. (Java/unixs box; Java/Swing/PC; C++/GNU/unixs; Python/unixs; etc).  Noe deviations were ever accepted, and no MS tool was ever specified.

I think I'm the lone dude on the planet who couldn't care less about the *nix vs. Windows wars, but it did bug me that 100% of the time Unix developers always had less work to do because they were intimate with the environment and their workstations were already configured for working in those environments.

Tuesday, July 27, 2004

Funny that AllanL5 cited two worlds of developers: first world is Unix like platforms; the next world are Windows developers using Microsoft languages.

So of course, that leaves Borland users (Delphi, C++ Builder) as the third world!

Figuratively if not literally.

Well heck, maybe literally too. Look at the rates.


Bored Bystander
Tuesday, July 27, 2004

Not sure why the school has the policy it does. However I think there are valid reasons for a school to pick a small set of tools to simplify and unify the teaching.

Computer science degrees aren't there to teach technology so much as fundamentals of computing. For most of these you don't need IDE's or applications with GUIs. (You do for certain things, but not for the _fundamentals_.) To serve this purpose, the set of technologies, languages your school settled on is probably reasonable.

There is certainly a degree of disagreement about the appropriate material for CS programs, even within the universities themselves. If your career path is interested in developing small Windows apps you don't really need a grounding in the fundamentals of computing and would probably be better served by MS certification or tech school.

Jeff Kotula
Tuesday, July 27, 2004

Unfortunately, I have not seen a community of Borland users.  Unfortunate, because I really like the Borland tools, and would use them if they were more widely specified in the commercial world.  (AND if Borland would quit updating their tools so often, and charging so much for the 'full' Enterprise versions)

(On the other hand, I admit some of the 'rapid updates' have been in response to Microsoft updating their operating systems so often.  It would not help Borland to 'fall behind')

The other problem with using only Unix is that the Unix system call interface is relatively simple, compared to the Windows 32 API.  On the one hand, this means instructors can concentrate on features of the language, instead of merely splicing Win32API calls together.  This is probably appropriate for language, and data structures courses.

On the other hand, this can give developers a false sense of confidence -- since if they can handle Unix, this doesn't mean they can handle Windows.  There is a follow-on learning curve they must pursue alone to get up to speed on the Windows model.

Tuesday, July 27, 2004

Its almost certainly more than you can count on all the digital extremities of your friends, family and neighbours.

Once you have the answer, whatever it is, what will you do with it? 

Granted large populations make ripe targets for new market entrants at the right price point, but given that MS has found a new marketing grab me of releasing slightly reduced development tools for nothing the price point is also likely to be lower than you can afford.

Simon Lucy
Tuesday, July 27, 2004

I seem to be in marketing mode at the moment, must be because I can't fix my bug...

Simon Lucy
Tuesday, July 27, 2004

>> "Computer science degrees aren't there to teach technology so much as fundamentals of computing."

You're making my point for me.  If universities were truly technology independent, then there would be a representaive distribution of current technologies.  Truth is that this university is *SO* fixated on teaching Unix technology, it does so 100% of the time.

Tuesday, July 27, 2004

>> As far as I've seen, there are separate worlds of developers.

>> The first world uses Unix, or Linux, or some variant there-of.  They program using >> 'vi', in C or C++, or Java.

And we are going to take over the world, Grrrrrrr.....Muhahah!!

As developers(non-microsoft), We really should push the momentum towards the other side, towards the Sun world, the linux world, the apple world.  MS has a mighty arsenal, tens of thousands of developers, piles of cash, they may not want to include you in your development plans.  When has the captain of the football team invited you to the party.  Smaller companies(than MS) may offer solutions that fit your shop best because they will work you with in a different capacity than MS.  That to say, consider all the options, dont  just jump on the bandwagon.

Berlin Brown
Tuesday, July 27, 2004

> Truth is that this university is *SO* fixated
> on teaching Unix technology, it does so
> 100% of the time.

Assuming they're teaching C or C++,  those *are* UNIX technology :)

The question is, should they be teaching languages or APIs?  If they're teaching "pure" C or C++, it doesn't matter what OS you're running, you'll be writing console apps, and barring some weirdness, these should generally work across the board...

If you want a UNIXy build environment on Windows, check out and

Tim Serong
Wednesday, July 28, 2004


Not making your point actually. A representative sampling of languages/OS's is only needed in a survey class, and even then the students probably won't have hands-on time with them all. The universities pick a pedagogical tool that will 1) be appropriate to the material, 2) be inexpensive, 3) be relevant. Both Unix and Windows are 2 and 3, but I think Windows tools tend to pull the focus away from 1 and make it about learning Windows, not the fundamentals.

Jeff Kotula
Wednesday, July 28, 2004

I don't see the problem with what the universities are doing.  Pick one language and platform and stick with it through the entire degree, so you can focus on learning new fundamentals of CS each semester instead of spending time learning new syntax.  Learn patterns, mem management, OO, design process, large projects...  If you can't look at a new language and figure out how to apply those fundamentals you shouldn't be in the profession.  And why should the university spend time teaching you all the Windows API stuff when you could work on PC's or Mainframes, or Bleeding edge supercomputers, or car computers, or device drivers, or consumer appliances, or ... anything else out there with code in it.  The fundamentals of moving 1's and 0's around are the same and that’s what you need to know.

When you get a job and whine about bad commenting, poor analysis and crappy architecture, it isn't because of the language a university chose, it because the stupid programmer your working with didn't learn those fundamentals (they probably whined that the teacher wasn't teaching them valuable Windows interfaces.)

Thursday, July 29, 2004

*  Recent Topics

*  Fog Creek Home