This is probably a post that will make your eyes glaze over but it is something very relevant to everyone since computers are, pretty much, a staple of life. Whether you use a computer to play games, creating home movies, or even email, moore's law has affected you. Gordan Moore, Co-Founder of Intel, wrote a paper in 1965 that outlined that the number of transistors that can be placed on an integrated circuit increase exponentially as time goes on. That is that the number of transistors that can be placed on an integrated circuit double approximately every two years. This is really less of a law and more of an observation made at a boom time of circuit research. This has driven the industry passionately to yell the battle cry of "We must keep Moore's law intact". It is not really a big idea but my personal hypothesis is, the people who conduct the research fear that if Moore's law is broken, even once, that it will forever become a ho hum target that will be followed with less ambition and creativity. Kind of like a winning streak in sports, once the winning streak is broken... players tend to relax a little more because the goal they were working toward is broken.
Anyway, this law has produced great things for the evolution of computers because a side effect is that as the price per transistor also has to decrease as the number on chip increases. This creates a crazy value for the consumer. As a side effect, we now have enormouse power at our disposal and the bottlenecks in the system are no longer the crunching of the numbers but the transport of data back and forth. A processor works in very short bursts and for the most part it is so fast.... processors are continually waiting on hardware to do its part in transitioning data back and forth.
Ok, to the point of the post. While I attended classes, a big emphasis was placed on code efficiency as is traditionally taught in computer science. This is because not too long ago, the processor was a bottleneck in the system. Now we have so much memory and processing power, the difference between optimized code and innefficient code is neglegable to the user. Only high performance graphics processing and extremely cost reduced electronics components rely on really efficient code. So the new thought that seems to gravitate around the coding forums are "Who cares which algorithm runs faster..... whichever is easier". To a point this is true, but in this thinking we are losing the habits taught in school that in everything you do, you should think of efficiency. For the work I do, my bottleneck is getting data from the database. Because of scaling issues, I try to create the most efficient sql calls that can even if it is for trivial issues. As databases grow, a seemingly innocuous "SELECT" statement can wreak havoc on the web applications performance.
Anywho, Hope you learned something, and next time your program crashes.... you can probably blame it on a lazy programmer trying to brute force the code through the system! ;)