views:

107

answers:

7

When creating applications (Java, run on a normal computer). How important is program size for users? For example, would it be necessary to replace .png's with .jpg's, convert .wav's to .midi's, or strip down libraries to save space, or do users generally not care if my program is 5mb when it could be 50kb if stripped down?

Thanks.

+8  A: 

That depends on the delivery mechanism.

Size is generally only relevant in terms of the bandwidth required to download it. If you download it often, then it matters a lot. If its only once, it matters less and you have to weigh up the time involved in reducing that vs how much space you save.

After that, nobody cares until you get into gigabytes. Well, mobile applications will probably start caring at about 10MB+.

cletus
A: 

Who are your users? What kind of systems will they have? What sort of network connection? Will they download your app or install it from media? Will they download updates? How frequently?

Graham Lee
this should be a comment. Unless you'd care to elaborate how your answer would change based on each of your questions.
I think you misunderstand. That _is_ my answer. The asker wants to know how their users consider application size. I suggest they consider who their users are.
Graham Lee
A: 

I would say not important at all, unless it's obscenely large.

Matt Grande
(-1) not important at all to who? There are hundreds of classes of users, and they don't think alike on anything. Mobile Users, Server Admins, Gamers, Casual PC user, Work Laptop user, Netbook user, Microchip Coders, Mainframe professionals. They all have different considerations. Also, "obscenely large" is a relative term that doesn't relate to any specific actionable advice.
+4  A: 

Users definitely care (after all, not only does space cost money, but affects program load time). However, the question becomes how much do you optimize. I suggest the 80/20 rule. 80% of your benefit comes from the first 20% of the effort.

If you use a utility like TreePie you might be able to see what parts of a large application are consuming most of your resources. If you find it's just a few large images, or one big DLL with a bunch of embedded resources, it's probably worth taking a look at reducing the size, if it's easy.

But there's a cost/benefit tradeoff. I just saw a terrabyte drive for $100 the other day. Saving the user 1 gig is about 10 cents in terms of storage space, and perhaps some hard to quantify amount of time spent loading every time they load. If you have 100,000 users, it probably worth your time to optimize a bit, but if you're writing custom software for one user it's probably not worth it unless they're complaining.

Scott Whitlock
+1  A: 

As mentioned by Graham Lee, a great deal of this is very dependant on your users. If you are writing something that needs to be optimized to fit on the chip of a 68000 processor, then you'd better believe that program size matters. Assuming you're not programming 30 years ago, you probably won't run across that particular issue.

But in general, you should be making your application as small as possible while still achieving the quality you want. That is to say, if your application is likely to be viewed on an 640x480 screen, then you don't need hi-res 6mg pngs for all your images. On the other hand, if your application is designed to be blown up on a big screen at conferences, then you probably want to upsize your images.

Another option that is very common is creating installers with separate options ranging from full to minimal. That way you can allow your users to decide whether size matters to them. It allows you to create the pretty pretty version of your app, and a scaled back version that doesn't include tutorials or mp3 files of a soothing woman's voice telling you that you've push the wrong button.

Know your users. And if you don't, then let them decide for themselves.

+1  A: 

Consider yourself, what would you use? Would you rather save space with 5KB programs or waste it with 5MB programs?

I think that smaller is better, especially if the program doesn't use/need much graphics and can be optimized.

Secko
A: 

I would argue that startup time is far more important to users that application size.

However if you include a lot of media files with your system it is logical to optimise this data as much as possible. But don't compromise the quality - switching to jpeg might be okay for photos, but it sucks for technical diagrams. A .wav could be an .aac or .mp3, but not if you're writing a professional audio application.

JeeBee