Jungle - Organic Programming Framework
A framework for creating modular systems with high levels of structural dynamism, interconnectedness, contextual dependency and recursive depth. These aspects are often found in the ‘organic’ systems of nature and society which is why it is called an Organic Programming Framework.
The ultimate aim of the framework is to enable the collaborative construction, and modification of live systems running remotely or locally using a visual editor. These synchronised systems can be running in any kind of environment, including large distributed systems, cross-platform multimedia production and data analysis engines and micro-controllers. programmed in any language that supports the implementation of the core framework.
It is believed that by enabling cooperation and democracy into the systems that shape our lives that they will be more likely to serve the objectives, needs and ethics of the users, rather than the profit making goal global corporations.
By creating a language of abstractions that support a certain few core principles, the ultimate objectives of the framework can be achieved.
- Lateral and Temporal Recoverability
- Process-Data Cohesion
- Arbitrarily Interconnected
- Recursive Structure
- Dynamic and Static extensibility
Lateral and Temporal Recoverability
the state of a program as well as possible changes to it can be serialised to a recoverable format and applied in contexts spanning sessions, hosts and name-spaces.
Processes and data have a similar shape, both being declarative, hierarchical and pictographic(code looks like a diagram) where possible.
A space of interconnection(a weave) facilitates any form of connectedness, including many to many, dedicated, request/pull, broadcast/event/push state sharing, addressed.
Everything that can be built can be made a component of another system and can transition from being terminal to being composite.
Dynamic and Static Extensibility
All structures are extensible, including those that are active parts of live systems, and also static patterns in the names-pace used to build those live systems.
Project Scope Breakdown
- Tooling and development .
- Domain Specific Libraries
- Networking and Distributed Computing.
Tooling and Development
- Implementations of Framework as a library for many programming languages.
- Its own programming language compiling to many platforms, the “Organic” Programming Language. Static types and exceptions for linting.
- A comprehensive testing and debugging Library, integrated with a Dedicated IDE that includes..
- A Graphical System Editor for constructing systems and deploying them to receivers of identical systems(Hosts).
Domain Specific Libraries
- Multi-media engine for building tools to revolutionise the production of the sonic and visual arts through greater collaboration.
- A web application development framework, with Graphical User Interface building library.
- An engine for Artificial intelligence, machine learning, and any other heavily concurrent tasks(possibly the core of the media engine).
- Embedded programming engine for easy integration with sensor devices.
Networking and Distributed computing
- Secure network communication, compatible with server-client and peer-to-peer broadcast network architectures.
- Collaboration is enabled by supporting sympathetic translation of change across many hosts as a key feature.
- Development of Democratic host systems where the users are the developers and are able to make changes managed under a political framework that is programmable with the same language as the subject system.
- The Alignment of real systems of economic activity, managing the exchange of tangible value with cryptographic value(block-chain).
Implementation (only loosely in order)
- Create a leading implementation with the complete core feature set on the web platform.
- Formalise the specification of the serialisation format and expected behaviour of a Jungle compliant runtime.
- Develop flagship domain specific modules; Networking, Web Multimedia,
- Create a web portal for basic information and updates about the project, along with downloads, examples and documentation. A place for potential contributors to get in touch.
- Create a globally accessible, centralized module repository, and registry of public remote jungle hosts.
- Create the core graphical editor, and essential developer tools.
- Foster the creation of a community and guide it, overseeing and validating implementations.
- Begin the task of mapping democratic onto the real systems of economy and ecology.
Although it may seem to be an impossible task to implement such a broadly scoped yet tightly constrained framework — for instance is it really possible to make a system that can be modified from a distance secure? — That thinking will have no place. It is really only a matter of getting the core to a stable implementation that can be reproduced by the communities of the various platforms that will see the benefit of being connected to the Jungle. The grandest vision obviously cannot be created by me alone. No. I am only a guide and If no one joins me with the belief that it leads to a more open, democratic and dynamic world, then the project may only achieve a subset of its intended features. But working together we can build the next step toward the technological transcendence of humanity.