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
17KB
422 lines
The Wright language
A language that flies
Downloads | |
---|---|
Total | |
Releases | |
Pre-Releases | |
Crates.io | |
Crates.io (Latest) |
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.
- Get the latest stable version from the releases page.
- If you have rust, via
cargo install wright
. - 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