Explain idea and reasons (not) to use it. With example code.