Smile (software)

Smile is a free Macintosh computer programming and working environment based on AppleScript. It is primarily designed for scientists, engineers, desktop publishers, and web applications developers to help them automate frequent tasks and control complex operations.

History
Smile was first released in 1995 as SMILE (in upper case). The acronym stood for SMI, Limited Edition, with SMI standing for Scriptable Measurements on Images. SMI is a software developed by Satimage Software, a French company engaged in machine vision technology, to automate real-time measurement and inspection systems for industrial plants.

SMI is the core engine, which is written in C/C++ that alone does nothing: it requires an interface, and that interface's behavior is programmed in AppleScript. SMI's core implements the key features of the software and publishes them to AppleScript. Basically, Smile is just SMI, without real-time video processing features.

The need for 2D and 3D real-time visualization (of the measurements) gave rise to SmileLab. More recently, web-based control of facilities has become a standard, and Smile is now also a web applications server and a web browser.

Smile
The technologies included in Smile:
 * AppleScript Terminal windows,
 * an AppleScript editor with many helpers,
 * an editor of scripted interfaces,
 * a web browser,
 * a proprietary URL protocol to make HTML interfaces and have them send events to scripts,
 * a text editor for ASCII and Unicode, with a search-and-replace tool supporting Regular Expressions,
 * a XML editor,
 * a Regular Expression engine,
 * an XML and p-list engine,
 * a 2D graphic engine, to program vector PDF graphics by script,
 * fast mathematical commands on numbers, arrays and matrices,
 * commands for driving industrial interfaces: RS-232 serial communication, digital I/O, LED display,
 * a smile software for editing,
 * TextExpander (5.1.2).

SmileLab
Smile provides an Aqua interface to make any data graph "manually" and libraries of commands to make graphs and process data via scripts (SmileLab can display at any moment the script corresponding to the user's action.)

Performance
Computational extensions can be written in C or C++. Smile handles common file formats, but extensions for unsupported file formats can be added.

Smile Server
Smile Server is a bridge between a CGI program and AppleScript. This works by Smile opening a server port. A specific CGI, included, makes an HTTP reques t into a p-list (Apple's associative array XML format) and sends it to Smile Server on that port (specified in a configuration file). Asynchronous as well as synchronous behaviours are implemented, allowing Smile Server to be used as an alternate solution to .asp or .php to build dynamic sites, including AJAX-based websites.

Smile also handles XML-RPC requests.