[![Build Status](https://dev.azure.com/luna-lang/luna/_apis/build/status/luna.enso?branchName=master)](https://dev.azure.com/luna-lang/luna/_build/latest?definitionId=10&branchName=master)

Enso Programming Language

Visual and textual functional programming language with a focus on productivity, collaboration and development ergonomics.

Enso is a developer’s whiteboard on steroids. Design, prototype, develop and refactor any application simply by connecting visual elements together. Collaborate with co-workers, interactively fine tune parameters, inspect the results and visually profile the performance in real-time. Visit [The Enso Website](http://www.luna-lang.org) to learn more! This repository contains [Enso Engine](engine/) (its compiler, interpreter, runtime, and language server). Its cloud-ready IDE can be found in a [separate repository](https://github.com/luna/ide/). ## Contributing to Enso If you are interested in contributing to the development of Enso, please read the [`CONTRIBUTING.md`](./CONTRIBUTING.md) file. It describes all the ways in which you can help the project, as well as provides instructions for how to build Enso. ## Enso's Design If you would like to gain a better understanding of the principles on which Enso is based, or just delve into the why's and what's of Luna's design, please take a look in the [`doc/design/` folder](./doc/design). This documentation will evolve as Enso does, both to help newcomers to the project understand the reasoning behind the code, but also to act as a record of the decisions that have been made through Enso's evolution. ## License This repository is licensed under the [Apache 2.0](https://opensource.org/licenses/apache-2.0), as specified in the [LICENSE](https://github.com/luna/luna/blob/master/LICENSE) file. Please be aware that, as the commercial backing for Enso, **New Byte Order Sp. z o. o.** reserves the right under the CLA to use contributions made to this repository as part of commercially available Enso products. If these terms are unacceptable to you, please do not contribute to the repository. ### The Contributor License Agreement As part of your first contribution to this repository, you need to accept the Contributor License Agreement. You will automatically be asked to sign the CLA when you make your first pull request. Any work intentionally submitted for inclusion in Luna shall be licensed under this CLA. The CLA you sign applies to all repositories associated with the Enso project, so you will only have to sign it once at the start of your contributions.