Why interpreted languages make superior scripting languages


Ever thought why python, bash, ruby are so dominant in the scripting scene?

It is not their syntax or their standard libraries that make them so good for scripting. The actual reason is the convenience/workflow.

Take a compiled language. For eg: C.

If you want to write a quick script, you'll write a script.c

But you cannot use it yet. You'll have to:

  1. Write the script in a C file
  2. Compile it for your architecture.
  3. Copy-paste the object file to your $PATH
  4. Execute the compiled file, and check if the script works
  5. If the script doesn't work, you are back to step 1

A similar process will be for other compiled languages like C++, rust, C#, java, scala etc


Now take an interpreted language. For eg: python

You write the script.py in your $PATH directory, and you can immediately execute it by running $script.py. No more steps.

If the script doesn't work, edit it on the spot and re-run it. Simple.

It is the same for other interpreted languages like python, bash, ruby etc.


With interpreted languages you can write scripts stupid fast. Because, the file you write is exactly the file that is run. There are no other steps, no frictions. Just write, and it is already executable.

Another point is, the python script that you wrote for your computer can be run on any device that has python installed. The C script that you wrote for your computer will have to be re-compiled to match the architecture of the other device.

The difference is in being able to do something immediately, versus having to do extra steps to get the thing done.

Friction is a big factor.