Cloudjects

cloud based objects

I Have a Dream

In their award winning paper, β€œNotes on Postmodern Programming”, presented at OOPSLA/Onward! back in 2002, James Noble and Robert Biddle warned about "the major threat of the complacent isolation of computer science and programming". They called for an Aristotelian unity in action, place, and time.

"Let us desire, conceive, and create the new program of the future together. It will combine design, user-interfaces, and programming in a single form, and will one day rise towards the heavens from the hands of a million workers as the crystalline symbol of a new and coming faith”

[Noble & Biddle]

Cloudjects

  • a tribute to Noble & Biddle's vision
  • an executable MDE approach, promoting both Object Design and Cloud Computing
  • inherits from the original anthropomorphic vision of the OO paradigm and adapts it to the cloud computing context
  • ultimate goal: build a massive open online design world
  • focus: evolution, interaction, community of software objects and humans avatars. Promotes learning by doing

Cloudject Manifesto

  1. Cloudjects are respectable software first class citizens, living happily in a cloud-based collaborative world
  2. Cloudjects have id and state, can receive/send messages
  3. Classes define: type, structure and behavior. Instantiate cloudjects. Classes are cloudjects too
  4. Any value can change without notice. All changes are recorded. Cloudjects have versions. => classes too
  5. Contracts express mutual expectations and commitments between cloudjects. Lawyers are not allowed. It’s a fair game. Tests are reliable cloudjects friends that can verify contracts and prove cloudjects' innocence. Test execution is traced
  6. GUI fragments allow end-users, designers, and testers to interact with cloudjects, depending on their permissions
  7. Cloudject = idea + class + naked instance + fragment + karma

Play with cloudjects here.