Whatever your programming language or non-programming language or framework is, please, please, please obey the following commandments.
Also, don't consider your application "finished" until it does obey them.
Personal note: these commandments are not just made up (even though I cheat slightly to get to a total of ten, because really commandment 5 is a direct corollary of commandment 4). Each one of these commandments is based on at least one actual episode of suffering which has occurred in my life.
$ executewhateveritis hello-world.thesourcecodeextension
Don't make me go into some stupid UI just to run some code.
And God forbid, don't require me to start some "application server" just to print out "Hello World".
If compilation needs to happen, figure it out and make it happen. It's not that hard.
For example, like Python.
I want to see what my program is saying. I don't want to have to find the file where you decided to put the output. I don't want to run tail -f. Just write stdout to stdout.
(All known graphical web browsers fail this commandment. Your internal developer tools UI may be lovely, but sometimes I just want standard output going to where I want it to go.)
I don't want to execute my code and then enter interactive commands – I just want to execute my code. If you drop me into a REPL, then the script I called is uselessly waiting there for input when I already want it to be finished.
It's just annoying having to put that into my source files, and sometimes I have to run someone else's source code where I don't have the option of inserting an exit() command.
And what if my code is sometimes the top-level code and sometimes it's not the top-level code?
Do I have to write my own tricky test code to determine whether or not the end of that particular program is the end of everything being executed?
I don't want to.
I want to see my program output right now, as it is happening.
Not some time in the future when enough output has appeared to fill the output buffer.
Right now.
(And Python and Ruby, having options to disable output buffering is not quite good enough. In fact, in general, having options to obey any of these commandments is not good enough.)
Extra brownie points for also stating the position in the line.
When something goes wrong, I want to know what went wrong and I want to know where it went wrong.
FAIL example: all known Javascript engines, which fail on commandments 7 and 8.
If Ruby can do it, then so can you.
For anything that your execution script should do that it doesn't do, eventually someone will ask a question on StackOverflow asking how to do it.
Do not answer the question with "It can't be done", knowing that you are going to get StackOverflow points because that is the "best answer".
Go to your application's implementation and fix the problem.
Thank you.