Why did I start Doblets

Why did I start Doblets

Mark Hooijkaas, $Revision: 1.1.1.1 $, $Date: 2000/10/12 02:15:32 $

Introduction

This document tries to describe as simple and truthfully as possible why I once felt the need for something I now call doblets. As Eric Raymond puts it, this document describes what problem "scratched my personal itch".

The itch

When I started using chat programs in 1996 I soon discovered all kinds of different but wonderful chat applications and environments: Each of these programs had some features (or user community) that I particular liked. The problem was that they were all different programs. Different programs use different protocols, environments, servers, etc and this posed several problems: The simplistic (=impossible) solution to these problems would be to have one chat application that had all the features, implemented in the best quality according to all perspectives, with all possible variants. In fact, I started trying many, many more chat applications (see appendix). This quest mainly proved to me that the problem of many, many chat applications, features, communities and identities was very real indeed. I did get much inspiration though for the more fundamental solution I had in mind.

The envisioned solution

The problem of the fragmented chat environments may be solved by providing one standardised environment, on which new or better chat applications or features could easily be developed and deployed. I envisioned a distributed object (for which I later coined the term doblet), which users could easily add to their chat-application, thus extending the functionality. In simple terms the working of a doblet is a follows:
  1. Somewhere a new doblet would be created (either in a personal chat-application or on a dedicated doblet-server).
  2. A user would see the new doblet and request a connection with it.
  3. The users chat-application would download the GUI part of this doblet and run it, providing a nice user interface (i.e. giving th
I envision users handling these distributed object as easy as other (computer based) objects. Users will be able to drag and drop new objects in their workspace / chatroom / browser. Other users will be able to connect to such object (or the objects will even pop-up, when added to an existing "room"), and interact with such objects with an simple GUI. It shouldn't matter if such objects are new to the user, the system would just download the necessary code, when neeeded.

The term doblet cam from the observation that such a Distributed OBject was truly distributed in the sense that the object itself was distributed over multiple computers, especially that each workstation had it's own (graphical) user-interface part of the object, next to one-or-more server parts. This is a different perception (although technically the difference isn't that clear-cut), than the common view on distributed objects (e.g. CORBA, DCOM and RMI), where the objects/components aren't distributed over many computers, but only accessable remotely from other computers while being located on just one computer.

Appendix: Other Chat programs I tried