|
I'm fairly new to the language, as it hasn't been mentioned much since it's public release several years ago. The language takes many queues from Ruby; for example, "enhancements" are similar to monkey patching in Ruby. The syntax, semantics, and standard library (especially in collections) are also familiar. e.g.: Ruby [1, 2, 3].map { |x| 2 * x } Gosu {1, 2, 3}.map (\x -> 2 * x) Unlike Ruby, Gosu provides a static type system which includes type inference and structural typing (similar to Go's interfaces). It also includes an open type system (http://devblog.guidewire.com/2010/11/18/gosus-secret-sauce-t...), which allows first-class representations of user created types at compile time – no code generation is needed. F# programmers would find many similarities between Gosu's open type system and F#'s type providers. Like most JVM languages, you can leverage Java compatibility to use all of the third-party libraries you want. Compared to Scala, Gosu tends to eschew complexity for simplicity and pragmatism. Their implementation of generics is a good example of this. And of course, Gosu just has a lot of features that make it enjoyable to work with. Such as the null-safe invocation operator (?.), elvis operator (?:), type variable reification, terse syntax, etc. |
Clojure, Scala, Klotlin, Groovy, JRuby, and now Gosu... I don't know... I'd love to at least see these sites compare themselves to other languages. Like why Gosu vs Klotlin when Klotlin was already worked on by JetBrains and afaik used for the development of their IDEs...