Like any other field, Software and Programming world too has some interesting and famous rules, principles and laws, which programmers, developers, managers and architects use often in conversations, meetings and chats. These laws are either rules, principles, or famous words from great personalities of computer programming world. At the same time these laws are interesting, funny, worth knowing, and few of them are just amazing to read. I have sharing things which is worth knowing and useful for not only Java programmer but also developers from other programming language e.g. we have seen 10 Object oriented design principles, which is not only useful for Java guys but also with any OOPS programmer. In this article, I am going to share my collection of 10 famous software and computer programming laws, I am sure you would have few more to add into this list. Please share a computer programming rules, or a thought of wisdom, which is worth knowing among software professional.
10 Famous Computer Programming and Software Laws
1) Moore's law : "The processing speed of computers will double every two years!"
Yeah, they are adding more cores to chips every year J
2) Amdahl's law : "If your program is 10% sequential you can get a maximum 10x performance boost by parallelizing your application"
I guess every Java programmer, who does concurrent programming should know this, don't agree?
3) Ninety-ninety rule : “The first 90% of the code takes 10% of the time. The remaining 10% takes the other 90% of the time”
So true. Any programmer who is not agree with this?
4) Brook's law : “Adding manpower to a late software project makes it later”
Of course, may be because the programmer working on it, spends less time working and more time explaining to new comer :)
5) Wirth's law : “Software gets slower, faster than hardware gets faster”
This is one of best excuse, when a marketing guys suggest another cool feature. What is yours? Just do it...
6) Knuth's optimization principle : "Premature optimization is the root of all evil"
Still true after so many years and has been re iterated by all authors, including my favorite, Joshua Bloch in his book Effective Java.
7) Hofstadter's Law : "It always takes longer than you expect, even when you take into account Hofstadter's Law"
That's why you must have buffer before you give estimation, Agree?
8) Peter Principle : "In a Hierarchy Every Employee Tends to Rise to His Level of Incompetence"
Did you read competence at end of sentence? Me too :) Any comments guys?
10) Norvig's Law : “Any technology that surpasses 50% penetration will never double again (in any number of months)”
That's all on this list of famous programming laws, rules and principles. It's good to know these world famous words, can be used to show off bit, or make an intelligent comment on meetings. By the way, let us know which one is your favorite computer programming law?
Reference : http://www.wikipedia.org/
Few more Interesting post from Javarevisited Blog