They all spell the same. They all mean the same. They mean try as you may, it will not let you for a whole host of reasons.
Get introduced to the second name of the wonderful machine, the marvelous invention ‘computer’.
For the last hour, I have been building the latest release of boost. Yet my computer won’t let me do anything else.
I wonder has our waiting for anything to be done has increased or not? Even with the ever faster computers and more and more computing power available at our finger tips, with the advent of multi-core processors, nearly every body can be seen waiting for something to finish, some download to complete, some compiler to stop whining about the dredged code or have his heart’s desire to spit all those informative message about how it thinks a variable may be truncated during assignment.
We wait for our word processors to save the documents, watch those LEDs blink as the computer boots, wonder what’s taking it so long to shutdown, curse while those GBs of RAM get written to disk if hibernating or read back during resume operations. And don’t be astounded when visual studio takes forever to refactor code even when the changes are confined to a single function, go to any lengths to optimize (not improve) OLTP performance.
Even with broadband availability, our needs have expanded even more disproportionately.
Work expands to exhaust (and demand more) resources allocated to it.
And a big factor in consumer oriented markets like desktop operating systems and application is to only improve the perceived speed of some operation yet never inspect code like this
Message message = …;//get from somewhere
// A paramter has only one value, missing break after substitute call
foreach( Parameter parameter in parameters )
IList values = GetAllValues( );
foreach( Value value in values )
if( value.Id == parameter.ValueId )
message.Substitute( parameter , value );
They will go overboard to recommend things like
· Consider adding un-managed splash screen to show before the WPF app start. This will present the user with some UI and improve perceived responsiveness. Check blog later for a sample that demonstrates how this can be done.
With the release of Visual Studio 2008, Microsoft build tools will finally have multiprocessor build support, with MSBuild having /maxcpucount:n and cl having /MP:n as the relevant options. Just as the added generics after MSDN filling pages about how dangerous templates are for everyone’s health during .net framework 1/1.1 timeframe. So, I may expect boost to build a little faster next time I try that labor intensive (ahem! actually, only waiting for the damn thing to finish) operation.
It has been ages since multi-core processors came out. Hyper threading is a fact of history we take for granted these days. Multiple processors in one form or another are a norm rather than exception, yet it is hard to find properly written programs which can take advantage of even the most basic form of concurrency available. Having two processors in the bare minimum you can have but programs in the wild (and by wild I mean currently in heavy usage, not just written by your average Joe) blissfully ignore and have only one thread.
Herb Sutter rightfully said about these issue we will face increasingly in the future, with our processor clocks going no where.
We are shifting more and more towards ease. Ease of development, ease of use, ease of deployment, ease of availability, any ease you can fit in. Gone are the days when a redirector had only 128 byte foot print in low memory. Gone is the time when Windows ran happily in 4 MB of RAM.
So, I’ll see you around when you will be waiting for my next post because I will be waiting for something else to finish.