I just want to mention, for the record, that I hate filename extensions on anything with the executable bit set. Yes, I'm looking at you, authors of Perl and Python scripts.
When I'm at the command-line and want to run a command (say, "todo"), I want to type "todo" and have it work. I don't want to have to type "todo.pl", nor do I want to have to type "todo<TAB>" to get my shell to do it for me. I shouldn't have to know, or care, or even be reminded of what scripting language the script I'm invoking was written in. Isn't the entire point of the "she-bang" magic line available in all modern shells that you can run a script without having to know what kind of script it is?
Can anybody give me a single good reason we keep tacking all this ugly garbage onto the end of our scripts? It's not like editors can't use that same first line to figure out what kind of script it is and turn on appropriate syntax features. (I'm sorry, it's 2008. If your editor can't handle that, what's wrong with your editor?)
So why is my world filled with "todo.pl" and "moap.py" and "generate.sh" (in all probability requiring bash, no less)? Will you all just cut it out? I'm sick of having to symlink and alias around your annoying naming conventions.