unit is a General Purpose Visual Programming Language and Environment built with a primary focus on Developer Experience. It is heavily inspired by Data Flow Programming, Reactive Programming, Functional Programming, Visual Programming, and Object Oriented Programming paradigms. Formally, units are Multi Input Multi Output (MIMO) Finite State Machines (FSE). A program in unit is represented as a Graph. The unit Programming Language was developed in close junction to the unit Programming Environment, which is a Web application built for usage, management and composition of units. The environment is designed to feel visual and kinesthetic, giving the perception of Direct Manipulation of Live Virtual Objects. The minimalistic design is meant to provide a distraction-free and ergonomic Programming experience; furthermore, new ways of performing Software Development are explored in the UX, such as Programming by Voice and Programming by Drawing. unit's Philosophy is similar to the Unix Operating System's; for a seasoned programmer, unit should feel like the 2D evolution of the Command Line Interface (CLI) where units' (commands) inputs (stdin) and outputs (stdout) can be piped together into a graph (script); moreover, the unit system is set to grow into a modern and approachable Web Operating System which is private and sandboxed by default, enabling a new era of Software Sharing and Collaboration. Open Source unit comes with a built-in set of primitives that represent the fundamental blocks from which every unit graph is derived. At ETHOnline 2021 we intend to extend unit's core with Web3 APIs, including, for instance, secure Programmatic Crypto Asset Exchange and simple Drag and Drop Smart Contract deployment, rendering a more approachable way for anyone to join the Blockchain playfield.

unit showcase

How it's made

unit was implemented in TypeScript by Samuel Timbó throughout a 4 years journey of Research and Development at the intersection of Visual Programming and modern Web Development. During ETHOnline 2021, we intend to prototype the unit Virtual Machine in Solidity, enabling the compilation of unit specs, represented as JSON, into valid Solidity objects. unit's main Open Source repository and Demo URL will be shared by the end of the hackathon.