SenseTalk
An English-like, people-oriented scripting language in the XTalk family, designed by Douglas Simons and best known today as the scripting language of the Eggplant test-automation tools
Created by Douglas Simons
SenseTalk is a high-level, English-like scripting language in the XTalk family — the lineage of languages descended from Apple’s HyperTalk. Designed primarily by Douglas Simons, it is built around a simple but ambitious goal: scripts should be largely readable by ordinary people, including those with little or no programming training. Today SenseTalk is best known as the scripting language inside the Eggplant suite of test-automation tools, where testers write natural-sounding instructions that drive entire applications.
History & Origins
SenseTalk first appeared in 1992 as the scripting language of HyperSense, a multimedia authoring application for the NeXTSTEP platform that was modeled closely on Apple’s HyperCard. In that earliest form the language was little more than a re-implementation of HyperCard’s HyperTalk, carrying over its conversational style and its signature chunk expressions for slicing text into characters, words, items, and lines.
A more ambitious rethinking followed. The redesigned language re-emerged in 2002, when SenseTalk (then at version 0.02) shipped as the scripting language of Eggplant V1.0. Eggplant was developed at Redstone Software in Boulder, Colorado, by a team that included Douglas Simons along with Jonathan Gillaspie and John McIntosh. Eggplant’s defining idea was to test software the way a human does — by looking at the screen via image recognition and interacting with what it sees — and SenseTalk became the readable language in which those interactions were expressed.
Ownership of the technology changed hands as it matured. In 2008, Redstone Software was acquired by the UK-based TestPlant, which later rebranded itself as Eggplant. In 2020, Keysight Technologies acquired Eggplant (a deal reported at roughly $330 million), and SenseTalk continues today as the scripting engine of Keysight’s Eggplant test-automation products.
A common point of confusion: despite the similar name, SenseTalk is unrelated to Smalltalk. The two share only the fact that both are object-oriented; SenseTalk’s heritage is HyperTalk and the XTalk family, not the Smalltalk lineage.
Design Philosophy
SenseTalk’s creator describes it as a “people-oriented” programming language — one whose syntax deliberately resembles plain English so that the gap between describing what you want and writing the code to do it is as small as possible. Where a conventional language might require if x > 10 then, SenseTalk happily accepts phrasings closer to natural speech, and it tolerates a range of equivalent wordings for the same intent.
This philosophy shows up throughout the language:
- Case-insensitive keywords and variable names, so authors are not tripped up by capitalization.
- Typeless, “fluid” variables that can hold a number at one moment and a string the next, with the language converting between representations as needed (a form of duck typing).
- Readable expressions of intent, such as date and time values recognized in many human formats, and a Pattern Language that offers a human-friendly alternative to terse regular-expression syntax.
The result is code that often reads almost like documentation, which is precisely the point for its primary audience: testers and domain experts rather than career software engineers.
Key Features
| Feature | What it provides |
|---|---|
| English-like syntax | Conversational statements designed to be read and written by non-programmers |
| Chunk expressions | Address text by character, word, item, line, and more — inherited from HyperTalk |
| Fluid (typeless) variables | Values change type as needed, with automatic conversion and duck typing |
| Units of measurement | Length, mass, time, velocity, and other units as first-class values |
| Date & time handling | Recognition and arithmetic across many human-readable date/time formats |
| Files as containers | Read and write files using the same container idioms used for variables |
| Pattern Language | A readable alternative to regular expressions for matching and extraction |
| Property lists | Dictionary/hash-table structures for keyed data |
| XML / tree structures | Native handling of hierarchical data |
| Network access | HTTP and XML-RPC support for web and service interaction |
| Database access | Connectivity via ODBC |
Evolution
Although its roots are in early-1990s multimedia authoring, SenseTalk has been continuously developed as a modern scripting language since the Eggplant era began in 2002. Its version history traces a steady accumulation of capabilities: each expressions for concise iteration (v1.26, 2007), native XML/tree structures (v1.30, 2008) and iterators (v1.36, 2008), HTTP and XML-RPC support (v1.53, 2012), first-class units of measurement (v1.67, 2014), the readable Pattern Language (v1.81, 2018), and multi-case if statements in the 2.0 series (2020). Version 2.23 has been documented as a recent release around 2025.
These additions reflect SenseTalk’s gradual transformation from a HyperCard-style authoring language into a full-featured automation language — gaining the networking, data-handling, and pattern-matching features needed to script real-world test workflows, while never abandoning its readable surface.
Current Relevance
SenseTalk’s relevance today is tightly bound to Eggplant, now part of Keysight Technologies. Eggplant Functional uses image-based interaction — it sees and acts on what appears on screen — which lets a single SenseTalk script test desktop, web, mobile, and embedded software regardless of the underlying technology stack. Because the scripts read like plain instructions, teams can involve testers and subject-matter experts who would be excluded by a more conventional automation language.
As a proprietary language distributed with commercial tooling, SenseTalk does not have the sprawling open-source ecosystem of a mainstream scripting language. Its community centers on Eggplant’s users and documentation, with a presence on Rosetta Code offering publicly visible examples. SenseTalk source files typically use the .script or .st extensions.
Why It Matters
SenseTalk is a living example of a recurring idea in computing: that programming can be made approachable through natural language. It carries the HyperTalk philosophy — accessible, conversational, readable scripting — out of the HyperCard era and into a modern, commercially supported tool. In doing so it demonstrates that the “English-like language” experiment, often associated with the 1980s and the XTalk family, can remain genuinely useful decades later when aimed at the right audience: people who need to automate software without becoming full-time programmers.
Timeline
Notable Uses & Legacy
Eggplant Functional (Keysight Eggplant Test)
SenseTalk is the scripting language of Eggplant Functional, an automated functional-testing tool that drives applications through image recognition rather than UI internals, letting a single SenseTalk script test virtually any technology on any platform
HyperSense
The language's original home: a HyperCard-inspired multimedia authoring application for NeXTSTEP, where SenseTalk provided the scripting layer for interactive stacks
Cross-platform UI test automation
Because Eggplant interacts with applications visually, organizations use SenseTalk to write tests that span desktop, web, mobile, and embedded systems with the same readable script
Test scripting for non-programmers
SenseTalk's English-like, 'people-oriented' design is used to let testers and subject-matter experts with little formal programming background author and maintain automated test scripts
Rosetta Code
SenseTalk has a category on Rosetta Code where contributors have implemented programming tasks, providing a public catalog of idiomatic SenseTalk solutions