Aviva Directory » Computers & Internet » Programming » Gosu

Developed for Guidewire, a software company that specializes in the insurance industry, Gosu is a statically-type, general-purpose programming language that runs on the Java Virtual Machine (JVM).

Development on the language began in 2002 as a scripting language, then called GScript, at Guidewire Software. The company needed an embeddable, statically-typed scripting language for business rules. In its original form, it was largely influenced by ECMAScript.

Static typing was important in order to statically verify business logic, and because the company wanted to be able to build deterministic tooling around the language through static analysis, such as code completion, navigation, usage searching, refactoring, and so on. Java was less than ideal, largely because it provided only one meta-type (java.lang.Class). In order to represent some other type domain to Java, the only options were to write a class library to access information about the domain, or to resort to code generation, and neither of these options was desirable and, in many cases, they weren't even adequate.

Dynamic languages, like Ruby, could provide varying degrees of meta-programming, but dynamic languages lack type safety, deterministic tooling, and some of the other advantages of static typing, and this would defeat Guidewire's primary goal of exposing other type domains to the language.

Gosu was designed to provide a higher level of flexibility, but without sacrificing static typing. Unlike most programming languages, Gosu's type system is not limited to a single meta-type or type domain.

Over a period of years, Guidewire enhanced the scripting language, and it evolved into a general-purpose programming language, although it can still serve as a scripting language. In its current form, Gosu is mostly influenced by C# and Java. In 2012, Guidewire released Gosu as open-source software, under an Apache License. The Gosu development team is actively involved in the continued development of the language, its tooling, and IDE design.

Still in use by Guidewire Software, the language has also been used in several open-source projects, such as RagnarDB and SparkGS.

The chief intent of this guide is to offer resources for the Gosu programming language. Appropriate topics are the language itself, or any implementations, IDEs, editors, or tools that have been designed to facilitate its use, as well as Gosu user groups, forums, tutorials, guides, and informational sites.



Recommended Resources

Search for Gosu on Google or Bing