General Coding & Scripting
Some software engineer/developer job descriptions list knowledge of ‘scripting’ as a requirement. What exactly does that mean? I can deduce that scripting means to write something, in this context, code. But what kind of code?
The only time I’ve seen ‘script’ come up in my coding projects is in the <body> of an HTML file to include other sources (like a JavaScript file or bootstrap).
I suppose, I can also admit that ‘Script’ is apart of the name of JavaScript and TypeScript. What is the significance?
Examples From Job Descriptions
Keep in mind that I’ve mainly been looking at Software Engineer and Front End Development roles. Scripting goes beyond this into DevOps Engineer, Quality Assurance Engineer and more.
*bash scripting
*scripting languages — such as Ruby/Ruby on Rails/Java
*knowledge of 1 or more scripting languages (e.g., Shell, Bash, Perl, Python, JavaScript, or Ruby)
*familiarity with Linux-based shell scripting and CLI
*experience using automated scripting tools like ‘gulp’ to build automated development processes leveraging NPM or Yarn, Node.js and other modern development techniques
*proven shell scripting (Windows and/or Linux)
*proficient understanding of client-side scripting and JavaScript (ES6)
*Experience in writing a scripting language like Python or Ruby (Ruby or Clojure is a plus)
So, it is definitely a category of language. Is this the same as Windows/Linux-based shell scripting? There are also automated scripting tools. Hmm…
Scripting vs Non-Scripting
“A scripting language is a programming language that is interpreted. It is translated into machine code when the code is run, rather than beforehand. Scripting languages are often used for short scripts over full computer programs. JavaScript, Python, and Ruby are all examples of scripting languages.” — Kimberly Forsythe @ Career Karma
All scripting languages are programming languages.
But, not all programming languages are scripting languages.
Scripting languages are interpreted when code is run.
Non-Scripting languages are compiled to translate commands into machine code (binary) that can be executed.
Examples of Scripting Languages: JavaScript, PHP, Python, Ruby, Groovy, Perl, Lua, Bash, PowerShell, R, VBA, Emacs Lisp, GML
Examples of compiled non-Scripting Languages: C, C++, Java, Erlang, Haskell, Rust, Go, Scala
Shell Scripting
The ‘shell’ is the interface of the command line that interprets scripts/commands to access the operating system.
A Shell Scripts is a file containing a series of commands; similar to Bash Scripts.
Shell scripting can be done in any shell.
Stephen Bourne developed the original Unix shell
Most shell commands will work in bash.
Bash Scripting
A Bash Script is a plain text file of a series of commands. These commands are exactly those that can be typed on the command line. So, this can save a good amount of time and effort if there’s a sequence of commands you want to execute. Scripts can even call on and execute other scripts!
Bash Script files end in ‘.sh’
example.sh
Bash means “Bourne Again SHell” since it is an improvement of the original Bourne shell (sh) by Brian Fox..
Bash is one of several Unix shells and it is also the default shell on most Linux setups.
Bash Scripting is specific to Bash.
Not all bash commands will work with a ‘shell’ interpreter.
Use Bash to take advantage of more features.
Shells
Unix: Bash, Fish, Ksh, Tcsh, Zsh
Linux: Shell, Bash, C Shell (csh), Korn Shell (ksh), Zsh, Tcsh, Fish, Ion, Dash, Eshell, rc, Scsh, Xonsh, Oh, Elvish
Windows: cmd.exe (aka Command Prompt), PowerShell, Git Bash (which I personally use)
Server-Side Scripting
These languages run on a web server/backend. Can handle data.
Examples: PHP, ASP.NET, Node.js, Java, Ruby, Perl, Python
Client-Side Scripting
These languages run on the client end/web browser.
Basically, it’s a fancy way to reference HTML, CSS, and JavaScript.
Conclusion
I didn’t realize there was so much variety in scripting! The <script> HTML tag has nothing to do with the others, I don’t think. That’ll be a deep dive for another time. Why is it called ‘script’? What does it do behind the scenes besides pull in other sources so they’re accessible?
There are many varieties of shells that can be used based on what system you’re running.
Scripting languages have nothing to do with the scrips of commands that can be executed from the shell.