by Sam Tebbs
This project appears to have gone dormant. It will be removed from the list soon unless new activity is noted.
Object-oriented, imperative and interpreted language that compiles to Java bytecode.

Ash aims to simplify and modernise the syntax and semantics of Java.

  • To compile down to Java bytecode
  • To be totally interoperable with Java with no extra work
  • Provide type-safety and null-safety
  • Implement more concise syntax for type declarations

It is currently under heavy development, so many features that are planned are not implemented yet (see the issues section on GitHub for the to-do list!). Suggestions and help are welcomed, see the issues section of you'd like to propose an idea or let us know about a bug!

Note that the language is currently not ready for use.

import java.util.LinkedList

// A default constructor is provided, which declares the variables in the parameters and assigns them in a constructor.
public class Person(name : String, age : int) {

    public var friends : LinkedList<String>  = LinkedList<String>();

    // Single-line function returns the expression after the lamda arrow
    override public func toString() : String -> String.format("Person [name=%s, age=%d]", name, age)

    // Function with a return type of void
    public func doThings() {


    // A function that can throw an exception
    public func throwException() => Exception {
        throw Exception()

Information updated 07/18/20
View Comments