Distributed computing introduces great complexity in software systems development, deployment and maintenance. As a consequence,
building quality distributed software systems is hard and relies fundamentally on programmers expertise and good tool assistance.
A key factor for the success of a development system is the capability to easily create prototypes, that is, create a preliminary
version for the target system where its requirements can be quickly implemented, debugged, tested and simulated. Currently,
a number of distributed software systems development tools exist, but they hardly favor learning about distributed computing
and hardly favor prototyping because they are typically designed either to satisfy industrial standards – industrial perspective
– or to experiment new concepts – research perspective. Industrial tools are concerned with productivity and software efficiency
and robustness. Research tools normally have complex user interfaces and require the knowledge of particular concepts. Therefore,
there is a need for software development tools where programmers can both learn about distributed computing – pedagogical
perspective – and build quality distributed software systems through prototyping – experimental perspective.