Beware, this book is still under development. The current draft is mostly a skeletton. Details, examples and polishing are missing.
This book is intented for students and practioners who want to learn the latest object oriented techniques to develop large interactive distributed applications. The techniques illustrated in the book include separate interfaces and implementations, multiple execution threads, user interface development tools and toolkits, persistent storage of data structures and remote method invocation on network objects. Thus, practioners can deepen their knowledge in these areas.
For students, this book is useful in a senior undergraduate or entry level graduate course on object oriented programming, where the emphasis is on building robust interactive distributed applications.
To achieve these goals, the book contains a large number of sample programs that do useful things. The environment is based on the Modula-3 language and libraries. This environment offers advanced functionality while aiming at simplicity and consistency. Run time checks detect all errors before they corrupt the program; in other words no core dump! User interfaces and distributed applications can be constructed in relatively few lines.
Multi threaded and distributed applications are already very challenging by themselves. A simple and safe programming environment lets the reader concentrate on learning these new concepts rather than chasing dangling pointers.