Home / Who We Are / Donations / Bounties / News / Contact

░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
░░░░░░░╔██████╔███████╔█████░░░╔███████╗██╗░░░░░░██╗╔███████╗░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
░░░░░░░╚══██░╔██═════╝║██║░║██░║██╔════╝╚██╗░░░░██╔╝║██╔════╝░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
░░░░░░░░░░██░║██░░░░░░║██░░╚╗██║█████╗░░░╚██╗░░██╔╝░║███████╗░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
░░░░░░░░░░██░║██░░░░░░║██░░╔██╝║██╔══╝░░░░╚██╗██╔╝░░╚════╗██║░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
░░░░░░░╔██████═╗██████║█████═╝░║███████╗░░░╚██╔═╝░░░╔███████║░.org░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
░░░░░░░╚════╝░░╚═════╝╚════╝░░░╚═══════╝░░░ ╚═╝░░░░░╚═══════╝░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░

The Language Project

The “Languages Project” is an attempt by ICDevs.org to contribute to the adoption of the Internet Computer by creating generative, form, and pattern language to the community that provides a common set of communication tools that foster well-formed, productive, interoperable, and collaborative systems for innovation on and around the Internet Computer ecosystem.

The “Languages Project” is loosely based on the work of Christopher Alexander in is various works on Architecture including The Timeless Way of Bulding, A Pattern Language, The Nature of Order, Volumes 1, 2, 3 and 4. These ideas have been applied to computer systems in Thriving Systems Theory and Metaphor-Driven Modeling by Leslie Waguespack.

A form language provides clear language around the domain objects, processes, and repeatable patterns that can be used to accelerate building new systems.

A pattern language provides a set of interconnected patterns that that support each other in building up a domain. In our case we are interested in patterns that support an open and interoperable Internt Computer.

A generative language provides a set of perscriptive actions that ensure the proper transformation and evolution of a living and dynamic system.

This collection should be a living document that evolves along with the technology, culture, and political climate that manifestis over the years. ICDevs.org has published this repository at github. We accept issues, debate, and pull requests to help augment the material available to the developer community. We expect this to be an ongoing project that is ‘never finished’ and that many valid patterns and forms will be superseded by more ‘correct’ and advantageous patterns and forms.

For a full example of these kinds of languages, see Immortality by our Executive Director, Austin Fatheree. gitbook.

The Form Language

Network Level Forms

  1. Canisters
  2. Subnets
  3. Nodes

The Pattern Language

Services on the Interent Computer should exhibit

INT. INTEROPERABILITY

…by using…

NSP. NAMESPACED INTERFACES

When data is needed from outside the system, strive for…

DDP. DECENTRALIZED DATA PROVISION

…enabled by

DVR. DATA VERIFICATION AND REDUNDANCY

and

ASD. ADAPTABLE SYSTEM DESIGN

…made more robust by…

EIA. ECONOMIC INCENTIVES ALIGNMENT

and

CIT. COMPLEXITY VS. INCENTIVIZATION TRADE-OFF

…and implemented by…

OUT. OUTSIDE-IN

and

STA. SINGLE TRUSTED PARTY AUTHORIZATION