https://github.com/gosu-lang/gosu-lang
The Gosu programming language
https://github.com/gosu-lang/gosu-lang
gosu gosu-language jvm jvm-languages language
Last synced: about 23 hours ago
JSON representation
The Gosu programming language
- Host: GitHub
- URL: https://github.com/gosu-lang/gosu-lang
- Owner: gosu-lang
- License: apache-2.0
- Created: 2014-06-23T17:14:21.000Z (almost 11 years ago)
- Default Branch: master
- Last Pushed: 2024-10-30T22:15:02.000Z (6 months ago)
- Last Synced: 2025-04-06T18:13:42.091Z (8 days ago)
- Topics: gosu, gosu-language, jvm, jvm-languages, language
- Language: Gosu
- Homepage: http://gosu-lang.org
- Size: 18.5 MB
- Stars: 445
- Watchers: 42
- Forks: 75
- Open Issues: 55
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
- awesome-programming-languages - Gosu - 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. (Uncategorized / Uncategorized)
- jimsghstars - gosu-lang/gosu-lang - The Gosu programming language (Gosu)
- awesome-java - Gosu
README
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 moreBuild 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](http://gosu-lang.github.io/downloads.html).
* 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:
* [Issue tracking](https://github.com/gosu-lang/gosu-lang/issues "Issues")
License
-------Gosu is released under version 2.0 of the [Apache License](http://www.apache.org/licenses/LICENSE-2.0.txt "License").
Enjoy!