There is a subtle distinction between the two. Correct implies definitive or absolute whereas right implies an appropriate but still debatable solution. In programming, we run into this problem all the time. What is the correct solution versus the right solution? Often times we jump at the right solution instead of thinking about the problem and going with the correct solution. Then there are times we debate over the correct solution when the right solution would serve perfectly well.

Programming is the art of trade-offs and the right solution versus the correct solution is a perfect example (just read about it here).

Pingback: LaneHolloway.com - Principles of Good Design as Applied to Software Engineering