eevo

Everything should be as simple as possible, but not simpler

eevo is a high-level scripting language centered around functional records for data oriented programming, packaged in an simple and easy to use form factor.

def fib(n)
  "Fibonacci number of n"
  if n < 2
    n
    fib(n - 1) + fib(n - 2)

fib 25

eevo can either be used to write short standalone modular scripts (do one thing and do it well), or be embedded in a larger program to enable high level hackable logic. This allows for a “middle out” approach where you can slowly replace low level code in existing code based with high level scripts (lua style), or out-source computationally expensive code to low level libraries (python approach). Both methods can be done at the same time with different languages, allowing eevo to glue different libraries, ecosystems, and tools together.

A lightweight module core allows you to choose how much of the language you need for your application, this comes in a few layers:

Warning

eevo is still in active development and not yet stable. Until the v1.0 release expect breaking non-backwards compatible changes.

Features

See the language manual for complete set of features.

High-level

Functional programming

Records as universal type

Interactive

Metaprogramming

Quoted expressions

Types

First class citizens

Immutable

Tail call optimization

Anti-Features

Just like jazz, it is often more useful to see what is missing:

No statements

No keywords

No mutability

No reader macros

No exceptions

No multiple return values

No explicit return

No arrays, linked lists, or tuples

No function currying

No garbage collector

No build systems

No mandatory editor tools (eg paredit)

No dependencies (eg LLVM)

WIP

Automatic reference counting memory management

Strong static typing with type inference

Batteries included standard library

Improved error messages

Interoperability with any programming language with C bindings

First class algebraic pattern matching

Powerful string interpolation

WebAssembly compiler

Environmental image

Hygienic macros

Multithreading

Managed effects

Optimizations