Critical Section

programmers vs hardware

Thursday,  12/18/08  08:41 PM

Jeff Atwood writes Hardware is Cheap, Programmers are Expensive.  "Given the rapid advance of Moore's Law, when does it make sense to throw hardware at a programming problem? As a general rule, I'd say almost always."  Yeah, but... 

Here's the comment I posted:

Jeff, your comment is written from the point of view of a user.  If you're creating an application for your own company, sure, hardware is much less expensive than programmers.

This situation is different from the point of view of a vendor.  If you're creating an application which thousands of customers are going to use, *your* programmers are much less expensive than *their* hardware.  You really don't want to make customers pay more for your application because it requires more hardware.  (Vista is an extreme example, as an OS, but this is doubly true for vertical applications.)

For example my company Aperio makes digital pathology systems.  These manage lots of really big images.  If we didn't have efficient code our customers would have to buy more hardware - CPUs, disk, bandwidth, etc - and it would make our applications more expensive.  We'd be less competitive and deliver less value.  So for us spending programmer resources to reduce application hardware resources is the right trade-off.

BTW this discussion bears on the choice of language, too.  If you're creating applications for yourself, sure, go ahead and use C#.  If you're creating performance critical applications to sell to others, C++ might make more sense.

This is apparently a hard thing to wrap your mind around...  Microsoft struggled with this same thing in the early days of Vista, rewriting large parts of the OS in C# only to discover that "managed" code was too slow, and the whole world wasn't going to buy next generation PCs all at once.  Even after large amounts of the rewritten code were rewritten again, Vista still ended up being slow and piggy, and adoption has been sluggish.  Don't hold your breath waiting for Office or SQLServer to be written in .NET, or Photoshop, or Quicken...  or any decent game you might name.

This recalls an earlier post Jeff made in August 2005: Despite the incredible slowness and sparseness of features, this is really cool, in which we debated the relative merits of Java (nice for in-house use) and C++ (nicer for "mainstream" apps).  Here we are three years later and not much has changed.  Same as it ever was...


this date in:
About Me

Greatest Hits
Correlation vs. Causality
The Tyranny of Email
Unnatural Selection
On Blame
Try, or Try Not
Books and Wine
Emergent Properties
God and Beauty
Moving Mount Fuji
The Nest
Rock 'n Roll
IQ and Populations
Are You a Bright?
Adding Value
The Joy of Craftsmanship
The Emperor's New Code
Toy Story
The Return of the King
Religion vs IQ
In the Wet
solving bongard problems
visiting Titan
unintelligent design
the nuclear option
estimating in meatspace
second gear
On the Persistence of Bad Design...
Texas chili cookoff
almost famous design and stochastic debugging
may I take your order?
universal healthcare
triple double
New Yorker covers
Death Rider! (da da dum)
how did I get here (Mt.Whitney)?
the Law of Significance
Holiday Inn
Daniel Jacoby's photographs
the first bird
Gödel Escher Bach: Birthday Cantatatata
Father's Day (in pictures)
your cat for my car
Jobsnotes of note
world population map
no joy in Baker
vote smart
exact nonsense
introducing eyesFinder
to space
where are the desktop apps?
still the first bird
electoral fail
progress ratches
2020 explained