Object hive GitHub issue

vibecode
{"vibecode": {
    "doc": "object_hive",
    "role": "brainstorm — Caspian as a hive of living objects that interact with each other, rather than just a procedural language. Server-shaped by default; easy to listen on a socket and delegate received instructions to listeners. Single-threaded but feels asynchronous because objects react to triggers. Catalogs analogous systems for reference and proposes a blend (MOO + Erlang) as the closest match.",
    "status": "vague — clarifying the question; no design yet",
    "key_concepts": ["caspian_as_object_hive_not_just_procedural",
        "servers_are_easy_to_set_up",
        "objects_wait_for_triggers_and_delegate",
        "single_threaded_but_event_driven",
        "closest_existing_models_are_actor_systems_and_moos"]
}}
Open issues (1)

File: documentation/ideas/object-hive.md § Systems that already do something like this (#systems-that-already-do-something-like-this)

§ Systems that already do something like this
Include Javascript in this section.

The vision GitHub issue

Caspian should be more than a procedural language. The mental model should be a Caspian program is a hive of objects that interact with each other — similar to how a web page is an object (the document) made of smaller objects (elements) that react to events.

A few specific things this implies:

This is the seed of the idea. The shape is unclear — what's worth borrowing, what's specific to Caspian, what mental model carries the most weight — those are open.


Systems that already do something like this GitHub issue

Open issues (1)

File: documentation/ideas/object-hive.md § Systems that already do something like this (#systems-that-already-do-something-like-this)

Include Javascript in this section.

(Besides JavaScript, which is the obvious comparison.) Organized by which aspect of the vision they emphasize most.

Actor model — "objects as living things waiting for messages" GitHub issue

The canonical answer. Each actor is a process with a mailbox; receive blocks until a message arrives; the whole program is a graph of actors sending each other messages.

Smalltalk family — "everything is an object that responds to messages" GitHub issue

Alan Kay's "the computer is a society of cooperating objects" vision. The metaphor that started object-oriented programming.

MOO / MUD systems — the strongest "the program is a world of objects" GitHub issue

Multi-user object-oriented environments where every room, thing, and player is a live object with verbs (methods) that get triggered by inputs.

Reactive / dataflow — "objects update when their inputs change" GitHub issue

Distributed object / capability systems GitHub issue

GUI toolkits — "objects with handlers, glued by an event loop" GitHub issue

These are the most familiar "objects waiting to be triggered" pattern most developers know.

Game-engine-style ECS / scene-graph GitHub issue

Every GameObject has Update() called per frame; components are attached behaviors; events propagate through the scene tree.


The closest blend for Caspian's shape GitHub issue

Single-threaded, cooperative, server-oriented, server-as-object-hive — that combination points most strongly at MOO + Erlang patterns:

The combination would be: each Caspian object can broadcast events and listen for them (the existing event system handles this); a long-running server program drains a queue of work using the cooperative event-loop pattern (see engine-events.md); and the server's "world" is the graph of live objects that receive and react to incoming inputs.

That's not a spec yet — it's a way of looking at where the existing pieces could fit together to produce the "hive" feeling Caspian is reaching for.


Open question GitHub issue

Which of these analogous systems would help you clarify the vision further? Three angles to dig into:

  1. The actor / message-passing mechanics — Erlang-style mailboxes, receive, cooperative scheduling. What primitives the runtime needs to make objects feel like they're "alive in parallel."
  2. The program-is-a-world framing — MOO-style. What it means for a Caspian program to not have a main() but instead BE the running collection of objects. How that maps onto Mikobase's already-living model.
  3. The signals / event-binding pattern — Qt-style. How the existing event system in Caspian gets dressed up with the "alive object" framing on top.
Pick one to push deeper on next, or steer to something else this brainstorm should surface.

© 2026 Puck.uno