by Howard Fosdick © RexxInfo.org
What is a scripting language? And why should you care? Which one should you learn to boost your career?
This article answers these questions and more. We'll look at how scripting languages evolved, and in the process, give you a more thorough understanding of what they are and what they can do.
Scripting languages are interpreted, rather than compiled. An interpreter processes each source code statement, one at a time. It translates each statement into machine language and then executes it.
In contrast, compilers convert your entire program into machine language first. Then you run the compiled machine code.
Because of their interpretive design, scripting languages yield higher developer productivity than compiled languages like Java, C, or C++.
That's because interpreters support high-level features like automatic memory management, variables and data structures that can vary in size, the ability to declare variables on the fly, built-in interactive debuggers, and extensibility.
So it's often quicker to script than code traditional programs.
Scripting languages often function as glue languages. They tie together existing code: objects, components, widgets, OS commands, system services, programs, functions, modules, and more. This increases productivity.
On the downside, interpreted languages are not as execution-efficient as compiled programs. So for the first decades of their use, scripting languages were employed in situations where run-time performance was not a concern. That hardly matters today.
Also, scripting languages are not capable of close-to-the-hardware programming tasks. For example, writing a device driver.
Here's a summary of the benefits and downsides to scripting:
Scripting first evolved on mainframes in the 1970s. It became apparent that there was a need for a command language -- a language that could issue operating system commands and invoke other programs. Early examples were the EXEC, EXEC2, and CLIST languages.
In the 1980s, Rexx superceded all these languages. Rexx is a full-featured scripting language that handles any kind of application. It's widely considered the first true scripting language. Its big draw is that it combines power with ease of use -- a tricky combination to pull off.
While Rexx remains the default mainframe scripting language, today it's open source and runs on all platforms, from cell phones to supercomputers.
Object Rexx compatibly adds object programming to classic Rexx. A version called NetRexx integrates with Java, produces byte code, and uses the Java virtual machine. NetRexx was the first language to use the Java Virtual Machine after Java.
Unix and its heirs contributed a new concept to scripting -- that of the shell language. The shell is both the program that accepts and interprets your command at the command line prompt, and also a full-featured programming language.
Shells are portable and replaceable. You can add more shells to an operating system. Don't care for the default shell? Install another and use it instead.
The first shell was developed at Bell Labs in the 1970s.
Since then, dozens of full-featured shells have superceded it. These include Bourne-Again shell (Bash), C shell, tsch, KornShell, Z shell, and others. They're all open source under a variety of licenses. Most are cross-platform but remain primarily associated with Linux/Unix/BSD systems.
All the shell languages are very powerful. Unfortunately, they are also syntactically difficult. Scripts can be hard-to-maintain if programmers do not allow for this. And shell languages are tough to work in if you just write the occasional program.
The best known and most-widely used shell these days is Bash, the default shell for Linux.
Windows was originally conceived as a completely interactive system, responsive to a single user. Thus the concept of a scripting language was considered secondary to its development.
Initially Windows just used the old Batch language of its predecessor, DOS. Batch files had the file extensions of .bat or .cmd. Batch files are very limited compared to full-featured programming languages.
As Windows evolved into the role of a server, Microsoft perceived that a more complete scripting language was needed. So, the company supplied Rexx in the Windows Resource Kit. Then it introduced VBScript and Windows Script Host in the 1990s.
Microsoft ultimately decided they needed to control scripting through their own proprietary language. So they introduced PowerShell in 2006.
PowerShell is particularly adept at Windows task automation and configuration management. It leverages the large number of application programming interfaces (APIs) that exist in Windows, Windows Management Instrumentation, and the .NET Framework.
PowerShell completely dominates its niche as the Windows automation language. While Microsoft has transitioned it to open source and cross-platform use, few use it outside of Windows.
Like Microsoft, Apple introduced their own scripting language for their customer base. Called AppleScript, the product was released in the early 1990s. AppleScript focuses on inter-application communication using Apple events. It adds the typical features of an application programming language, all wrapped within a syntax based on a natural language metaphor.
Unlike Microsoft with PowerShell, Apple retains AppleScript as proprietary and has made no moves to opensource it or make it cross-platform.
By the early 2000s, scripting had burst out of its role of operating system support and become viable for almost any application. Here are examples:
Several factors underlie scripting's exploding popularity:
The upshot is that today dozens of scripting languages are used for all sorts of tasks. Is there any way to make sense of them all?
One approach separates scripting languages into those that are general purposes versus those designed for a specific purpose:
Some of the special-purpose languages support web development. Others are for text processing or embedded programming. Specially designed scripting languages can be ideal for such tasks.
You might disagree with some of the classifications in the charts I'll present in this section. That's because it's not always clear how to classify languages. And languages change and evolve over time.
PHP is a great example. It was designed exclusively for server-side programming to generate web pages. But it expanded its purview over time, and today can be used for client-side development, too. It can even be used for applications that don't involve the web at all.
PHP highlights another another useful distinction. Some scripting languages were designed specifically for web programming, while others address other kinds of applications. Some cover both bases, others specialize.
This chart shows some of the more common scripting languages for web development. We've split them into server- versus client- side tools:
Yet another way to categorize scripting languages is to divide them into open source and proprietary products:
Another way to judge scripting languages is by their relative ease of use. "Ease of use" really encompasses a set of related values. Is the language easy to learn, easy to code, and easy to maintain? Does it put the burden of programming on the computer or the programmer?
This chart contrasts the easier scripting languages versus those that are more difficult:
A final distinction is between languages that are cross-platform, versus those that are identified with a particular operating system. Many cross-platform examples spring to mind here, including Python, Perl, Rexx, Ruby, PHP, JavaScript, and others. Most are open source.
And of course there are languages that are cross-platform, but in practice are rarely seen outside their native environment. An example would be PowerShell, which most still consider a Windows tool. Another example is the Linux/Unix/BSD shell languages.
Now you have an idea of how various languages fit into the scripting universe. Knowing the distinctions among them can prove useful in your career.
Which language should you learn to help your career?
The answer depends on two key questions:
If you're a System Administrator or work in systems support, learning the default scripting language for your operating system is imperative.
The chart below shows that for Linux, Unix, and BSD, this means your platform's default shell. For Linux that is Bash. Windows relies on PowerShell, mainframes on Rexx, and Apple on AppleScript:
If you're not in a technical support role -- say you're an applications programmer or system analyst -- scripting knowledge for the platform you work on can be useful but is not essential.
If you're a web developer, scripting is vitally important. For client-side development, you need to know JavaScript (or TypeScript). It totally dominates this market niche. (You'll want to couple your JavaScript expertise with intimate knowledge of the two major markup languages, HTML and CSS.)
On the server side, your choice depends on the tools stack your organization favors. Some prime candidates include PHP, Python, Node.js/JavaScript, Microsoft's ASP.NET, and JSP.
What if you could only learn just one general-purpose, cross-platform language? Which would it be?
Python is certainly a good choice. It's easy to learn, work with, and support. It's open source, interfaces to everything, runs everywhere, and can be used for nearly any kind of application.
Programming language surveys consistently rate Python the single most popular programming language -- interpreted or compiled -- for the past several years.
This chart shows how Python is winning the popularity race over all other programming languages, including Java and C/C++:
If popularity indicates value to your career, Python wins the prize.
That said, I know people who have made fine careers for themselves by staying away from the most popular languages and instead burrowing into a critical niche. Some companies pay a premium for hard-to-find skills. You might also find greater job security if you're an expert in a niche technology.
If you're interested in how different programming languages correspond to salaries, check out Stack's Annual Developer Survey.
From their humble origins as command and shell languages, today's scripting languages support nearly all kinds of applications and run literally everywhere. The most popular programming language in the world today is a scripting language, Python.
Let's wrap up with brief profiles of popular scripting languages:
Free download of the authoritative up-to-date book on the Rexx scripting language -- Rexx Programmer's Reference, 2nd Edition (2025).
--------------------------------
Back to
RexxInfo.org
====> Like this article? Spread the link love to Slashdot, LXer, or wherever!