I've never really understood not sharing ideas (source code in this case) if it doesn't harm you in any way. It reminds me of classmates who refuse to discuss an assignment or share their ideas. It always seems there is a certain fear that their ideas will be "stolen" or that others are not worthy of them.
I can somewhat understand long-term cost-benefit analysis. My classmates might be right in thinking that others might cheat off them or exploit their ideas. More cynically, allowing others to fail might give you better job prospects. However, it doesn't seem that releasing your source code would have harmed you.
Correct me if I'm wrong, but I'm going to make some assumptions about what you just said. You say that you don't write the software for profit(presumably, you don't plan doing so in the future either). Your main objection is that other people will have access to your "years of hard work, [and] research". Consequently, you fear that others will develop other software based on your work.
You appear to be a generous and helpful person by providing the program, and if you really have no commercial interest in your project, I have troubles understanding why you would care. Is it because you want acknowledgement?
Please forgive me if I angered you (based on your post, you really don't seem to like this question). However, I just can't understand your philosophy.