This is an old revision of the document!
Table of Contents
The Syndicated Actor Model (SAM)
This information is provided by someone familiar with SAM but little knowledge of Folk. Some claims about Folk may be regrettably inaccurate.
The Syndicated Actor Model (SAM) is a system for working with software actors that is convergent with Folk.
SAM is not a single program or library but a data language and protocols with a set of implementations for different languages. There is a common set of features with each language as varying in how much of the feature set is supported. Implementations with a simple feature set use the Syndicate protocol to communicate with actors in other languages that provided missing functionality.
Similarities
Universe of knowledge
Folk has a Database of statements and SAM Dataspaces of asserted facts.
Tcl
Folk is primarily written in Tcl and SAM has a basic Tcl implementation.
Reactive paradigm
Both use a reactive programing paradigm:
# Folk
When $program has resolved geometry /geom/ {
Claim $editor has resolved geometry $geom
}
# Sycl
during "<resolved-geometry $program @geom #?>" {
assert "<resolved-geometry $editor $geom>"
}
Differences
Composition
Folk is composed as a Tcl program. SAM is a composition of actors conversing using the Syndicate protocol.
Data
Folk uses statements built from tokens. SAM uses the Preserves data language and relies on compound values such as lists, records (<some-label some fields …>), dictionaries, and sets.
Tokens
SAM has distinct text-string, byte-string, and symbol data types, which is a pain to deal with in Tcl. Folk uses Tcl values.
