Giter Club home page Giter Club logo

The Gosu Language

Gosu is a pragmatic programming language for the JVM. It has been designed with Java developers in mind by providing a set of features that allow them to be more productive without sacrificing the benefits of Java's simple syntax and type-safety. Gosu is an object oriented language with a sprinkle of functional programming features.

Gosu features:

  • Open Type System
  • Advanced type inference
  • Program files (scripts containing statements, functions, and classes at the same level)
  • Structural typing (similar TypeScript's interfaces)
  • Extension methods (aka enhancements)
  • Java interoperability
  • Lambda expressions
  • Classes/Interfaces/Enums
  • Generics (reified, covariant type parameters and no wildcards)
  • Composition (with the delegate keyword)
  • Properties
  • Null Safety (supports operator ?. etc.)
  • Named Arguments and Default Parameter Values
  • A powerful for each statement with user-defined intervals types
  • Member Literals
  • Object Initializers
  • Classpath Statement and Shebang (useful when you use Gosu as a scripting language)
  • ...and more

Build instructions

You need Java JDK 1.8 and Maven 3.x to build Gosu. Set the JAVA_HOME environment variable to JDK 1.8's home.

Clone the project from GitHub and run:

mvn compile

To execute tests:

mvn test

To change the version number:

mvn -B release:update-versions -DdevelopmentVersion=1-someValue-SNAPSHOT

Quickstart

  • Download the latest Gosu distribution here.
  • Set the JAVA_HOME environment variable to JDK 1.8's home, if needed.
  • Unzip the distribution zip, go to the bin folder and double click on gosu.cmd (or gosu if you are using Linux/Mac).

Support

Need help getting your project off the ground? Want to discuss features in the next release, among both users and the Gosu team? Participate in our discussion forum or report a bug:

License

Gosu is released under version 2.0 of the Apache License.

Enjoy!

Gosu-lang's Projects

Gosu-lang doesnโ€™t have any public repositories yet.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.