Forgot your password?
typodupeerror

Comment Re:2 weakest points of Java (Score 1) 330

Well, perhaps not perfect we did address some of more painful aspects of both. For instance, via Gosu enhancements we've added methods and properties directly on Date that make it much more useful and via Gosu interval types and expressions e.g., (date1..date2), you can easily navigate between two dates in either direction using the time granularity of your choice.

We've also spent quite a bit of time in an attempt to make generics worth while. First, unlike Java, Gosu generic types are fully reified at runtime. So the pitfalls of type erasure are non-existent in Gosu. This is especially helpful in combination with Gosu enhancements to Java collections. Next, and probably most important, there are no wildcards in Gosu. Wildcards, more specifically use-site variance, is the bane of Java generics, in our opinion. Basically, use-site variance puts the onus on the *user* of a library regarding variance wrt type parameters, which, even if applied correctly, spreads confusion throughout a codebase. I designed and implemented generics in Gosu and I still have a hard time reading and understanding Java code with wildcards.

Essentially, wildcards are an attempt at making Java's static type system "sound", which is a noble goal. But soundness alone isn't useful to us programmers. After all static typing is there for *us*; it's supposed to help *us*. If it's not helping most of the time, what good is it? That is the rationale behind Gosu generics and why we chose to apply array-style variance, which everyone seems to understand. True, it's a trade-off; our type system is not completely sound, but it's a trade-off we've been happy with so far.

Comment Re:Epic type system fail - universal covariance (Score 1) 330

Static typing is only useful when it *helps* us. In our view use-site variance via wildcards and the complexities that come with it confuse programmers -- no *help* from static typing there. Declaration site variance is less confusing to users, but has an impact on API design in terms of "in" / "out" data. In other words the degree to which one has to change and understand code is typically not worth the trouble, hence array-style variance. It tends to *help* users of libraries, not hinder, which is what static typing is all about. It's definitely a trade-off, but one we think is worth it.
Programming

Gosu Programming Language Released To Public 330

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."

Submission + - Gosu programming language released to public today 3

llamafirst writes: Guidewire Software released the Gosu programming language today 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, 100% Java compatible (use/extend Java types, implement Java interfaces, compile to Java bytecode), 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!), simplified generics. Gosu has an extensible type system: type loaders dynamically inject types into the language and handle dynamic dispatch. Type loaders dynamically add types from XSDs so XML is easier, and same for consuming remote web services (SOAP WS-I). Guidewire Software's core business is big insurance software and includes Gosu in its products. So, Gosu is new to the public but billion-dollar companies worldwide use Gosu in production for critical systems right now. 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. Read complete introduction to the Gosu language, compare to other langs, syntax diffs from Java.

Slashdot Top Deals

My sister opened a computer store in Hawaii. She sells C shells down by the seashore.

Working...