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: AmbientTalk official site. Open-source interpreter.

Web 2.0

Enterprise 2.02.0Web2.0
Since both of these formats are natively understood by JavaScript, a programmer can easily use them to transmit structured data in their Web application. When this data is received via Ajax, the JavaScript program then uses the Document Object Model to dynamically update the Web page based on the new data, allowing for rapid and interactive user experience. In short, using these techniques, web designers can make their pages function like desktop applications. For example, Google Docs uses this technique to create a Web-based word processor.

Ruby on Rails

RailsRubyRuby on Rails Active Record Migration
On April 15, 2016, Near reported that an analysis of 50 popular Web applications using Space uncovered 23 previously unknown security flaws. * * Rails API The Rails Tutorial – The Ruby on Rails Tutorial book and screencast series teach you how to develop and deploy Ruby on Rails apps. Rails source code. Rails guides. Rails API.

Form (HTML)

formweb formweb forms
Perl CGIs were once a very common way to write web applications. However, many web hosts today effectively only support PHP, and developers of web applications often seek compatibility with them. A modern Perl 5 CGI using the CGI module with a form similar to the one above might look like: Among the simplest and most commonly needed types of server-side script is that which simply emails the contents of a submitted form. This kind of script is frequently exploited by spammers, however, and many of the most popular form-to-email scripts in use are vulnerable to hijacking for the purpose of sending spam emails.

Io (programming language)

Actor-based concurrency. Coroutines. Exception handling. Incremental garbage collecting supporting weak links. Highly portable. DLL/shared library dynamic loading on most platforms. Small virtual machine. Io home page. Io at Synrc Research Center. Jasmine.Io BDD Testing Framework for Io.

Dynamic web page

client-side scriptingdynamic contentdynamic web content
All of the client and server components that collectively build a dynamic web page are called a web application. Web applications manage user interactions, state, security, and performance. Ajax uses a combination of both client-side scripting and server-side requests. It is a web application development technique for dynamically interchanging content, and it sends requests to the server for data in order to do so. The server returns the requested data which is then processed by a client-side script.


ActorFoundry is a Java-based library for Actor programming. It enables writing actor programs in the usual Java syntax. It support safe (by-copy) as well as efficient (zero-copy) messaging, actor mobility, and message ordering using local synchronization constraints. The run-time provides location-independence and fairness in scheduling. It is being actively developed and maintained by the Open Systems Laboratory at the University of Illinois. ActorFoundry was originally designed and implemented by Mark Astley along with Thomas Clausen and James Waldby around 1998–2000. Mark Astley was a member of Open Systems Laboratory at that time.

D (programming language)

DD programming languageD language
D supports five main programming paradigms: imperative, object-oriented, metaprogramming, functional and concurrent (actor model). Imperative programming in D is almost identical to that in C. Functions, data, statements, declarations and expressions work just as they do in C, and the C runtime library may be accessed directly. On the other hand, some notable differences between D and C in the area of imperative programming include D's loop construct, which allows looping over a collection, and nested functions, which are functions that are declared inside another and may access the enclosing function's local variables.

Web widget

widgetwidgetsweb widgets
A web widget is a web page or web application that is embedded as an element of a host web page but which is substantially independent of the host page, having limited or no interaction with the host. A web widget commonly provides users of the host page access to resources from another web site, content that the host page may be prevented from accessing itself by the browser's same-origin policy or the content provider's CORS policy. That content includes advertising (Google's AdSense), sponsored external links (Taboola), user comments (Disqus), social media buttons (Twitter), Facebook), news (USA Today), and weather (AccuWeather).

Software as a service

SaaSsoftware-as-a-serviceSoftware as a Service (SaaS)
The growing use of web-based user interfaces by applications, along with the proliferation of associated practices (e.g., web design), continuously decreased the need for traditional client-server applications. Consequently, traditional software vendor's investment in software based on fat clients has become a disadvantage (mandating ongoing support), opening the door for new software vendors offering a user experience perceived as more "modern".

LFE (programming language)

LFELisp Flavored ErlangLisp Flavoured Erlang
Shared-nothing architecture concurrent programming via message passing (Actor model). Emphasis on recursion and higher-order functions instead of side-effect-based looping. A full read–eval–print loop (REPL) for interactive development and testing (unlike Erlang's shell, the LFE REPL supports function and macro definitions). Pattern matching. Hot loading of code. A Lisp-2 separation of namespaces for variables and functions. Java inter-operation via JInterface and Erjang. Scripting abilities with both and. LFE Quick Start. LFE User Guide. LFE on Rosetta Code. LFE User Guide. LFE on Rosetta Code.

Logic programming

logicRule-based programminglogic programming language
Arguably, concurrent logic programming is based on message passing and consequently is subject to the same indeterminacy as other concurrent message-passing systems, such as Actors (see Indeterminacy in concurrent computation). Carl Hewitt has argued that, concurrent logic programming is not based on logic in his sense that computational steps cannot be logically deduced. However, in concurrent logic programming, any result of a terminating computation is a logical consequence of the program, and any partial result of a partial computation is a logical consequence of the program and the residual goal (process network).

Mobile app

appmobile applicationapps
The concept of the hybrid app is a mix of native and web-based apps. Apps developed using Apache Cordova, Xamarin, React Native, Sencha Touch and other similar technology fall into this category. These are made to support web and native technologies across multiple platforms. Moreover, these apps are easier and faster to develop. It involves use of single code base which works in multiple mobile operating systems. Despite such advantages, hybrid apps exhibit lower performance. Often, apps fail to bear the same look-and-feel in different mobile operating systems. A web-based app is coded in HTML5, CSS or JavaScript.

Communicating sequential processes

CSPCommunicating Sequential Processes (CSP)channel
CSP processes are anonymous, while actors have identities. CSP uses explicit channels for message passing, whereas actor systems transmit messages to named destination actors. These approaches may be considered duals of each other, in the sense that processes receiving through a single channel effectively have an identity corresponding to that channel, while the name-based coupling between actors may be broken by constructing actors that behave as channels. CSP message-passing fundamentally involves a rendezvous between the processes involved in sending and receiving the message, i.e. the sender cannot transmit a message until the receiver is ready to accept it.


The feature of TNSDL is the actor model. Processes are meant to be designed as event-driven finite state machines. Inter-process communication is done by asynchronous message passing. The OUTPUT command sends a message, while INPUT statements define the expected messages. Timers, from TNSDL perspective, are delayed messages. Just like ordinary messages, timer expiration is handled by the INPUT statement. The SET command starts and the RESET command cancels a timer. State machines can be optionally used, for example, to prevent accepting certain input messages at some stage of the processing.

Web development tools

web development toolweb developmentdevtools
Profiling allows developers to capture information about the performance of a web page or web application. With this information developers can improve the performance of their scripts. Auditing features may provide developers suggestions, after analyzing a page, for optimizations to decrease page load time and increase responsiveness. Web development tools typically also provide a timeline features provides a record of the time it takes to render the page, memory usage, and the types of events which are taking place. These features allow developers to optimize their web page or web application. JavaScript is commonly used in web browsers.

Elixir (programming language)

ElixirReiaJosé Valim
Shared nothing concurrent programming via message passing (Actor model). Emphasis on recursion and higher-order functions instead of side-effect-based looping. Lightweight concurrency utilizing Erlang's mechanisms. Railway oriented programming via the construct. Built-in tooling for managing dependencies, code compilation, running tests, formatting code, remote debugging and more. Lazy and async collections with streams. Pattern matching to promote assertive code. Unicode support and UTF-8 strings. Mix is a build automation tool that provides tasks for creating, compiling, and testing Elixir projects, managing its dependencies, and more.

Web engineering

Transactional Web applications. Interactive Web applications. Workflow-based Web applications. Collaborative Web applications. Portal-oriented Web applications. Ubiquitous and Mobile Web Applications. Device Independent Web Delivery. Localization and Internationalization of Web Applications. Personalization of Web Applications. Web Metrics, Cost Estimation, and Measurement. Personalisation and Adaptation of Web applications. Web Quality. Usability of Web Applications. Web accessibility. Performance of Web-based applications. Web Content Management. Content Management System (CMS). Multimedia Authoring Tools and Software. Authoring of adaptive hypermedia.

Cloud computing

cloudcloud-basedcloud services
., web-based email), or a program interface. The consumer does not manage or control the underlying cloud infrastructure including network, servers, operating systems, storage, or even individual application capabilities, with the possible exception of limited user-specific application configuration settings." In the software as a service (SaaS) model, users gain access to application software and databases. Cloud providers manage the infrastructure and platforms that run the applications. SaaS is sometimes referred to as "on-demand software" and is usually priced on a pay-per-use basis or using a subscription fee.

Petri net

Petri netsPetri net theoryconcurrent systems
Other ways of modelling concurrent computation have been proposed, including process algebra, the actor model, and trace theory. Different models provide tradeoffs of concepts such as compositionality, modularity, and locality. An approach to relating some of these models of concurrency is proposed in the chapter by Winskel and Nielsen. * 1) P and T are disjoint finite sets of places and transitions, respectively. 2) is a set of arcs (or flow relations). 1) N = (P, T, F) is a net. 2) C is such that C ⊆ P is a configuration. 1) N = (P, T, F) is a net. 2) M : P → Z is a place multiset, where Z is a countable set.

Scientific community metaphor

In Ether the semantics of the kinds of activity described in this paragraph are governed by the actor model. Scientific research includes generating theories and processes for modifying, supporting, and opposing these theories. Karl Popper called the process "conjectures and refutations", which although expressing a core insight, has been shown to be too restrictive a characterization by the work of Michel Callon, Paul Feyerabend, Elihu M. Gerson, Mark Johnson, Thomas Kuhn, George Lakoff, Imre Lakatos, Bruno Latour, John Law, Susan Leigh Star, Anselm Strauss, Lucy Suchman, Ludwig Wittgenstein, etc.. Three basic kinds of participation in Ether are proposing, supporting, and opposing.

Janus (concurrent constraint programming language)

JanusJanus computer programming language
The logic of the bag channels produces a property shared by the actor model, namely that the order of arrival of the messages is not guaranteed. However, unlike actors in the actor model, processes in Janus can pass around their "mailboxes" so to speak, in the form of bags, and can hold more than one. This ability to pass mailboxes around and hold more than one is inherited in computer programming language ToonTalk, which is influenced by Janus. Janus, the programming language, is named after Janus, the two-faced Roman god, because every logical variable in Janus has as its two "faces", two aspects that can be passed as arguments. These are called the asker and the teller.

Multitier architecture

In web-based application, front end is the content rendered by the browser. The content may be static or generated dynamically. 2) A middle dynamic content processing and generation level application server (e.g., Symfony, Spring, ASP.NET, Django, Rails, Node.js). 3) A back-end database or data store, comprising both data sets and the database management system software that manages and provides access to the data. Abstraction layer. Client–server model. Database-centric architecture. Front-end and back-end. Hierarchical internetworking model. Load balancing (computing). Open Services Architecture. Rich Internet application. Service layer. Shearing layers. Web application.

Calculus of communicating systems

Actor model. Robin Milner: A Calculus of Communicating Systems, Springer Verlag, ISBN: 0-387-10235-3. 1980. Robin Milner, Communication and Concurrency, Prentice Hall, International Series in Computer Science, ISBN: 0-13-115007-3. 1989.