Language

CAOPLE Programming Language

CAOPLE is a programming language that treats microservices as the first class citizen. A (micro)service is the compilation unit and deployment unit of the language. Instances of (micro)services can also be created dynamically and placed on a machine in a cluster at a location specified and/or determined at runtime. It is the first programming language that can be truly claimed to be a microservices programming language.

Conceptual Model

CAOPLE is based on the service-agent model of distributed computer software, in which a software system consists of multiple agents that provides services. Agents belongs to multiple services, which are called castes. Castes can be added to the system at any time, even when the agents of existing castes are already up-and-running.

See Meta-Model for for more information.

Language Facilities

CAOPLE provides a coherent set of language facilities at a higher level of abstraction for communication, asynchronous computing and event driven programming. These facilities enable agents to establish connections dynamically in a seamless way, to avoid data racing in concurrency, to generate and catch events effortlessly, and to process semi-structured data without the need of writing spaghetti code.

CAOPLE is a strong typing programming language that enables type checking statically, even for messages passed across different microservices developed by different teams and/or at different times.

CAOPLE's datatype structure resembles traditional data types, but naturally supports the so called semi-structured data that is widely used in web-based applications and the aggregate data model that is widely used in Software-as-a-Service applications and big data analytics.

See Definition for the syntax and semantics definition of the language.

Programming Style

CAOPLE is an imperial programming language. Its programming style encourages using real-world metaphors to structure microservices systems. Consequently, programs written in CAOPLE resemble real-world organisations of systems, thus easier to understand both the static structure and dynamic behaviour of the software system.

See Examples for some examples of CAOPLE programs.

Learnability

CAOPLE has been used in teaching cloud computing in university. Its conceptual model of service agents is easy to understand. The syntax and semantics of CAOPLE language are simple and easy to learn and easy to use.

See Learn for learning materials, which include lecture slides and demonstration video clips.