I would and do never program for any other reason that for fun. I do not program much but have done a lot of programming in my life and hope to be productive one day.
I lack the motivation to program most of the time since my teenage years. I still participate my time via telling people that they will have fun if they want to do what I have done. I do know I done it for fun and enjoyed it and want other people to share the feeling I maintain.
Linus Torvalds summed up my reason for programming very nicely.