Why write manifold in Javascript?

Albeit a bit quirky, javascript semantics are very powerful. It inherits features from the programming languages that inspired it making Javascript meta-programmable. One can program within the environment created by its virtual machine. Unfortunately, unlike its predecessors, current Javascript runtimes are not persistent, making them impractical for this purpose. As such, the developer's bias towards the programming model of code-compile-execute, remains to be challenged, leaving much of Javascript's potential untapped. We recognize Javascript's power and want to see a new development paradigm and toolset emerge.

Additionally, coding is inherently collaborative, even if developer communication is not always direct, but through the code itself. A shared meta-programmable environment is particularly well suited to empower this process.

Is Manifold a blockchain project?

Like many Blockchain projects, Manifold is a network-centric, distributed application. Blockchain is simply a way to store a network's shared state in a cryptographically verifiable way. Manifold is a network programming environment where developers may build blockchain-based applications without being constrained by them. This capacity is vital because the architectural biases of many blockchain-based projects make interoperability an afterthought. Blockchain presumes that global event ordering and mutable state are the preferred way to make a network verifiable and reliable. Manifold makes this form of state maintenance optional and enables developers to balance scalability, interoperability, and performance with network resilience's needs depending on the use case. As a result, Manifold's applications remain compatible and interoperable.

Are network applications open source?

Yes, applications developed on Manifold are open source; otherwise the network would not function in two ways: technically, because network nodes could not verify the state of an application, and socially, because users could not verify the intent of an application. The transparency and trustworthiness of information lifecycles are vital for Manifold's functional and economic dimensions.

Furthermore, Manifold is reflective. One can look at the source code of any object's class in the same fashion as the source code of an HTML page in a browser. As a result, developers create applications whose functionality is transparent without compromising the visibility of their state.

What is the difference between a user and a developer?

Under Manifold, users and developers are simply two ends of a spectrum. Both refer to network participants or agents participating in the networks' objective to generate useful and valuable information. A user is understood to generate data predominantly, and a developer predominantly generates code. Developers are also users, but although it might not be as obvious, users are also developers; they participate in the development iteration process by providing valuable feedback through their use. Additionally, as they configure, personalize, choose and arrange how they interact with the network, they are shaping it, therefore programming it. This convenient blur in distinction results from the core language's meta-programmable dimension and is a "side effect" of a stateful development environment.

What is an economic Space?

An Economic Space is a network with an economic dimension that enables participants to discover, define, create and distribute its value. Check ECSA (ecsa.io) and the Economic Space Protocol for more information.