23 releases

0.8.0 Oct 30, 2019
0.7.3 Apr 7, 2018
0.6.2 Apr 3, 2018
0.5.0 Mar 12, 2018
0.3.0 Nov 28, 2017

#687 in Programming languages

MIT license

17KB
422 lines

The Wright language

A language that flies

Build Status Build status Documentation Crates.io GitHub release GitHub (pre-)release Average time to resolve an issue Percentage of issues still open Status Minimum Rust Version

Downloads
Total Github All Releases
Releases Github Releases
Pre-Releases Github Pre-Releases
Crates.io Crates.io
Crates.io (Latest) Crates.io

Wright is a lightweight programming language that is intended for use in similar situations to other JVM languages like Java and Kotlin. What makes wright different is its unique approach to the object oriented model, following an enforcing concepts from more functional languages. From rust, for example, wright uses a trait and polymorphism system, along with tagged unions. Wright also takes from Java's inheritance model, but slightly tweaks it, prevent inheritance based issues and confusion.

Wright is inspired by
  • Rust
    • Traits
    • Tagged Unions
    • Type aliases
    • Structs
    • Functional Programming, Lambda expressions.
    • Mutability vs Immutability
    • Type inference
    • Memory safety
    • Concurrency
  • Java
    • Inheritance*
    • Bytecode format
    • Mutability vs Immutability
    • Type inference (In Java 10)
  • Kotlin
    • Inheritance*
    • Bytecode format
    • Mutability vs Immutability
    • Type Inference
  • Python
    • Type Inference
    • Ease of use
  • JavaScript
    • Object Oriented Model
The core goals of the language:
  • Ease of use
  • Robustness
  • Reasonable speed
  • Memory Safety
  • Concurrency
  • Portability
  • Interoperability with other JVM languages including Java and Kotlin.
It functions on a system of
  • Strong typing
  • Static typing
  • Parametric polymorphism
  • Object-Oriented programming
  • Functional programming
  • Multi-paradigm programming

Installation:

There are several installation options.

  1. Get the latest stable version from the releases page.
  2. If you have rust, via cargo install wright.
  3. Building from source, by cloning this repository, and running cargo build --release in the wright directory, and then adding wright/target/release to your system path.

Dependencies

~6–15MB
~178K SLoC