Skip to content

evylang/evy

Repository files navigation

Evy

Discord Chat GitHub Build Go Reference GitHub Sponsorship

Evy is a simple programming language, made to learn coding. Try it out.

Evy bridges the gap between block-based languages like Scratch and conventional languages like Python or JavaScript. It has a minimalist syntax with fewer special characters and advanced concepts than most programming languages. Evy has a small set of built-in functions that are easy to understand and remember, but it still is powerful enough for user interaction, games, and animations.

🌱 Getting Started

You can try Evy online at play.evy.dev and browse the examples. Alternatively you can install the evy toolchain locally.

Here is a "hello world" program in Evy

print "Hello World!"
Screencast: How to code a simple animation in Evy.

Coding evy

Animation source code

📖 Documentation

Here are some resources for learning more about Evy:

For questions and discussions, join the Evy community on Discord.

📦 Installation

You can install the Evy toolchain locally to run it from your command line. To learn how to use the Evy toolchain, read the usage documentation or run evy --help.

Linux and Windows

Download the latest release for your platform, unzip it and add evy to your path.

macOS

Use Homebrew to install evy.

brew install evylang/tap/evy

💻 Development

The Evy interpreter is written in Go and built using the Go and TinyGo compilers. TinyGo targets WebAssembly, which allows Evy source code to be parsed and run in a web browser. The browser runtime is written in plain JavaScript without the use of frameworks.

To build the Evy source code, clone this repository and activate Hermit in your terminal. Then, build the sources with

make all

You can list make targets, execute a full CI run locally or serve the frontend locally with

make help
make ci
make serve
Hermit automatically installs tools.

Hermit

The tools used in this repository, such as Make, Go and Node, are automatically downloaded by Hermit when needed. Hermit ensures that developers on Mac, Linux, and GitHub Actions CI use the same version of the same tools. Cloning this repo is the only installation step necessary.

There are two ways to use the tools in the Evy repository. You can either prefix them with bin/, for example bin/make all. Or, you can activate Hermit in your shell with

. ./bin/activate-hermit

This will add the tools to your path, so you can use them without having to prefix them with bin/.

You can auto-activate Hermit when changing into the evy source directory by installing Hermit shell hooks with

hermit shell-hooks

🙏 Thanks

Evy would not be here today without the help of many people.

  • camh: Thank you for your support, guidance, generosity and endless patience.
  • Jason: Thank you for donating the Evy website design. It is beautiful!
  • @chkas: Thank you for creating the fantastic easylang language, which was a major inspiration for Evy.
  • @fcostin: Thank you for the Splash of Trig sample, your wisdom and your willingness to help.
  • @starkcoffee, @alecthomas, @loislambeth: Thank you for your insights, support, and encouragement. I am grateful for your friendship!
  • My daughter Mali: Thank you for being keen to learn programming and for testing Evy with me.