Next Generation Visual Programming Platform
unit
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 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 easy composition of new units. The environment is designed to feel visual and kinesthetic, giving the perception of Direct Manipulation of Live Virtual Objects. The unit Programming experience is minimalistic and ergonomic; Programming can be partially performed by Gesture and by Voice.
unit is similar in concept to the Unix shell; for a seasoned programmer, unit should feel like the 2D evolution of the Command Line Interface (CLI) where units' (commands) inputs and outputs (stdin/stdout/stderr) can be piped together into a graph (script). In fact, unit can thought at the re-exploration of the Unix Philosophy in the context of modern Software Engineering.
The unit system is set to grow into a modern and approachable Web Operating System, which is sandboxed by default, enabling a new era of Software Sharing and Collaboration.
The broader Design Philosophy behind unit is discussed in Concept.
To jump right into the official unit Programming Environment (Beta), visit ioun.it.
The following is a manual on how to run a local version of the unit Programming Environment.
Installation
Install yarn and git if you haven't aready.
Clone this repository:
git clone [email protected]:samuelmtimbo/unit.git
Get into the unit folder:
Install dependencies and build:
Build:
Start a local unit server:
For development mode:
Documentation
As an application, the unit Programming Environment was designed to be learnable by Experimentation and Exploration; visual and written documentation can be found inside the platform. For a step-by-step introduction to unit Programming, visit Getting Started.
This codebase is a TypeScript implementation of the unit Programming Language Spec with an accompanying Web based Programming Environment. I tried to make it as clean and organized as I could while still maintaining a space for experimentation. Some folders contain a README.md
file with information about that piece of the architecture.
Contributing
unit has been developed by a single Software Engineer, Samuel Timbó, working since 2017, first as a personal project and then later as a full-time job.
I would like to maintain the same level of creative freedom, invention, and intimacy that motivated me and made the project possible; that said, if you would like to directly participate in the development of Open Source unit, hit me up at @io_sammt.
Community
If you have a question or a suggestion related to Open Source unit, or if you just want to talk about the Future of Programming, feel free to DM me at @io_sammt.
For weekly updates about unit Development, including thoughts about Vision and Roadmap, follow us on Twitter @io_unit.
We hope you enjoy unit and invite you to be part of our community!
License
MIT License
Copyright 2021 UNIT IO, Inc