~~NOTOC~~
====== Downloading/Installing AmbientTalk ======
===== AmbientTalk/2 =====
{{ atlogo.jpg?90|AmbientTalk}} AmbientTalk/2 is the latest incarnation of the AmbientTalk programming language. The language can best be described as 'a language for scripting your PDA'. The language has been designed to implement distributed applications for mobile networks. The language provides built-in support for concurrency (actors), distributed message passing, peer-to-peer discovery, partial failure handling, ...
AmbientTalk/2 has been designed to co-exist with available Java programs. It offers a symbiotic interface to the Java language, making it possible to instantiate and use Java objects from within AmbientTalk, and to pass AmbientTalk objects that implement a Java interface to the Java level. This makes AmbientTalk an ideal language to write 'distributed glue code' to make isolated Java programs talk to one another.
To get started with AmbientTalk programming, we recommend installing our Intellij IDEA plugin (see IDE support).
Install Intellij IDEA Plugin
==== Download the AmbientTalk Distribution ====
If you are interested in downloading a stand-alone version of the AmbientTalk/2 interpreter and run it via command line:
Download AmbientTalk 2.23
See the [[https://gitlab.soft.vub.ac.be/ambienttalk/ambienttalk/wikis/Change-Log|changelog]] for changes w.r.t. previous versions.
This build contains:
* The AmbientTalk/2 Interpreter
* iat, the Interactive AmbientTalk Shell
* The AmbientTalk standard library
== Installation and Usage ==
To run the interactive shell, it suffices to launch the included ''iat'' shell script. IAT is a simple read-eval-print loop: statements are typed at the command line, evaluated and the result is printed to standard output. Note that the log and error traces are piped to the console.
For an overview of the iat shell options, execute:
iat --help
The system library shipped with the build can be found in the ''at/'' directory. It includes, among others, some demo applications and additional language constructs (most notably future-type asynchronous message sends). Also, the file ''at/init/init.at'' is loaded by default in each actor created at runtime to intialize that actor's global scope.
We advise you to add ''iat'' to the ''$PATH'' environment variable, such that ''iat'' can be invoked from any directory. Note also that ''iat'' assumes that the ''java'' executable is available on the ''$PATH''
**Note to windows users:** ''iat.bat'' has been reported not to work when the ''AT_HOME'' directory contains spaces, so consider placing your AmbientTalk distribution in a directory that does not contain spaces.
For service discovery, AmbientTalk makes use of IP multicasting. AmbientTalk broadcasts messages to IP 224.0.0.1 on port 4446. Make sure your firewall does not block this port.
== Requirements ==
The AmbientTalk/2 interpreter is written in pure Java and requires a regular J2SE Java Virtual Machine supporting version 1.5 or higher. AmbientTalk currently runs on Android version 1.6 or higher, and on J2ME under a CDC/Personal Profile configuration.
[[at:amophtc|Additional instructions]] on how to run AmbientTalk on J2ME.
==== IDE Support ====
We recommend using our Intellij IDEA plugin which already contains the AmbientTalk/2 interpreter and the AmbientTalk standard library (atlib).
Install Intellij Plugin
For Mac OS X users that use TextMate, there exists a [[http://www.macromates.com|TextMate]] bundle for AmbientTalk/2, which is available for download below.
The TextMate plugin supports:
* Source code colouring
* Autocompletion for statements such as ''if'', ''def'' etc. (by pressing TAB)
* Running AmbientTalk/2 scripts by pressing Apple+R (output is shown in a separate window)
Download TextMate Plugin
Please note: upon installing the bundle, you need to set the ''AT_HOME'' variable in the TextMate Preferences window (under the Advanced tab pane) to point to the directory in which iat can be found.
For a full overview of the supported features, open the Bundles > Bundle Editor > Show Bundle Editor menu and select the AmbientTalk 2 bundle in the bundle editor. All available actions, together with their hotkey are listed there.
==== Documentation ====
See the [[at:tutorial:tutorial|tutorial]] for an introduction to AmbientTalk/2. An overview of the available primitives and libraries is available in the [[at:reference:reference|language reference]].