AmbientTalk | |
Paradigm: | object-oriented (prototype-based), Concurrent, Event-driven, Reflective |
Year: | 2006 |
Designer: | Tom Van Cutsem, Stijn Mostinckx, Jessie Dedecker, Wolfgang De Meuter |
Developer: | Software Languages Lab, University of Brussels |
Latest Release Version: | 2.19 |
Latest Release Date: | April 2011 |
Typing: | dynamic, strong |
Implementations: | AmbientTalk (interpreter) |
Influenced By: | Smalltalk, Self, Scheme, E, ABCL |
Influenced: | ECMAScript Harmony |
Operating System: | Platform-independent |
License: | MIT License |
File Ext: | .at |
AmbientTalk is an experimental object-oriented distributed programming language developed at the Programming Technology Laboratory at the Vrije Universiteit Brussel, Belgium. The language is primarily targeted at writing programs deployed in mobile ad hoc networks.
AmbientTalk is meant to serve as an experimentation platform to experiment with new language features or programming abstractions to facilitate the construction of software that has to run in highly volatile networks exhibiting intermittent connectivity and little infrastructure.[1] It is implemented in Java which enables interpretation on various platforms, including Android. The interpreter standard library also provides a seamless interface between Java and AmbientTalk objects, called the symbiosis.
The language's concurrency features, which include support for futures and event-loop concurrency, are founded on the actor model and have been largely influenced by the E programming language. The language's object-oriented features find their influence in languages like Smalltalk (i.e. block closures, keyworded messages) and Self (prototype-based programming, traits, delegation).
system.println("Hello world");
The classical "Hello, World!" program is not very representative of the language features. However, consider its distributed version:
def makeGreeter(myName) ;
/* Spawn 2 actors that will greet each other */makeGreeter("Alice");makeGreeter("Bob");