WebAssembly / WebAssembly/component-model

Consider renaming `world` to `component`

Open
#274 17 comments 4 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
WebAssembly
Stars
1.4k
Forks
130
Avg merge
2d 1h
Merged PRs (30d)
15

Description

In Wit, a "world" corresponds to a component. This took me too long to grasp, because "world" is a strange word for it. "World" has a notion of expanse, plurality, whole. Intuitively, it doesn't relate at all to component. In a sense, it means the exact opposite: whole vs part.

IIUC, the name "world" originated by taking the host perspective and looking at different hosts as different "worlds" that guest components can target. While sensible in this limited context, taking the perspective of the host at the boundary of the component universe, comes at the cost of clarity for components that fill that universe.

It seems to me the host itself can be seen as a component that the guest component plugs into. This built-in host component does have one special exception: not all its exports need to be fulfilled (the guest component can import only some of them).

It seems easier to me to look at the host boundary as a special component, than to look at every component as a special host boundary.

Consider renaming world to component.

For example,

package myorg:http@0.0.1

// ...

component proxy {
    export incoming-handler
    import outgoing-handler
}

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Review the 17-comment discussion and the WIT example first. Determine the full naming scope for world and component, including whether existing host and guest terminology is affected. Done means an agreed terminology change with the relevant specification and examples updated, but the issue names no files or tests.

Written by the indexing model from the issue text.

Assessment

Tech stack
wasm
Domain
compilers
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.