Mica is a system for building network-accessible multiuser portable applications. It is a programming language and object environment designed to be accessible by more than one programmer at a time.
It includes an implementation of a mostly pure object oriented language. Automatic persistence, reflection, strong encapsulation, multiple dispatch, and run-time security are some of its features.
Mica is designed with extensible "Collaborative Virtual Environments" (CVEs) in mind. In particular I intend to implement a highly-collaborative authoring environment within which users and agents can cooperate. Other subsets of CVEs include MUDs/MOOs or massively multiplayer online games.
Here are some key features of "Mica":
· Long-running / persistent and extensible applications. (Mica provides transparent persistence, meaning the objects that you use in your application will be there the next time you restart Mica.)
· Networked applications. (Mica is designed to concurrently execute many sessions at once)
· Collaborative applications hosting multiple concurrent authors. (Mica provides the tools to make sure the objects you create in a running collaborative application can be made secure and won't be overwritten by others)
· Rapidly prototyped software. (Mica's prototype inheritance allows object relationships to evolve over time in a more intuitive way than many traditional class-based object oriented languages)
· Software with lots of objects with complex, evolving behaviours. (Mica's use of multiple dispatch often makes modeling the actions an object can take much simpler and more intuitive.)