what is the strategic edge of gosu over python,java any other major language? why should we use it?

553 views
Skip to first unread message

Erjan G.

unread,
May 18, 2019, 9:16:15 AM5/18/19
to gosu-lang
I just found this language and got really interested, checked out some syntax, however what is the main benefit of gosu? 


what are the strengths of gosu relative to python,java ?


 is it speed, reduced compile time? maybe someone can enlighten me a bit?

Scott McKinney

unread,
Jul 31, 2019, 3:16:57 PM7/31/19
to gosu-lang
Gosu is a JVM language that predates most alternative JVM languages including Kotlin, Ceylon, etc.  The language sprang to life in 2002 for a startup called Guidewire Software, which is now the insurance industry's premier P&C software company.

It probably seems odd for an insurance software company to develop a general purpose language, and it is, but it was necessary essentially because back then there were no off the shelf scripting languages that were statically typed.  We needed static typing because the tooling we were building required deterministic static analysis in order to work. The "scripting" language eventually grew to be a general purpose, OOP language with sophisticated type inference capabilities, extension methods, reified generics, etc. etc.

Comparing Gosu with Python I would say a key benefit is type-safety, which goes a long way. But I'll step over that bear trap and jump to type inference, which in Gosu's case is what largely contributes to its "scripty" feel -- you simply don't declare types in many places you normally would in Java.  In fact, one of Gosu's cooler features are "programs".  You can create a source file with pretty much anything you want: statements, functions, classes, in any arrangement you like and run it.

The unique feature that sets Gosu apart from most other languages is the "open type system."  If you're familiar with F#, the feature is quite like "type providers", but predates that feature and is in some ways more useful.  Earlier in their history Guidewire's technology stack was growing rapidly and they desperately needed to provide a simple and consistent way for customer to configure their products in terms of these tech stack components e.g., entity layer, web services, rules, doc management, web UI layer, etc.  Providing components as "type providers" proved extremely productive.

As the creator of the language I've moved on to other projects most notably the Manifold project, from Manifold Systems

I hope I've answered your questions.

Cheers.

Scott
Reply all
Reply to author
Forward
0 new messages