I <3 Steve McConnell*
Coding Horror
programming and human factors
by Jeff Atwood

August 03, 2007

Configuring The Stack

A standard part of my development kit is Microsoft's Visual Studio. Here's what I have to install to get a current, complete version of Visual Studio 2005 on a new PC:

  1. Visual Studio 2005 Team Suite Edition
  2. Visual Studio Team Explorer (Team Foundation Client)
  3. Visual Studio 2005 Service Pack 1
  4. Visual Studio 2005 Service Pack 1 Update for Windows Vista
  5. SQL Server 2005 Express Service Pack 2
  6. Visual Studio 2005 Team Edition for Database Professionals
  7. Visual Studio 2005 Team Edition for Database Professionals Service Pack 1

Note that this is only a partial list; it doesn't include any of the other Visual Studio add-ons you might need to code against newer Microsoft technologies, such as ASP.NET AJAX, WF, or .NET 3.0.

What's wrong with this picture?

I appreciate that some of these products were released out of order, which is partially why the install is so convoluted. But if one of the disadvantages of open-source software is "configuring the stack", I'm having a hard time seeing how Microsoft's commercial stack is any easier to configure than the alternative open source stacks these days. Either the open source stuff has gotten a lot more streamlined and mature, or the Microsoft stuff is somehow devolving into complexity. I'm not sure which it is, exactly, but the argument that choosing a commercial development stack saves you time rings more and more hollow over time.

As the old adage goes, Linux is only free if your time is worthless*. But apparently your time can be worthless even if you've paid for the privilege.

* attributed to Jamie Zawinski.

[advertisement] TransferBigFiles.com allows you to send huge files (up to 1GB) to anyone without worrying about email attachment limits. Send via the Web site or download the DropZone utility for even more functionality. It’s fast, easy, and totally free! Transfer big files now.

Posted by Jeff Atwood    View blog reactions

 

« What's Worse Than Crashing? Catalogs of Data Visualization »

 

Comments

A metric I use is how long does it take to install a machine so you can start editing and checking-in new code. From formated windows to everything installed and configured.

If you can't do it in less than ~3 hours then there is something wrong.

The worse is when you're doing contracting work at a company : you don't have security access, you don't have any machine and when you get it nothing is installed, you don't have security access to get anything from the network,...
In such situation it's common to wait several day before you can do anything at all.

Monkeyget on August 8, 2007 12:46 AM

A common thing in developing software or product is having an automated build executed from a single batch file or command. Why don't we have automated installation for common development tools on the Microsoft stack?

I can understand that some people like to configure what they install and where it goes, but these things should be configured in a script. Then you can kick off the installation using the script and let it do it's thing while you can get on with something else. It could be called NInstall!!

Matthew Lang on August 8, 2007 01:05 AM

Isn't it possible to slipstream service packs and addons into the base installer ? That's such a wonderful feature of the Windows installer, they should support it on other softwares...

FlorentG on August 8, 2007 01:07 AM

Hi Jeff

As I started reading your blog post (which always appears in the past in my reader, what's up with that?), I thought I knew where you were going and then you took a wrong turn ;-)

Where I thought you were going (and my suggested answer to your position) is that Visual Studio 2008 solves that (for now!). I wrote about this in April here:
http://www.danielmoth.com/Blog/2007/04/repaving-and-how-vs-orcas-saves-me-time.html

Cheers
Daniel

Daniel Moth on August 8, 2007 01:29 AM

No, it is not "devolving into complexity", it has always been that way:

http://support.microsoft.com/kb/223258

Gunnar on August 8, 2007 01:33 AM

To build my operating system (and its user programs and libraries) I use a cross-compiler built from source (GCC 4.2). To get the compiler configured and installed is faster than to attempt to install one of Microsoft's products.

GCC took about an hour to configure and compile, and I was performing CPU-intensive tasks in the background (I'll have better timings when I compile the version of the compiler to run natively on my OS).

pcmattman on August 8, 2007 01:49 AM

The open source stack I'm using at the moment consists of Emacs.

Of course, just because it's only one application doesn't make it any quicker or easier to master but once you've got your head round it the mysteries of the universe are as nothing to you. Apparently. I'm a long way from mastering it so I wouldn't know.

Ben Moxon on August 8, 2007 02:15 AM

Hi Jeff,

Why team system ?
Is that a work requirement or a personal choice ?

From what I've seen of Team System, even in the Visual Studio 2005 release show kinda felt like an exercise in teeth-pulling without Analgesia :)

If you have another experience of it though, I'd love to hear about it.
I work in C# and Visual Studio 2005, but we're ardent SVN users here.

Russ C. on August 8, 2007 02:20 AM

My stack consists of Python, Vim, Mercurial, WinMerge, and Cygwin for misc. tools. That will change when I start to do more .NET stuff.

Miguel P. on August 8, 2007 04:02 AM

After a recent scare with my dev server nearly dying I decided to draw up a document describing the exact steps to setup my "stack". That eventually turned into a shell script. So I can go from blank machine with ubuntu cd, shell script and backup to working machine in a very short amount of time. I did all the testing and tweaking on a VM; maybe writing some kind of script to automate all of that, windows or linux, is the way out of this situation ?

Gavin on August 8, 2007 04:09 AM

Well if you had the latest CD's you'd be installing 3-4 things. I don't see the problem really. If you need to install something then do so. Don't insist MS install it by default if all the options are going to take up gigs of space on my PC that I'm never going to use. MS used to take a lot of flack for using too much space so they let you choose what you need and people complain. They can't win. Besides you only ever do this once per PC. IT departments should automate it either through scripts, slipstreaming or restoring a mirror etc.

I would think that the installation procedures are probably easier and at least as easy as on linux, but any time wasted installing it will be made up in 30 mins of using the software because visual studio tends to be a great environment to use.

Paul on August 8, 2007 04:11 AM

Visual Studio 2005 (professional) is really bad. I've been bitten by LNK1104 error real bad. The linker cannot update the executable since its locked - by Visual Studio! I have to restart Visual Studio every time I want to build the application.

I tried to install the service pack (which btw, doesn't indicate in advance the huge amount of disk space it requires during installation) and that managed to crash. It did its unroll thingmajiggy. Now Visual Studio simply fails to run :(. Uninstall/Reinstall doesn't work. I'm having the OS reinstalled now.

Other irritating things I've experienced (I've seen others report these too):
VS keeps creating "Visual Studio 2005" folders in the solution and project directories.
VS Configuration Manager is just unintuitive and buggy.

I like the C++ compiler in VS 2005 - it produces pretty good code but all these other things have made me lose most of my love for VS 2005.

Sandeep K on August 8, 2007 04:12 AM

.net was(is) great, finally a framework where you could do almost everything on the windows platform, good runtime performance, good language support, etc.. Coming from vb6, java and c++ it was so good just to have everything around you; it almost felt like you came home. :-)

All the new generation .net stuff don’t impress me, if you are not 100% Microsoft evangelist, going to Microsoft seminars, reading Microsoft blogs, taking Microsoft courses, etc.. it can be quite an effort to catch up. And when I finally have the time to test some new feature like, it doesn’t work because I am not running vista or some other obscure reason.

I wish that Microsoft would improve instead of expand...

Peter Palludan on August 8, 2007 04:16 AM

I develop on all three platforms. By far the hardest to setup for development is Windows. Linux is apt-get install kdevelop, OSX is download and install XCode. Windows took the better part of a day to prepare, including hunting down some obscure hot-fix patch so I could compile against Qt 4.3.

Max Howell on August 8, 2007 05:08 AM

I think this is the cost to stay at the cutting edge.

Most new technologies that get released in between major Visual Studio releases typically get embedded into the next version.

I'm playing around with WPF using the Visual Studio 2005 add-on - but WPF isn't going to really gather speed until Visual Studio 2008 is released.

So basically, being a cutting edge geek makes your life harder :)

Peter Bridger on August 8, 2007 05:09 AM

I went on a job interview several years ago at a reputable company with a large development staff. I told them I did not use VS at all, and that I just compiled everything from the command line. The Development director said, "you can do that?" I did not get an offer. He probably thought I was "the guy in the room". Which may be true.

But I can't believe people go through this gymkhana with VS. MS has done a very good job convincing intelligent people to buy products they probably don't need. Plus, if you really like IDEs (I don't), there are several good alternatives available; for instance #develop (LGPL) is pretty good:

http://www.icsharpcode.net/OpenSource/SD/

It is a testament to MS's short-sightedness that VS is still not free (of charge). They should be doing everything they can to keep people developing for their platforms.

Bob on August 8, 2007 05:12 AM

I see your point but I think your example isn't typical. At least not for me. You don't need all the "team" stuff to get Visual Studio running. You certainly don't need all the database stuff either. The complexity comes when you start installing all the extra stuff that aren't part of Visual Studio.

In fact, all the extra software you included in your list aren't part of the Visual Studio product. You have to pay extra for them.

Bart on August 8, 2007 05:15 AM

Freebsd ports seems a way faster alternative.

Then with perl:

- catalyst help you build web applications.
- wxPerl helps you build desktop applications.

Easy.

eriam on August 8, 2007 05:18 AM

I just (reinstall) Visual Studio 2005 on my new laptop a few weeks ago.

When all was said and done, installing the base system (only Professional, not Team System), MSDN documentation, SP1, windows updates, 4-5 addins and 4-5 libraries/tools (like NDoc, FxCop, etc), it took me _5 hours_.

Craziness.


mattman206 on August 8, 2007 05:25 AM

That's some killer 7-unit stack you're fielding, any of them have legendary yet? =D

Bob, but VS is free, though you have to live without some of the goodies. Open Source was almost certainly the driver of that.

And yes, it is possible to slipstream all the VS updates together. (Team edition for database is a separate product still, as are team explorer and sql server obviously, so it's down to only four long installs instead of seven.) Just combining VS with VS SP1 can cut an hour off your install time, SP1 is so ginormous.

Too bad exactly this situation persists with VS6 with no way of slipstreaming, msi not having existed then. (SP6, the SP5 processor pack, various other post-SP6 updates, debugging tools...) I'm so glad that I finally had enough transitioned that I didn't have to install it with this latest laptop.

Foxyshadis on August 8, 2007 05:28 AM

Stack of Babel comes down. News at 10.

James Maida on August 8, 2007 05:40 AM

All these OSS folks talking about how simple and easy their stacks are need to try comparing apples to apples. The Team System includes a powerful, integrated source code control system, as well as the productivity-enhancing IDE and debugger that come with VS 2005. Standalone emacs, standalone gcc, or standalone catalyst/wxPerl on FreeBSD don't even approach this level of functionality. It's like comparing a car to a tricycle and complaining the car is too complex.

Don't get me wrong; I think MS needs to streamline their install process, no question about it. VS 2005 SP 1 in particular is a total disaster. But let's keep comparisons relevant to the example at hand and not just preach the Linux gospel.

Matt Wigdahl on August 8, 2007 05:43 AM

Jeff,

Since your stack consists of "Team" level software, I assume this is at your workplace and not on a private machine. Shouldn't your IT department (or the guy sitting in the basement behind the furnace who's doing that job) have standard images for you programmer-types to install? If they don't, take a look at:

http://technet.microsoft.com/en-us/library/bb490308.aspx

(If that link fails, it's pointing to "Microsoft Solution Accelerator for Business Desktop Deployment 2007")

David A. Lessnau on August 8, 2007 05:46 AM

@Matt,
OK, how about this? On my Mac, I installed Ruby, RubyGems, Rails, MySQL, Subversion and TextMate in under 2 hours. This after upgrading the OS to Tiger, which was an 1 hour of it doing its own thing, while I was programming on my desktop PC. So, here's a source control system, integrated debugger and an IDE that the core Rails team uses. And no install hassle whatsoever. Is that more acceptable to you?

Srdjan Pejic on August 8, 2007 06:00 AM

I'm not sure what the issue here is. If this is really taking up so much of Jeff "The Stiletto" Atwood's time, he should make a ghost image, or just slipstream the service packs into the installer. I think the fact that you even can slipstream the service packs reflects well on Microsoft. Visual Studio and SQL Server aren't exactly lightweight apps. I can't see some apt-get type of solution working for them until we get much bigger tubes.

Bob:
SharpDevelop is impressive, but it's no VS2005. I remember in a recent-ish version dragging a folder into itself would infinitely recurse, copying the folder into itself over and over. Hopefully they've fixed that up, but I wouldn't be surprised if it was still pretty crashy.

As Foxy "Foxy" Shadis pointed out, you can get a free copy of Visual Studio Express: http://msdn.microsoft.com/vstudio/express/
Some features are limited, but it's still better than a kick in the ass.

Eam on August 8, 2007 06:02 AM

No, what it is, is the people who loved to configure the stack, "real developers," complained enough to everyone who would listen about how easy Microsoft made it for newbies, so Microsoft (using piss poor judgment) decided to make theirs as the rest of the free open-source development tools.

Jeremy on August 8, 2007 06:05 AM

I think its funny that everyone basically attacked how many things you installed and the fact that, in their eyes, you don’t need all of these things. One user even thinks you would be better off just using the command line to develop everything. And VI is the best development environment ever!!!(This is from one of our Unix Trolls.)

I had this happen recently on a MS forum when I asked a question about configuring 802.1x. Instead of an answer or suggestions on how to solve the problem, I was provided with several “why would you care about that” type responses. “I didn’t do that”, etc. And while appreciate people taking time to respond, I actually want to know how to do something very specific, not hear why you don’t think it is necessary. Especially if you are not going to offer a better solution.

I do think that Paul’s comments are probably the most useful. MS is in a damned-if-do damned-if-don’t situation. If VS installs everything then people bitch about the wasted space and the long install. If it doesn’t install everything then people complain about soooo many things to install.

Me, I’m just happy to have such a wide range of choices and great tools to work with. Are MS tools perfect? No. But they sure do make a lot of things easier.


Aaron

Aaron on August 8, 2007 06:19 AM

Wow, your company's IT department allows you to install software? They are really living on the dangerous side compared to most I've experienced, who don't give users/developers sufficient permissions.

a on August 8, 2007 06:30 AM


You don't need Team Foundation Client to start coding. SQL Server Express is not part of VS so I don't know why you even mention it. Service packs are separate installs which enable you to uninstall them on demand if they break something or do you prefer they get bolted to the software?

Some of us don't use open source IDE's so you should explain why you think they are better.

Visual Studio is a complex IDE. Probably the most complex one around. Installs take time. Not a big deal. Staring at the screen duting long installs is a bad use of one's time.

- Didn't I see this post before!?

- Last..why does this post show 8/3 on 8/8?

Abdu on August 8, 2007 06:31 AM

"Freebsd ports seems a way faster alternative."

I decided to install /usr/ports/java/jdk15 on my FreeBSD machine last night. After manually downloading four files (including 55MB of source code) the build stopped because I hadn't downloaded _another_ 52MB of some other source code (good thing I hadn't gone to bed yet and noticed so I could get the source and start the build again).

That was at 10:00PM last night, I woke up this morning, it is still building.

And oh yeah, before I even started, I was warned that I needed 2.5GB of hard disk space to build JDK 1.5 (wtf?).

Note that I'm not even talking about Eclipse or Tomcat, just the JDK.

Compared to this fun, double-clicking to install Visual Studio and a couple of service packs is a walk in the park.

Grant on August 8, 2007 06:42 AM

I think Jeff was comparing against alternatives like SharpDevelop or Eclipse. Emacs and vi/vim are not useful comparisons, and catalyst is not an IDE.

VS2005 offers a whole lot more than any of those others (with the *possible* exception of Eclipse, I haven't used it enough to be sure), but installation really is a huge pain. The service pack installation failed 3 times on one of my machines (after some 20 minutes of appearing to succeed), until I finally looked up the error message and found out that the only way to get around it was to change some obscure group policy setting, restart, install the service pack, then delete the GP setting and restart again. THANKS GUYS!

MS does have some CYA explanation of why installing VS2005 service packs and other add-ons is such an obscenely time-consuming process, but I think the issues actually run deeper than VS itself. I think the whole MSI system is broken, it's just so unbelievably slow. All kinds of installations thrash the hard drive and CPU for several minutes when all they should need to do is extract a few files, maybe register a few COM DLLs. It's pure inefficiency.

If Orcas and/or Vista solve this, great - but I'm not holding my breath.

Aaron G on August 8, 2007 06:50 AM

I think VS2005 is just fine and I think there heading in the right direction with VS2008. The WPF alone is an amazing feat besides all the enchancements to the Team Suite.

And for all you Linux trolls out there I think the best solution for VS developers to program cross platform apps is Mono.
http://www.mono-project.com

No need to learn slow Java and limited Ruby.

Donny V. on August 8, 2007 07:02 AM

I just wish they'd make installing the .NET runtime a lot more lightweight. .NET 1.x was a 5-minute job at most. The lame .NET 2.0 (and later) installers (hey, *love* those flat buttons guys!) just take *way* too long for my liking.

DuncanS on August 8, 2007 07:06 AM

Linux is only free if your time is worthless:

It gets even better. I get to CHARGE my client for all of the time that I spend ferreting out all of the little parts that have to come together to make even the simplest single piece of software work.

Chubber on August 8, 2007 07:24 AM

Wow, when I read this, I am so glad I don't work with Microsoft solutions. Don't get me wrong, I used to work for MS back in the 80's, and I been using VB since version 1.0 up until 6.0.
Today, my development stack consists of the following:
* Lotus Domino Designer (including the Notes client)
* Teamstudio Configurator, Snapper and Profiler.
* Ytria scanEz/actionbarEz/etc suite of programs.
* Martin-Scott Noteman suite of tools.

It takes me about 15 minutes to install all that, including entering license keys.

With Notes 8, Eclipse is a possible development environment for certain components, but at my dayjob, we will not get Notes 8 for a while, so today that is not an issue.

Karl Martinsson on August 8, 2007 07:31 AM

I agree with Aaron and Matt: vim vs. VS2005 isn't a fair comparison. But I also know that the notion that "Linux is only free if your time is worthless" is true only if you've never used a decent package manager.
With Ubuntu (or it's parent Debian) it's extremely easy and fast to get a robust OSS stack up and running with APT. For example, you can build a typical web app stack (apache, php, mysql, subversion and eclipse) in about 10 minutes, download time included. Would I want to use it in a production environment? Not without a some fiddling, but it's perfect for development purposes.
I haven't messed with Red Hat in a while, but I suspect RPM could do OK with this too.
It's kind of funny, actually, that I can build the development stack I use now (python 2.5, zope, postgres, svn, and eclipse) faster on a Debian box than I can in OS X or Windows. Our team is currently in the process of making that even faster by packaging our production environment and codebase in a single .deb package.

James Stevenson on August 8, 2007 07:35 AM

While it may be true that the installation process for VS 2005 is long, it is not necessarily complex: each of the items you listed is a double-click installer. That seems alot less difficult and time consuming than hunting down the right package for your distro, compiling from source if necessary, checking directory permissions, making sure you have all the dependencies installed, and dealing with a crashed KDE (okay that one was below the belt).

Aaron Bynum on August 8, 2007 07:44 AM

The uninstall is even more troublesome -- wherein components seemingly installed from a single package need to be uninstalled in a specific order.

Chris on August 8, 2007 07:45 AM

There is a point to be made around how things are installed as well. The attempt to automate the installation of a series of software is anything but smooth. Microsoft, who should be professing the benefits of Windows Installer, does not leverage any one standard way of packaging their own software. Having been in the trenches with Microsoft I realize it is a big company. Getting some standards in place around installation would, alone, make the whole process smoother for the end users and systems administrators.

There are good things happening like the Updates folder in the Office 2007 installations where you can drop MSPs and have it auto-install them during the initial installation process. But no one is picking up on that, not even their own product group (see the Save as PDF/XPS installer for an example). Instead we have a mess of things to install using many different techniques and command lines. I commented on the sad state of installation in my blog recently (http://rockstarguys.com/blogs/colin/archive/2007/07/06/the-sad-state-of-installation.aspx) which I noticed while trying to automate the build of my development workstation. Maybe someone inside MS can take some initiative to clean up installation. They've got a good thing going with WiX, maybe it needs some funding and a mandate to clean things up?

Colin Bowern on August 8, 2007 07:48 AM

During this time, here, at my company, we are still using Visual Studio 6.

Why ? because we are doing embedded development (C language). So to test under windows, vc6 is enough. Meanwhile, a few run of our tools on Vista (test machine) shows there are mostly broken. And vc6 seems weird with Vista.

The easy fix is to stay with XP for the coming years.

BTW, can some people confirm that MS and VS2005 are removing the C runtime ?

Sch on August 8, 2007 07:53 AM

Open Source developers seem to be very interested in ease of use these days, especially when it comes to install. I think they are coming to realize that no one will use their stuff (even though it is free) if they have to troubleshoot the install for hours on end.

Also, Microsoft should be taking steps to make things like this easier for people. They have gained a lot of enemies (and followers) over the years.

Jeff on August 8, 2007 08:29 AM

Folks rag on Apple all the time because their software installers (iTunes, Safari, etc.) are gargantuan and they never (or almost never) offer "updaters" that include only the changes to a software package. Their developer tools (Xcode) are especially egregious here, because each time one wants to install a new version, it means you have to download a full installer that approaches 1GB. People are always clamoring for updaters instead of having to re-download the whole thing.

It's kind of a trade-off: one way to avoid the whole "service pack" pain is to never do service packs, just release new full versions. How to do this without exposing the vendor to an increased risk of piracy is left as an exercise for the implementer, as is finding the extra bandwidth to facilitate the approach. But it would reduce your "stack" above to just 4 steps, one for each product.

Norville on August 8, 2007 08:30 AM

I double click some things to install Visual Studio 2005.

Maybe I select some components I want or don't want.

Wait a bit.

Repeat for service packs / etc.

Now -- if you are saying that's a "troublesome" or complex series of events for an install, then I'm wondering how going through all these Linux/Open Source/Package manager/Black Magic/Vodoo Spells/Funerary Incantation Rites/etc is any easier or simpler?

Maybe they are "faster" in that the install process is less, but really, unless you are installing these components on a regular basis (to which I ask WHY?) -- then I really don't see where it's that big of a deal. But then again, I mainly program in C# and don't need Ruby/Java/Awk/Kitten/Lampshade/<insert name of programming language here>.

N on August 8, 2007 08:47 AM

"As the old adage goes, Linux is only free if your time is worthless. But apparently your time can be worthless even if you've paid for the privilege."

Indeed. My time carries the same (non-zero) value whatever OS I happen to be using. I spend significantly more time these days maintaining any one Windows box plus applications than I do maintaining any one Linux box plus applications. The Linux boxes also cost less time to install and configure.

Not having to trawl the 4 corners of the internet for software updates, and not having to maintain and run multiple malware scanning tools really makes a difference.

Paul Glover on August 8, 2007 08:56 AM

I guess if I had to sit through 5 hours of install every day, I'd be really concerned. But this is essentially a one-time deal with updates from time to time, perhaps. Once everything is installed, I don't really care. I was doing something else while the install was going on anyhow, so it didn't really affect my day adversely. Just my 2 cents.

Matthew Cuba on August 8, 2007 09:03 AM

Internet strawmen are all the rage I guess. What stack are you comparing this to? If it's LAMP (as your link suggests) - you have left out the OS in your steps - feel free to download the Windows ISO before installing your tools ...

If it's the "AMP" you can install those on a windows machine using a nice prepackaged WAMP stack like apache2triad. What you describe is more a development environment than a "stack".

So if it's a "development stack". It's hard to imagine how your 7+ steps beats installing 1. MyEclipseIDE - ordered, downloaded and installed in under 2 hours. What was that quote about time being free?

David on August 8, 2007 09:22 AM

Just tried SharpDevelop. It's nice, but I personally found it "slow". Right click menus on things in the solution explorer seem slow, and text scrolling in a code window seems slow. So does some of the autocomplete options.

Unless you needed a feature that it provides that isn't in, say, C#-Express, I would never use it. Visual Studio is just faster and more robust -- and I'd trade that install time-waste over USE time-waste any day.

N on August 8, 2007 09:32 AM

The company I am at works on a cross-platform product that compiles under Visual Studio 2005 and also g++ on Linux. A couple weeks ago, we upgraded to service pack one because of apparent incompatibilities between libraries generated by 2005 and 2005 sp1.

Coincidentally, we got four linux boxes in to make into dev boxes.

The punchline: the tech guy was able to install the entire dev system, including the OS, for each linux dev box faster than we could install just Visual Studio, service pack 1.

Now maybe it is comparing apples to oranges. This didn't include Eclipse, for instance. But only a couple of us even bother with Eclipse. The key is that in each case, it was the dev system required to develop for the same software.

Were debian based systems excel is in package management. My Ubuntu box has what no Windows box has, that is, a central location where I can quickly and easily find and install the majority of software applications available to the software. When building a Windows box, there's always a day of searching for disks and seeking out random websites to get what I need to get to be productive. (Which, for me, was Perforce, Cygwin, Vim, Visual Studio, Photoshop, Firefox, Thunderbird, various sysinternals tools, etc.) When building an Ubuntu box, it's running Synaptic, clicking some check boxes and hitting "apply". The only think we have to load outside of Synaptic is Perforce.

sburnap on August 8, 2007 09:43 AM

Talking about tools, a tricycle is certainly more sustainable in the world we live in.

But maybe what you just want is a shiny user interface to slow down your computer so you can change it every month or year.

Oh, and by the way there are also vcs in freebsd ;)

eriam on August 8, 2007 09:49 AM

I've always tried to have .iso images of everything out on the file server and then use some customized script with msiexec /qb inside. the downside I have with this is that sometimes is doesnt install everything you need and sometimes you have to remount the instlal cd to pick up some things.

ideal? no. should this have been installed a long time ago by MS ? YES. if nothing else there should be a response file that Msiexec can look for to use to fill in/answer most of the prompts.

mike johnson on August 8, 2007 09:56 AM

I hear that one...i just did an install of MS Visual Studio 2005...it was agonizing

Alex on August 8, 2007 10:36 AM

I hope a lot of the extra work goes away with VS 08. SP1 is pretty brutal that's why I made slip-streamed VS and TFS Explorer installers for our team.
I'd like to take the whole TFS and Team System out of the equation. TFS is a turd of a source control system and the Team System extra features don't come close to justifying the /huge/ jump in price. I suspect VS would perform a little better if the TFS crap were not there.

-Geoff

TheGeoff on August 8, 2007 10:51 AM

OK, I think that Colin G and Aaron Bowern are definitely "on to something". I'm with a small software firm, so we do our own installs, which includes the VS, SourcSafe and I'm actually using SQL Server Enterprise Manager (which takes like 45 minutes to install w/o the "extras" of analysis server, reporting services, etc.)

The whole "slipstream" solution doesn't make a lot of sense when you have 6 dev machines that are not identically configured. I assume that VS 2008 comes on-line, we'll burn a backup copy of the disk and then install VS 2008 two comps at a time and basically burn a day.

Running all of these installs is very, very time-consuming so I'm with Colin and Aaron and Jeff here. I agree that there is definitely a lot of data being pushed around here, but pulling 8GB of data from a DVD does not take 90 minutes (it doesn't even take that long to burn it) and it certainly doesn't take 90 minutes to write 8GB to the hard drive (or even 16GB or 24GB if it had to be copied for some reason). Even if this stuff we had to decrypt every byte of the 8GB on the disk, that shouldn't take 90 minutes and that could be done at the same time as the reading.

So what the heck <i>is</i> going on? Something's definitely problematic in MSI-land.

Add to that, the fact that Jeff is likely an MSDN subscriber (like most MS devotees) and should really just be presented with a checklist of all of MS offering so if he needs to waste 4 hours installing he shouldn't have to babysit.

Gates VP on August 8, 2007 11:15 AM

That comment on Linux is ridiculous. How many hours of people's time has Microsoft wasted collectively? A 64 bit number might not be big enough. I do strictly open source develop, my "stack" consists of Textpad and pgAdmin, Firefox w/Firebug, not much time wasted there.

Steve on August 8, 2007 01:40 PM

The fact that VSExpress is so limited and VS5 isn't free is astounding to me. I thought MS was all about "developers! developers!" so why do they screw over developers?

I'm stuck using PellesC for Windows Mobile programming (the SDKs don't work on Express), and for Windows apps MS actually forced me to go multi-platform with wxWidgets because VSExpress doesn't support any GUI.

It's ironic. I wouldn't have gone with wxWidgets if I had a choice, but since I didn't have a choice, my apps are ported to linux for free.

Sean on August 8, 2007 01:43 PM

As far as that Linux quote is concerned, jwz is a well known Apple troll. I wouldn't take anything he said at face value.

Sean on August 8, 2007 01:57 PM

I still use VSS6. Hahaha... i works for me... well its just me and one other fella... but as part of my stack it is old faithful.

Glenn Walker on August 8, 2007 02:10 PM

Matt Wigdahl on August 8, 2007 05:43 AM said:

"All these OSS folks talking about how simple and easy their stacks are need to try comparing apples to apples. The Team System includes a powerful, integrated source code control system, as well as the productivity-enhancing IDE and debugger that come with VS 2005. Standalone emacs, standalone gcc, or standalone catalyst/wxPerl on FreeBSD don't even approach this level of functionality. It's like comparing a car to a tricycle and complaining the car is too complex."

One thing no one mentions is that any company you work for is going to have a mish-mash of proprietary and OSS technologies if the code-base has been around for a long-time with a lot of developers.

Right now, I don't want to build my system from scratch because it contains a ton of tools needed to _build_ our embedded SW:

- Watcom make & makefiles
- Borland CBuilderX
- Microsoft Visual Studio
- Nant
- .NET 2.0 framework
- ActivePerl
- SmartSVN and other SVN tools
- Araxis Merge
- Cygwin and all the dev packages (gcc, binutils, gdb, etc)
- Custom in-house build tools
- Write my own automation scripts
- Other proprietary/commercial packages needed to bootstrap software

I would go nuts if my dev machine broke down, because I don't want to spend a week trying to rebuild my box. Heck, I wish my company could standardize on GNU tools since they work across multiple platforms and only need GCC and Make to build the damn SW and GDB to debug.

Editors don't matter since every developer has a different taste. I use Eclipse with a handful of plugins (slickedit, CDT) to write C/C++ code.

Kashif Shaikh on August 8, 2007 02:12 PM

Sandeep K:
"Visual Studio 2005 (professional) is really bad. I've been bitten by LNK1104 error real bad. The linker cannot update the executable since its locked - by Visual Studio"

In my experience, this problem is caused by Norton Anti-Virus, the 'file system auto-protect'. Turn it off! This would explain your problem installing the service pack.

Norton AV loads and checks every file you access on your system. It really affects your build time!!

ulric on August 8, 2007 02:41 PM

Can someone explain why Visual Studio Orcas is Gigs to download? It seems it's just gotten so massively large and I'm not sure why. To write code, we 1) type text into a file 2) compile & link 3) repeat. Even using third-party apps for unit testing, database access, app server management, I'm not sure why we gotta download gigs of stuff.

Todd on August 8, 2007 02:47 PM

I'm chiming in with the Linux trolls here. Linux's saving grace is that it's set up wonderfully for development right out of the box. It pretty much is the stack.

Try using it for something non-software-engineering related, though, and you're in for some pain.

Dan on August 8, 2007 02:55 PM

A good rule is if you find yourself doing something tedious for the second time, write a script to do it. Chances are that if you've done it twice, you'll have to do it a third time or show someone else how to do it. That script will come in handy.

Brendan Dowling on August 8, 2007 03:07 PM

Personally, I don't see how this is a problem. The required downloads are in a logical order and the entire process would be extremely easy to complete if you had a list of direct links to each download. To make it even easier, why not write a PowerShell script to automate the downloads?

Compared to what I had to do on Linux to get my development system up and running, getting all of my Visual Studio tools installed is a piece of cake. To start off, I had to run a system-wide update that was normally in the 500MB to 1GB range. Next, I had to download each tool plus search for the correct version of any dependencies, then the dependency's dependencies, and finally install them all. Overall, that was about 8 to 10 hours of staring at a progress bar in a BASH shell or following links to find the correct version of a dependency on some FTP site.

Downloading and installing 7 applications that all have graphical installers and don't require any third-party applications to run is nothing to complain about.

David Brown on August 8, 2007 03:59 PM

Let's look at the brand new MacBook I just got. It comes with Eclipse, JDK, a C/C++ compiler, VI, Emacs, Scites, PHP, Python, Perl, Apache httpd, Ruby, and of course XCode.

Now, let's look at my Linux system over here. It also comes with everything but XCode, Well, if I am not doing Java development, and I want an IDE, I'll download something from the Internet.

Now, over to my Windows PC: It has... ...uh... Notepad? Yup, that's right, the OS with 90% of the market share comes with zero development tools. Oh wait, there's CMD.exe Batch programming!

Why are there six different flavors of Windows Vista, and not one comes with a basic set of development tools? Why if I buy VisualStudio.NET, doesn't that come with a version of IIS?
The irony is that the fastest way to get development tools on Windows is to download Cygwin. I simply don't understand why Windows developers put up with this mess.

David W. on August 8, 2007 06:00 PM

Dan Brown: not all Linux distros are equal. Try one with apt. I run on Ubuntu and it is only for rare, obscure things that I have to consider dependencies. I check the box for the application I want, and it downloads whatever it needs.

It's really not "Windows vs. Linux". It's the apt package management system vs the complete lack of package management on Windows. It's sad, because with the "add/remove programs" section someone clearly started to think about it. But with the lack of standardization on installation in the Windows world, it never became anything cohesive.

Why can I, for instance, not create some charge account somewhere and just say "install Visual Studio" or "install Photoshop" and have it just work? Why can't the automated Windows update keep Firefox and Photoshop along with the Microsoft OS? Why on earth

The other day, someone recommended a make replacement called "scons" to me. I decided to play with it, so I ran synaptic, searched for "scons", checked the box, hit apply and was playing with it within five minutes. Once you get used to being able to do this, Windows just seems crippled. The fact that Windows doesn't have anything close to this is a huge failure of imagination on Microsoft's part.

I just don't get it. Apple can create an online store to sell music transparently. Microsoft itself can create an online store to sell games transparently to consoles. Why on Earth can't Microsoft create an online store to sell (and maintain) software?

sburnap on August 8, 2007 07:12 PM

First of all, my name isn't Dan. ;) Second, I know all about package management on Linux because I used nothing but Fedora Core for 2 years. Yes, it does make some things easier, but for most of the stuff I was doing, I still had to hunt down packages in different repositories and resolve dependencies manually.

How is there no standardization on installations in Windows? Every installer I have ever used has placed an entry in the Add/Remove Programs dialog.

Personally, I like the lack of standard software updates. Some programs have to update differently, and frankly, suddenly adding a big package management system to Windows would cause a ton of companies to drastically change the way their products are released which in the end, may or may not cost them money. I wouldn't rule it out for future versions of Windows, but it doesn't seem like a plausible addition just yet.

David Brown on August 8, 2007 07:49 PM

"It is a testament to MS's short-sightedness that VS is still not free (of charge). They should be doing everything they can to keep people developing for their platforms."

If MS do that, there will a lot of cry babies(Borland, Sun and OSS whiners) crying about MS's "monopoly" on development platform.

Jack on August 8, 2007 07:54 PM

Well, I guess the good news is that with VS 2008, you'll be down to two again:
* VS 2008
* Team Explorer 2008

Of course, if everything shipped together, nothing would ship. ;-)

Buck

Buck Hodges on August 8, 2007 08:29 PM

I'd say Jamie Zawinski's adage is pretty out-of-date at this point. In fact, it has been for quite a few years. Almost every Linux and BSD distribution today makes extensive use of packages. If I drop the following on a command line on an Ubuntu box:

sudo apt-get install mono

I suddenly have your stack, in just a couple of minutes depending on the mirror :)

Jonathan Roes on August 8, 2007 08:56 PM

The sad part is that 1, 2, and 6 are all listed as part of #1, and the rest are just service packs and updates to keep (or get) everything running properly. The whole thing should roll up into a single install, especially since those 3 are advertised as part of 1 product.

Unfortunately, Visual Studio's had a consistent history of these types of issues, and with having to install updates to separate parts of the system in a specific order to keep things working properly.

As for IT, different companies work in different ways, and if you're installing software to work from home they will rarely support you at all, or, if they will, won't do it for you. Personally, I work for a very large corporation with several layers of IT support, and while I can get a password changed fairly quickly, and possibly get software installed on a machine I don't have admin access on, the computer on my desk is left to me to configure and maintain.

Part of this is my own fault, I want to be able to modify the environment as needed rather than run to IT every time something interferes with a piece of software or I need a specific tool for a particular project. It was a fairly simple matter to talk the local IT person into giving me administrative access to my own computer to keep him from having to deal with my issues. Another part of it is that my boss (at the time) wanted me to be in a position to take over as the local IT person when the time was right, but of course things have changed drastically in the last few years (as with any large corporation, mergers and acquisitions can change the plans of people at any level in the organization).

Going through the last 5 versions of Visual Studio with various levels of maintenance of multiple versions on the same machine at once has been a true pain in the ass, and it doesn't seem to be getting any better. It's truly a beautiful thing when just installing a new version of the IDE (side-by-side with the previous version) can prevent you from recompiling older code without a rewrite of some portion, but thankfully I haven't had many of those problems after rewriting most of the VB6 code...

Vizeroth on August 8, 2007 11:40 PM

So on Windows you have to complete 6 software installs to start to be uptodate wit one programm?

That's why I trully love debian/ubuntu

Using apt-get or synapting installing programms is just point and click.
After that the update manager keeps the whole system up to date.
Everything from the OS/kernel libs,user programms even browser extensions, all in one simple stepp.

Huibert Gill on August 8, 2007 11:42 PM

The problem as I see it is that the Updates section of the VS installer doesn't do it's job properly.

With VS it is that the installer takes so long. It isn't actually difficult to install everything, but just wasted time. I've spent more time configuring the automated build process (Subversion and CruiseControl.Net).

Paul on August 9, 2007 04:22 AM

I was just complaining to a friend yesterday about the fact that when doing a clean install of Windows, you have to update the UPDATER three times before you can even begin installing the near 100 other updates. Patches to fix patches, updates to fix updaters, it's like Microsoft doesn't even try anymore, they just hide behind their ability to issue patches when something goes wrong. What happened to getting it right the first time? I have a hard time releasing bug-free code because I'm the ONLY ONE developing it and testing it. Any other developer here knows that testing your own software just doesn't seem to work out, and I usually don't even have enough time to fully test it. This doesn't apply to Microsoft with their billions of dollars that they could invest in more developers and much, much, MUCH more extensive testing. If I were Microsoft I would be recruiting hackers like crazy and paying them to break into betas so 100 security patches wouldn't have to be applied down the road. I don't know if they already do that or not, but it seems like if they do then they need to find better testers and hackers.

Mattkins on August 9, 2007 06:30 AM

Jeff, I actually have to agree with you on this. It points to an overall problem and judging by the posts many people have accepted this as the norm.

Steve on August 9, 2007 06:32 AM

Huibert: I know what you're trying to say, but accusing Visual Team System of being "one program" is like saying that OSS is just Linux :)

You've got Source control, Debugger, Designers, intellisense, Reporting and lots more ...

Russ C. on August 9, 2007 09:35 AM

Also, VS2008 professional and beyond incorporates all of microsoft's newfangled sdks automatically including ASP.NET AJAX, WF, and .NET 3.5.
Team server still has a handful of installations but microsoft is working to decreasing the stack size, unlike linux where it seems to be ever increasing and rapidly changing.

David on August 9, 2007 12:37 PM

David Brown: try apt on Ubuntu. It's miles ahead of anything on Red Hat, and what most of the "linux trolls" here are raving about. If you've just used Red Hat, you don't actually know what we're talking about. Red Hat's package management system is crap.

On an Ubuntu system, you almost never have to hunt down dependencies, certainly not for anything in the stock repositories.

sburnap on August 9, 2007 04:43 PM

My Windows stack:

Eclipse
MinGW
MSYS
GDB
wxWidgets
OGRE
Boost
Python
SVN Server

Time, all said and done: Nearly 8 hours.

My Linux stack:
Eclipse
apt-get install build-essential wxgtk-dev python2.5-dev subversion (yes, I probably butchered the package names)
Ogre from source
Boost 1.34 from source

Time, all said and done: Nearly 4 hours.

Andy on August 9, 2007 05:11 PM

"Second, I know all about package management on Linux because I used nothing but Fedora Core for 2 years."

Whenever anyone says "I know all about blah", I know they are talking out of their rear end...

"How is there no standardization on installations in Windows? Every installer I have ever used has placed an entry in the Add/Remove Programs dialog."

Yay, it can create an entry in the add remove programs list. That's a standard if I ever saw one, and is obviously much better than a unified package management system with automatic updates.

"Personally, I like the lack of standard software updates."

You do realize you can tell it not to update on almost all distros?

"Some programs have to update differently, and frankly, suddenly adding a big package management system to Windows would cause a ton of companies to drastically change the way their products are released which in the end, may or may not cost them money."

Yes, and we wouldn't EVER want companies to have to spend money in the name of consumer convenience.

LinuxUser on August 9, 2007 05:16 PM

Somebody else here mentioned slipstreaming. I just create a new slipstream installation source every time a SP comes out for one of the essential products. That way, when I do have to reinstall everything, the time and effort is minimal. Couple that with strategy with an automation script, and you can actually install your entire OS, dev tools, and other stuff in a virtually no-touch effort. Now, if we were system administrators, we would probably do that. I don't know a single developer willing to go that far, however!

Anthony Kilhoffer on August 11, 2007 09:28 AM

You ain't seen nothing yet. Tried to install MS Team Foundation Server? If you haven't I urge you to read the installation guides from MS and follow them TO THE LETTER, even do the stuff that seems irrelevant to your shop. Examples:

If you install IIS on the box (required) and have deleted the default root web app, you will soon be hacking the metabase to make it even work. Oh, don't forget to change the HTTP port on that site to 8080 (Why? WHY!) or you get a cryptic error that you will be digging through google results for an hour tieing back to some blogger who posted about changing the port setting if you get the error (Something like "error, can't continue.")

While you are at it. Make sure that web farm setting is enabled, whether on not you plan to use it.

You must have Sharepoint 2.0 with the proper service packs. The installer will thwart any attempt to install on top of Sharepoint 3.x.

If you installed Sharepoint before SQL server 2005 (with the required service packs)... Sorry, uninstall them both and start over.


And it continues on page 2 of the instructions....


Oh yeah, then import your VSS DB into TVS. That involves no less than 3 separate whitepapers. Ugh!

JohnFx on August 11, 2007 02:10 PM

Well, knowing how complex it is to set up that stuff on a new machine, you should take the Virtual Machine route.

Install a dev environment into a suitable image, then it's ready to go on any other machine (with the correct VM platform).

John Rutter on August 12, 2007 01:05 PM

"Whenever anyone says "I know all about blah", I know they are talking out of their rear end..."
I wasn't trying to sound as if I know everything. I was simply saying that I do know what I'm talking about because I have, in fact, used Linux package management extensively.

"Yay, it can create an entry in the add remove programs list. That's a standard if I ever saw one, and is obviously much better than a unified package management system with automatic updates."
I misread the paragraph that I was replying to when I made that statement. I originally thought that sburnap meant that Add/Remove Programs was something that was NOT standard among all installers. I admit that was my mistake.

"You do realize you can tell it not to update on almost all distros?"
You do realize I wasn't trying to make a point against Linux? All I was saying was that ON WINDOWS I like the lack of standard software updates.

"Yes, and we wouldn't EVER want companies to have to spend money in the name of consumer convenience."
Just because the consumer thinks this new package management system is convenient doesn't make the companies want to spend money to change their deployment method. Would you rather have that program you can't live without and have to run an update application every few months, or would you rather wait a year or two so the company can get their internal build systems revamped?

"On an Ubuntu system, you almost never have to hunt down dependencies, certainly not for anything in the stock repositories."
You just reiterated my point... you don't have to hunt down dependencies for anything in the stock repositories. But what about those packages that AREN'T in the stock repositories? Most of the Linux development I did on Fedora required packages from other unofficial repos and they didn't always provide the latest packages, so I would have to then turn another repo to find them. This happens with any package management system.

David Brown on August 12, 2007 07:53 PM

4 of those listed are updates/service packs...

You could also add VSTO.

Smith on August 15, 2007 03:16 AM

I don't see the problem. This is a one time deal. How often are you formatting and reinstalling?

You should crate a hard drive image.

Aaron on August 20, 2007 09:02 AM

"They (Microsoft) should be doing everything they can to keep people developing for their platforms."

Oh, they do! It's called "advertising", and obviously it works.

ToniEisner on September 6, 2007 06:08 AM

Hi Jeff,

I normally install SQL Server Developer Edition on my machine, to house my local dev databases. Do you only use SQL Server Express for your dev databases?

Tod Birdsall on November 19, 2007 02:59 PM

the horror of setting up a VS stack is only matched by that of trying to uninstall or update it.

richard on March 26, 2008 02:58 PM







(hear it spoken)


(no HTML)




Content (c) 2008 Jeff Atwood. Logo image used with permission of the author. (c) 1993 Steven C. McConnell. All Rights Reserved.