Automation is defined as carrying out a set of predefined procedures to achieve a specific outcome. Introduction of engineering automation can be dated back to the time when command-line interfaces (CLIs) were overtaken by graphical user interfaces (GUIs). Automation has passed technical barriers from engineering to medicine to commerce to entertainment.
Automation is necessitated due to the infinite amount of data being spilled over by the information age. Every data set has different specs, requirements, objectives and outcomes. Fig. 1 sheds some light on the various automations embedded in our lives.
Scripting languages like Python, TCL, PHP, Perl and PowerShell are utilised in all fields of engineering. These provide a basis for you to carry out complex tasks easily. These languages are sometimes referred to as very-high-level languages, as these are used to direct various tools and software to work.
Scripting languages are commonly interpretable rather than compilable. Primitive scripting can be seen in the form of Windows batch files (.bat), which run a set of codes sequentially to perform a task from opening MSPaint to shutting down Windows.
User interfaces inherently use scripts. A simple example to summarise scripts for automation is a single-line batch file as shown in Fig. 2. The file, when executed, copies all .png images from an external device on G:\ to C:\images\ with one click.
In electronics, integrated circuit (IC) designs require scripts to translate designs from one technology to another. An often-used script is Tool Command Language (TCL). Timing analysis, power analysis and floor planning all require scripts to analyse the behaviour of complex circuits being cramped into smaller semiconductor dies to satisfy Gordon Moore’s first law.
Embedded systems use small scripts to embed more functions, thus blurring the barriers between general-purpose systems and application-specific systems—smartphones are the best example of this transition.
With the introduction of the Internet of Things (IoT), embedded systems have entered a new era. Crunching large data (Big Data) provided by millions of IoT devices is a task simplified by Python scripting. Sensors and actuators with networking capability being put on a single board require scripts to operate. MicroPython is an example being utilised by various designers.
In information technology, Python is one of the scripting languages used for carrying out tasks from local machines to servers and the Internet. Perl, PowerShell and other scripting languages help testing and debugging errors from programs. Scripts help automate the process of searching and suggesting solutions for syntax or semantic errors. Data crunching and providing meaningful results is possible with minimal efforts using scripts.
Architectures, structures and buildings are designed using computer-aided technologies like computer-aided design and computer-aided manufacturing tools. Tools like SolidEdge and AutoCad use VBscripts for designs.
In the article ‘Scripting: Higher Level Programming for the 21st Century,’ from IEEE Computer magazine, March 1998 issue, John K. Ousterhout describes how scripting languages glue applications. Interdisciplinary researches require coding, which is indifferent across applications, hence reducing the necessary time to market for products.
Fig. 3 by John K. Ousterhout describes the functionality of different computer languages. In a strongly-typed language, the programmer declares how each piece of information will be used, and the language prevents the information from being used in any other way. Instructions/statements present the number of machine instructions carried out by a particular statement.
As illustrated in the earlier batch file, scripting languages need not work from scratch for application development as opposed to programming languages that are more suited for dictating algorithms and procedures. A script assumes that useful components are already present in some other language and it has to plug together the components. The IoT, artificial intelligence, machine learning and robotics are spilling new interdisciplinary areas.
Automation snooping into commerce and entertainment is providing better customer experience, which otherwise would be a very tedious task. As quoted by Thomas Devenport and Julia Kirby from ‘Beyond Automation’, Harvard Business Review, June 2015 issue, automation is seen as a concern to human jobs because of the path travelled in the three eras, discussed next.
Three eras of automation
If this wave of automation seems scarier than previous ones, it is for good reason. As machines encroach on decision making, it is hard to see the higher ground to which humans might move.
Era One: 19th century.
Machines take away the dirty and dangerous—industrial equipment, from looms to cotton gin, relieves humans of onerous manual labour.
Era Two: 20th century.
Machines take away the dull—automated interfaces, from airline kiosks to call centres, relieve humans of routine service transactions and clerical chores.
Era Three: 21st century.
Machines take away decisions—intelligent systems, from airfare pricing to IBM’s Watson, make better choices than humans, more reliably and faster.