User Tools

Site Tools


at:tutorial:preface

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
at:tutorial:preface [2007/07/11 08:43] – * tvcutsemat:tutorial:preface [2025/06/19 16:04] (current) – [History and design rationale] elisag
Line 11: Line 11:
 The AmbientTalk language described in this tutorial is actually AmbientTalk/2, a successor of the original 2005 implementation by Jessie Dedecker. Although AmbientTalk/1 was successful in terms of providing novel language features for mobile ad hoc networks, it lacked several important language features that hampered the development of larger software applications (e.g. a module system, exception handling, etc.) The AmbientTalk language described in this tutorial is actually AmbientTalk/2, a successor of the original 2005 implementation by Jessie Dedecker. Although AmbientTalk/1 was successful in terms of providing novel language features for mobile ad hoc networks, it lacked several important language features that hampered the development of larger software applications (e.g. a module system, exception handling, etc.)
  
-In 2006, Tom Van Cutsem and Stijn Mostinckx started the AmbientTalk/2 project, which resulted in the present version of AmbientTalk. They redesigned most aspects of the original language, including the syntax, to make AmbientTalk more accessible to people unfamiliar with the Pico language. AmbientTalk/2's main purpose is still to be used as a research artifact for PhD students at the programming technology lab. On the other hand, from the beginning AmbientTalk/2 was conceived as a usable, practical programming language, which could be used to construct large and real-life software. This design decision motivated the inclusion of such features as a module system and symbiosis with the underlying Java Virtual Machine, for example.+In 2006, Tom Van Cutsem and Stijn Mostinckx initiated the AmbientTalk/2 project, which led to the current version of AmbientTalk. They redesigned most aspects of the original language, including the syntax, to make AmbientTalk more accessible to people unfamiliar with the Pico language. AmbientTalk/2's main purpose is still to be used as a research artifact for PhD students at the programming technology lab. On the other hand, from the beginning AmbientTalk/2 was conceived as a usable, practical programming language, which could be used to construct large and real-life software. This design decision motivated the inclusion of such features as a module system and symbiosis with the underlying Java Virtual Machine, for example.
  
 Perhaps the most significant change from AmbientTalk/1 to AmbientTalk/2 is the incarnation of actor concurrency in the language. In AmbientTalk/1 - inspired by other actor languages such as ABCL/1 - actors were represented as distinct so-called //active objects//, and the language explicitly distinguished those active objects from ordinary, passive objects. AmbientTalk/2, on the other hand, is based on the notion of actors as "vats" or "containers" of ordinary objects as introduced in the [[http://www.erights.org|E programming language]]. As you will read in the subsequent chapters of the tutorial, this design change shifted the emphasis from actors back onto regular objects, which in the general case makes AmbientTalk/2 programs more reusable and easier to understand. Perhaps the most significant change from AmbientTalk/1 to AmbientTalk/2 is the incarnation of actor concurrency in the language. In AmbientTalk/1 - inspired by other actor languages such as ABCL/1 - actors were represented as distinct so-called //active objects//, and the language explicitly distinguished those active objects from ordinary, passive objects. AmbientTalk/2, on the other hand, is based on the notion of actors as "vats" or "containers" of ordinary objects as introduced in the [[http://www.erights.org|E programming language]]. As you will read in the subsequent chapters of the tutorial, this design change shifted the emphasis from actors back onto regular objects, which in the general case makes AmbientTalk/2 programs more reusable and easier to understand.
  
-Today, AmbientTalk/is being maintained by a number of PhD students and postdoctoral fellows of the [[:people|ambient research group]] of the programming technology lab. The language is still being used as a research vehicle, although it is accessible to the general public and can be used to develop realistic distributed applications.+Since 2014, AmbientTalk/has been maintained by [[https://soft.vub.ac.be/disco/|Prof. Dr. Elisa Gonzalez Boix]] and her PhD students and postdoctoral fellows. The language is still being used as an educational vehicle in the Master Computer Science program at VUB. It remains accessible to the general public and can be used to develop realistic distributed applications through [[https://plugins.jetbrains.com/plugin/17635-ambienttalk# |the IntelliJ plugin]].
  
 ==== About this tutorial ==== ==== About this tutorial ====
Line 21: Line 21:
 The tutorial introduces the AmbientTalk programming language from its basic building blocks (functions, objects, messages) up to its advanced distribution model (remote objects, discovery, failure handling). The tutorial is not a comprehensive reference manual that tries to give the precise semantics of all of AmbientTalk's language features. Rather, it tries to give the reader hands-on experience in using the main features of the language in an example-driven manner. The tutorial introduces the AmbientTalk programming language from its basic building blocks (functions, objects, messages) up to its advanced distribution model (remote objects, discovery, failure handling). The tutorial is not a comprehensive reference manual that tries to give the precise semantics of all of AmbientTalk's language features. Rather, it tries to give the reader hands-on experience in using the main features of the language in an example-driven manner.
  
-The tutorial is subdivided into different chapters that each highlight different aspects of the language. Sometimes the cohesion within one chapter is very high. For examplethe chapter on object-oriented programming gives an overview of a number of language features that are all related to one another. Sometimes, different sections of a chapter are not directly related (e.g. the chapter on modular programming).+The tutorial is subdivided into different chapters that each highlight different aspects of the language. It is recommended to read through the tutorial sequentiallyalthough this does not preclude a reader interested in concurrency and actors to read that chapter early on, and then get back to previous chapters when things are unclear.
at/tutorial/preface.1184136183.txt.gz · Last modified: 2007/07/11 08:45 (external edit)