SenseTalk is an intuitive, People Oriented Programming language designed to be both readable and expressive. Being readable makes it easier for a person unfamiliar with a particular script (or even with programming in general) to understand what the script does. Being expressive allows people to describe actions to be taken using high-level human-task-oriented terms rather than in terms of the low-level operations the computer must perform to carry out those tasks.
|Paradigm||People Oriented Programming, Multi-paradigm, Object-oriented|
|Designed by||Douglas Simons|
2.00 / April 1, 2020
SenseTalk is the primary exemplar of People Oriented Programming, embodying the principles of Intuitive Programming (readable and writable) together with being Task Oriented (very high level) and Human Centric (aligned with human thinking).
Readable — SenseTalk’s readability stems from several factors. It is a very English-like language. It uses familiar terms for familiar things, and familiar symbols in familiar ways.
Writable — SenseTalk supports writability first by being readable and English-like, but also by being very flexible. In many cases, a command, function, or operator can be written in multiple ways. This makes it easy for a user scripting in SenseTalk to write a command without necessarily remembering the exact syntax that is needed.
SenseTalk further supports writability by striving for consistency in concepts and approaches to different areas of functionality. For example, the chunk syntax used for accessing chunks of text extends to lists and trees as well.
A language that is readable and writable is an Intuitive Programming Language — even a person who is unfamiliar with the language will intuitively understand a script if it is clearly readable. And once a person gains a basic familiarity with the language, if it is sufficiently writable they will be able to apply what they know and “guess” at how to write commands to perform tasks that they’ve never done before, and frequently have them “just work”.
The SenseTalk language first appeared in 1992 as the scripting language in HyperSense, a multimedia authoring application for the NextStep platform, modeled after HyperCard. At that time the language was little more than copy of HyperCard's HyperTalk language. A more ambitious rethinking and redesign of the language resulted in the beginnings of the present language, with version 0.02 shipping as the scripting language in Eggplant V1.0 in 2002. The language has continued to grow and evolve, becoming more People Oriented over time, with such enhancements as the addition of support for:
- each expressions (similar to "list comprehensions" in other languages) in V1.26 (2007)
- tree data structures (native XML support) in V1.30 (2008)
- iterators in V1.36 (2008)
- ranges in V1.38 (2009)
- direct support for HTTP and XML-RPC in V1.53 (2012)
- SQL databases in V1.63 (2013)
- units in V1.67 (in 2014)
- the SenseTalk Pattern Language (readable regular expressions) in V1.81 (2018)
- date formats with readable tokens in V1.91 (2019)
- multi-case if statements in V2.00 (2020)