Gosu Programming Language Released To Public
llamafirst writes "Guidewire Software released the Gosu programming language for public availability. Gosu is a general-purpose programming language built on top of the Java Virtual Machine (JVM). It is object-oriented, static typed, imperative, and 100% Java compatible (use/extend Java types, implement Java interfaces, compile to Java bytecode). It has type inference (very readable code yet static typing!), in-line functions that you can pass as objects (closures / lambda expressions / blocks), enhancements (inject methods + properties, even on Java types!), and simplified generics. Gosu is provided via the Apache License v2.0. The language itself is not yet open source, although that is planned for a future community release. You can read a complete introduction to the Gosu language, a comparison to other languages, and syntax differences from Java."
OK, replying to myself because I obviously didn't have enough coffee yet:
They list as the benefits over Scala
- Extensible type system
- Easy transition from Java
- Reified Generics
From those 3 points, only the last one sounds useful...
PageTurner Reader: open-source e-reader for Android with cloudsync. http://pageturner-reader.org
Guidewire is an enterprise software company, and this is the language they most likely code most of their business logic in.
Similar to SAP or Peoplesoft (now owned by Oracle), to keep developer mindshare and promote maintainability and exclusivity, they layer on top of the J2EE stack in some way; in this case it's a bytecode compatible Java replacement (Peoplecode, in comparison, was an interpreter invoked by server calls in the J2EE stack - at least in v8.x).
I think the main reason they're exposing the language widely (as opposed to the above examples) is directly related to the recent Java news by Oracle... bytecode compatible is a key selling point here.
The introduction has this gem:
Gosu supports a simplified version of generics. Generics are a way to abstract the behavior of a class to work with different types of objects, but to still retain type safety. There are no wildcards, and generic types are covariant, like Java arrays, which is usually what you want.
And here's how to make the type system bite the dust with this flaw:
What's funny is that Eiffel has already fallen into the very same trap, and is still trying to dig itself out of it.
You missed out on the whole concept, and you're being aggressively dumb about it. Inferred types are derived from the code, which is, surprise, static. Type inference isn't heuristic at all, go and read about Hindley-Milner.
if a type is EVER inferred, then the language is NOT statically typed. just because some preprocessor interpreter assigned a static type heuristically doesn't mean the language has anything to do with static typing... in fact, if the language ever infers type, that has EVERYTHING to do with DYNAMIC typing.
You might want to go tell the authors and users of ML (incl. OCaml) and Haskell that they're using dynamically typed languages. Somehow I'm sure they will be very open to this idea.
The JVM runs in more systems than the CLR. Assuming it's not too big, you could possibly use it on Android in the near future.
Dilbert RSS feed
We aren't trying to sell anything to anyone. Well, unless you happen to be an insurance carrier. I assume not.
We just released our language, and are excited about it.
Stop spreading the old Java FUD. Please do some research if you feel so strongly about how someone else chooses to do their work. I don't care what languages you use, why should you care what I use?
This is a mature 3D library + engine:
http://www.jmonkeyengine.com/engine-core/