There is only one way to really be a loser, and that's to stop trying. Remember you define your life and your goals.
Stop looking outside yourself for what you are expected to have achieved. Spend some time and figure out what is really important to you. The rest be damned. People have successfully re-started their careers well into their 60's.
I also both close and lock my door. The problem stems from the fact that while my wife intellectually understands I'm at work, she has trouble accepting it on a more emotional level. When kids are acting up, or she is having a rough day she tends to get resentful that I get to "relax" in my office while she deals with the various disasters. Actually one of the biggest challenges is meals. Do you take your lunch in your office? Eat with the family? Eating with the family sounds great, but it can really derail your train of thought. The only thing that seems to work for me is to be really strict about it, and deal with any resentment head on at the end of the day.
In most general of terms a programming language would be ideal for a problem domain if the domains problems could be expressed directly in the language. You would sit down with the domain experts and have a conversation, that conversation could be converted directly to code. In fact if the language was expressive enough the experts could express the problems directly to the computer. No current language, that I'm aware of, achieves this goal. However Clojure by nature of it being a Lisp, allows you to easily add to the language to bring it closer to the domain it will be used in.
It's certainly no silver bullet, and does add to the learning curve of new programmers, but if used properly can be a great tool for writing concise and correct code.
Full disclosure: I'm the author.