Why should children program? A review of Seymour Papert's Mindstorms
To write good programs that provide any useful functionality often a solid understanding of architecture and Mathematics is required. These skills are better understood in my opinion without focusing on software development as the end goal. A child is likely to be self motivated to write software if they have these skills and, most importantly, a desire to do so.