9 Scripting Languages You Need To Know
Scripting languages can bring new functions to applications and glue complex systems together. Here are nine that could hold the keys to your next project.
![](https://eu-images.contentstack.com/v3/assets/blt69509c9116440be8/blt6a69fc19d5cc832c/64cb496a2a060bb8cc47da41/Image-1.jpg?width=700&auto=webp&quality=80&disable=upscale)
When you need to order a computer around at the hardware level, nothing beats a good programming language. Sometimes, though, you just need to make something happen and you don't care how many layers come between your command and the computer's response. When that's the case, a scripting language can be your best friend.
Scripting languages aren't new. They've been around since the glory days of the mainframe. Even then, they made things happen by bossing other software around. It might have been the operating system, a job loader, or another application, but the result was the same -- a set of operations completed to produce the desired results.
The nine scripting languages here are most similar in their importance and familiarity. Each is likely to have special significance for a different group of IT professionals, the differences showing up in the systems used (and sometimes in the era when a professional learned his or her profession.)
For example, if you have distinct memories of keeping decks of JCL punched cards wrapped by rubber bands in your Samsonite briefcase, then you've just established the age during which you learned to code. (My briefcase, by the way, was the thinner, light-brown model, and I kept my JCL decks close to my green IBM flow-chart template. Get off my lawn.)
Scripting languages have proven their utility by sticking around. Javascript and PHP are heavily used today, and you'll be hard-pressed to find a working Unix admin who doesn't have a stash of Bash scripts at her or his disposal.
Let's take a look at these languages and the times when they might be useful -- if for nothing more than sparking nostalgic conversation.
[Welcome to InformationWeek.com]
As the editorial team, we hope you find your visit to be informative. While you are here, we hope you will explore the information resources available throughout the site. InformationWeek is a trusted source of advice, news and commentary for IT leaders in enterprise organizations, all for free.
Please check out the latest content on our home page: InformationWeek.com, and in our technology and management sections, including:
Data Management -- Analytics and AI
To register as a site member and subscribe to our newsletters click here.
IBM's Job Control Language (JCL) was the basic tool for moving data, dealing with cost allocation, and invoking applications in the early days of the 360-series mainframe -- and it's doing the same job today. In its early incarnations JCL was a comma-delimited language that was considerably easier for machines to understand than for humans to write, a situation that reflected the relative importance and cost of the two resources. Today, it's easier for humans to deal with and much more interactive, but it's still a central part of the mainframe experience for thousands upon thousands of admins and programmers.
One thing that hasn't changed for JCL is that it is, essentially, a control language for batch jobs. In our always-on, instant-gratification world it's hard for some people to imagine that there are still batch jobs, but any organization with the sort of IT demands that need a mainframe still has plenty of tasks that are run via batch jobs. Wherever there's a batch job, there you'll find JCL.
The REstructured eXtended eXecutor (Rexx) is another scripting language from IBM, but "scripting language" seems rather incomplete to describe what's going on with this one. Written by an IBM programmer in the early 1980s, Rexx leans heavily on PL/I for its structure. The result is a language originally intended as a mainframe scripting-language replacement that has become a compiled language, an interpreted language, and a scripting language available on scores of different platforms.
Rexx is so flexible that it was included as a standard language on the most powerful IBM mainframes, and in the Commodore Amiga at the same time. Rexx is still going strong. It's difficult to find an operating system for which a version of Rexx is not available. It is also frequently used in Common Gateway Interface (CGI) programming. If you're casting about for a useful scripting language to learn today, Rexx is a very solid candidate.
OK, follow me on this one: Bash is the Bourne-Again SHell, the command shell that's part of GNU Unix (and a lot of other systems, including Linux and OS X). It is also the language that is used to write scripts that are used to command processes within that shell -- and that's why it's here.
Bash was created because a command shell was needed for the Free Software Foundation's version of Unix, and the Bourne shell included in commercial Unix wasn't available because of licensing issues. The name of the free shell was a pun on the existing shell, and the syntax of the Bash command language is a superset of the Bourne command language. In broad terms, if you know one, you can be functional in both.
If you live and work in the Unix/Linux world, then you're probably already conversant in Bash. If you work in Windows, OS X, or Android and you're looking for a way to automate system-level tasks, then Bash could be the alternative you're looking for.
The Tool Command Language (Tcl) was developed by John Ousterhout, a professor at Berkeley, in the late 1980s. It was designed to be a language used in embedded systems, and it's still used by many engineers for rapid prototyping and process control in a wide variety of systems.
Tcl has a very simple syntax in which everything is a command. It can be very powerful with new keywords and commands defined in libraries that are called at the time of execution. That definition flexibility also allows a careless programmer to do silly things like change control constructs, so a bit of restraint can be a very good thing.
If you're looking for a solid scripting language to control an IoT project, Tcl is a great candidate. It's widely used, widely known, and built to make machine control easy and straightforward.
Perl is neither pretty nor elegant, but it's absolutely vital to many of the websites and applications that make up the Internet. Developed in the late 1980s as a scripting language for enterprise report generation, Perl began as a system with strong text-handling and string-handling capabilities. It has kept those and added other features as it has become one of the default languages for scripting CGI. Perl and the scripts developed to use it won't win any beauty contests -- but they will probably be the power behind any website that features the winning languages.
Here's a telling fact about PHP: One of the most common scripting languages on websites had been in use for almost 20 years before anyone started work on a formal specification. Originally developed as a set of CGI macros by one of CGI's original developers, PHP was a useful tool that just … grew.
PHP is a server-side scripting language. That means it is written to call and deliver data of various sorts from a server -- most often a Web server. It is also (in its canonical implementation) interpreted, which means that PHP can be the source of performance limitations in an application. There are ways around those limitations (compiled versions and various sorts of caches), but those solutions tend to come with compatibility issues, so be careful.
If you're building a Web application that calls for information from a database, you're probably going to be using PHP. Embrace the chaos. Just be sure you're using the latest version for the best security and performance.
Once upon a time there was a visual scripting language called HyperCard. It was the embodiment of everything that made the Macintosh unique and odd in the computing world. HyperCard is no more (well, not in any sort of officially supported way), but its scripting functions -- originally called HyperTalk -- for getting applications to pass information back and forth, and work together as a system, live on in AppleScript.
AppleScript is a piece of the total scripting capability of the Mac OS X that works along with Shell scripts, Automator, and Services. One of the interesting features of AppleScript is that you don't actually have to do any programming. If you want to automate a repetitive set of actions, you can have AppleScript record the actions and build a script for you. If you have a Mac and want an easy way to get into scripting, AppleScript offers the simplest of baby steps toward programming.
Visual Basic is a fully featured, stand-alone language that is part of Microsoft's complete developer toolkit. If you take the features of Visual Basic and restrict them to operate solely within and between Microsoft applications, then you have Visual Basic for Applications (VBA).
If you want to automate the process of creating a report in Microsoft Word from data held in a Microsoft Excel spreadsheet, then VBA is the Microsoft tool for you. This is true even if you're running Microsoft Office on a Macintosh. VBA is available there, too.
VBA is a powerful tool for making Office applications perform complex operations. But the primary caveat is security. If someone is not working on authorized scripts, then VBA should be turned off or severely restricted to make sure that power isn't turned against the enterprise.
None of the other scripting languages in this slideshow is as ubiquitous as JavaScript. It is one of the programming pillars of the modern Web. It's supported by nearly every browser, and it's used by millions of websites around the world. The structure of JavaScript in its original mid-1990s form owed a great deal to C. Today, it has become more object-oriented, and it has extended in nearly every imaginable direction through plug-ins and add-ons.
Anyone seriously interested in developing Web pages simply must learn JavaScript. Even the new features of HTML5 won't remove JavaScript from the list of required languages. Pick up a reference, learn the language, and then expand your scripting skills with one or more of the other languages on this list.
That's the list. Which great scripting language did I leave off? I'd love to hear your scripting stories and know whether you still depend on scripting languages in your development work. Let me know. I'll see you in the comments.
None of the other scripting languages in this slideshow is as ubiquitous as JavaScript. It is one of the programming pillars of the modern Web. It's supported by nearly every browser, and it's used by millions of websites around the world. The structure of JavaScript in its original mid-1990s form owed a great deal to C. Today, it has become more object-oriented, and it has extended in nearly every imaginable direction through plug-ins and add-ons.
Anyone seriously interested in developing Web pages simply must learn JavaScript. Even the new features of HTML5 won't remove JavaScript from the list of required languages. Pick up a reference, learn the language, and then expand your scripting skills with one or more of the other languages on this list.
That's the list. Which great scripting language did I leave off? I'd love to hear your scripting stories and know whether you still depend on scripting languages in your development work. Let me know. I'll see you in the comments.
-
About the Author(s)
You May Also Like