Ben Ward

Straw Poll: Download Sizes

. Updated: .

You’re downloading an application from the net, lets say an application that you were curious about but might not turn out to be of much use to you. What’s the biggest download size you’d accept? What size of download would make you think ‘I can’t be bothered’?

Keep that figure and mind and now consider whether you would mind so much if the download was small (say < 10MB) but the installer automatically downloaded a larger set of prerequisites, without requiring further intervention from you. Would that annoy you?

Answers in the comments please, the explanation for this curiosity follows.

Recently my life was entirely swallowed by a final year project at Uni and one of the handful of reasons for it taking so long is because at the 11th hour I changed the design.

Originally, my Desktop Search application (‘Oak’) was to use a Microsoft SQL Server Express database backend. Full of glorious developer friendly features (like .NET integration) it is a powerhouse of a database.

However, whilst building some initial test applications I made the horrifying discovery that rather than embed itself in my application, as I’d mistakenly thought it would, SQL Server Express insists on being run as Windows service. Since it’s not distributed as a key part of Windows that would have meant having to download about 40MB of SQL server, alongside the 20MB .NET 2.0 redistributable, alongside my application (lets say that’ll be somewhere around 6 meg).

This download size prompted me to switch from SQL Server to Firebird – which adds only 2MB to the application and runs embedded, not as a standalone service.

I made the change because one of my requirements was to produce an application that would be suitable for consumers to actually use. I felt that a 60 MB download for a Desktop Search system was unreasonable and therefore I would better meet my requirement by altering the design. I wouldn’t say that I regret the change, but learning Firebird’s variation of SQL did make life harder and it falls short of some SQL Server features that I’d been planning to use.

The thing is though, the .NET and SQL Server download doesn’t come as one big download. Instead, you would download my 6MB application and the installer (generated from Visual Studio 2005) automatically downloads and configures .NET 2.0 and SQL Server 2005 from Microsoft. So rather than a very long download time, you instead have a very long installation time.

Microsoft have worked quite hard to ease the effort of deployment, but I don’t know. Is it enough? If you installed my application and it set about download 60MB of prerequisites would you ignore it and let it finish off in its own time, or would you still think ‘sod this’?

Comments

Previously, I hosted responses and commentary from readers directly on this site, but have decided not to any more. All previous comments and pingbacks are included here, but to post further responses, please refer me to a post on your own blog or other network. See instructions and recommendations of ways to do this.

  1. Hi Ben! I would say somewhere in the region of 1-10MB for just playing with something. Programs like Notepad2 (~300KB and no installer) and FlashFXP (~3.6MB) are great because they are lightweight, powerful and ‘just work’.

    Concerns surely vary, but some things always seem to put me off. Unknown download sizes, even with a broadband connection, deter me. Like the Office 2007 Beta 2 apparently ranges from 75MB to 1GB in size, which is a pretty big jump :) Bundled packages also dismay me, like the default iTunes+Quicktime (although I know you can still get them separate if you search). Finally, some friends are still on dial-up, as was I not so long back, and that really brings home how important small downloads are :)

  2. Personally, I very much shy away from installing the .NET framework, so that would be a dealbreaker for me. I don’t really have a problem with >20MB installers, or even 60MB (yay for broadband), I’d worry more about the footprint the software leaves on my machine once I decide to un-install it. If I have to download several extra components to make it work, that’s quite a bit of clutter I might never need again. Clean un-install > file size.

    (I compulsively try out software every now and then, and I suspect my registry is a mess.)

  3. Ahhh, good old Microsoft and their “it doesn’t matter, it’s a configurable web installer” options! I’ve had to look at them recently, although it was for a community tool rather than Uni work.

    On the general topic of download size, I don’t tend to download too many things to try them out. Mostly I download because I need the app (like Open Office or and update to Gaim or whatever). Having broadband, though, a 20MB download wouldn’t get too much thought if it looked quite interesting.

    On the specifics of the additional installers, I hate them. My community tool currently uses DevIL.net to load a TGA image in to a text box, which is an additional 800KB on a 75KB app (C# 1.1) . That isn’t too bad because I can bundle the DLLs, but I also wanted it to convert TGAs to DDSes and visa versa which needed DirectX (DDS are DirectDraw Surfaces, DirectX’s compressed image format). Some 40MB+ of DirectX SDK later and I’m happily writing concise C# code to do all of the conversions, until I find that I’m actually using Managed DirectX which needs another couple of megs of web installer that can download up to 40MB of MDX files! For a 75KB app that’s somewhat excessive, but Microsoft have deemed it to be the best way and have no way around it (except Managed C++ wrapping unmanaged DirectX calls, but that was throwing errors at me and not giving debug info)

    So in general, the odd additional installer may be necessary as an additional requirement (like .Net 1.1, which a lot of people probably have from SP2 anyway) especially when it’s re-usable, but I’d always avoid them wherever possible and go for an alternative that gives a slightly larger file size. Even on dialup, someone would rather have the extra 2MB of Firebird rather than the who-knows-how-much of Microsoft add-ons (which, incidentally, may be WGA protected and therefore unaccessible to some people)

    End of long rant/post :D

  4. Ben

    Interesting thoughts.

    I’m interested to know why you try to avoid .NET Andrea? From Microsoft’s perspective it’s the future of all Windows development so it’s path you won’t be able to tread for long.

    My view in balancing user annoyance verses development power works roughly like this.

    I regard .NET as an essential part of Windows. 20MB could be worse and it’s perfectly acceptable to say that other applications are going to use it too. I really, really wish that Microsoft would consider .NET as an essential part of Windows. It’s a platform and it’s what their own software development tools have produced for at least five years. They should support it better and push it onto users systems. The different versions sit alongside each other, rather than replacing 1.1 with 2.0, so I see no risk of breaking existing applications in this process. That’s a big difference from Java if I understand correctly.

    However, I couldn’t justify pushing SQL Server out. Firstly, it’s that bit bigger. It’s also far less likely to be used by another application the user could letter acquire. On top of that, it runs as a system service, not just when my application is running and finally older versions don’t have a flawless security record, so pushing such a thing onto a user’s system to run all the time could even be dangerous.

    Ultimately, Microsoft are in possession of one of the best development frameworks on the planet. They’re fucking it up by not treating it as part of their platform and forcing this decision onto developers and users.

  5. Hmm, I really couldn’t say, Ben. And after IBBoard’s comment, I’m not so sure anymore that I don’t actually have it installed (WinXP SP2)… I guess it just seems like clutter to me? sheepish

  6. Well getting .NET isn’t a problem as I’ve got it installed and to be honest I’m sure it will be part of Vista (which I believe is a good thing). I’ll handle downloads of 1-10MB for testing like Jonty — I do hate web installers. I like to know when I download something how big it is, I don’t like to download an installer that then downloads the rest of the installer.

    Re: Office 2007 Beta 2 — you download the installers themselves (which can be up to 750MB, i.e. a CD) but at least you know how big it is, it’s not a web installer :)

  7. These days with broadband I’d consider anything under the size of a small CD (650MB) to be a reasonable download. With this sorta stuff its always more about speed than size anyway. 650MB off a M$ download server is fast but 650MB off a server maybe sitting on dialup would suck!

  8. That’s true, it’s more to do with how long it takes to download. I’ll often only wait about 2-5 mins to test something out. That’s about 60MB on my connection…

  9. Ben —

    As a developer myself, I can fully understand (and support) the decision to switch to Firebird – I have made the switch myself about 18 months ago for a database project I was working on at that time. However I switched for different reasons: MS SQL Server was way too slow for what I needed at that time – Firebird just blew me away by outperforming MS SQL Server by a factor of 7.5(!). Furthermore, the download and installation of Firebird was a breeze. And if you do not need all the bells and whistles MS has put in SQL Server, Firebird is a good and cheap solution.

You can file issues or provide corrections: View Source on Github. Contributor credits.