Hacker News new | ask | show | jobs
by scottmck 4341 days ago
Why so bitter? Gosu's a decent language that makes up (and continues to make up) for Java's deficiencies. Yet Gosu's syntax is very close to Java's, keeping the learning curve comparatively low. Basically, if you're proficient in Java, you'll have no trouble moving over to Gosu and, in contrast with say Scala, you'll also have no trouble reading other people's Gosu. But unlike Java, Gosu is designed to be both an embedded scripting language and a general purpose programming language.

As an enterprise software company Guidewire needed a statically typed scripting language directly compatible with the JVM, one a Java programmer could easily pick up, and one that could blend powerful features like type inference, closures, enhancements, properties, open types, structural and dynamic types, built-in templating, etc. Guidewire also wanted to directly and seamlessly use the power and flexibility of the scripting language directly in application source code. Why distinguish between a scripting language and a general purpose language? Why force your customers to juggle two separate languages? 12 years later it's still difficult to argue against Gosu. Sure, Java 8 is catching up in some core feature areas, and that's great news for JVM languages, but Java as a language is still not appropriate or even usable as an embedded scripting language, nor is it suitable for many of the other use-cases a very large scale web application requires.

Can Java 8 dynamically compile and load classes from source at runtime? Yeah, that's important too :)