In his article “The free lunch is over”, last year Herb Sutter made an interesting observation and prediction.
Over the years programming has become less about understanding underlying Computer architecture, and more of putting a few components together and writing a bit of business logic. This was fed by ever increasing power of the CPU and also by the tools that did most of the work.
However, as this article pointed out that programmers can’t leave the performance issues to some low level system designers in future. They may need to approach the programming in a different perspective. For getting best performance, the way forward may be to rethink how to delgate the tasks to the computer, instead of just writing out some business logic.
I remember the days (in 80’s and early 90’s) when we would seriously consider what portions of code is best written in assembly and how we can optimize the code by re-arranging the instruction sequences, loops.. In some critical cases, checking the aggragate of the clock cycles a peice of code would take, and what an alternative way of coding might take, and selecting the optimal code ourselves. It all started becoming irrelevant – even unproductive – by around 1995, interestingly the inflection point of Mhz growth, as per the chart provided in the article.
The above article is an year old now, but the observations seem to be standing even after 15 months.
So, may be – just may be – Fun and artfulness is returning back to programming again!