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."
Wonder how this turns out... (Score:1, Interesting)
Alright! (Score:1, Interesting)
Ads disguised as news! excellent.
Re:built on top of the Java Virtual Machine (Score:3, Interesting)
In other words, since they are only compiling to byte code, and Oracle doesn't have any patents on that, and they can't (nor desire) to take away people's ability to use the JVM, this isn't a problem.
The misconception is that if Google hadn't used Java in Android they would have been ok, but if they had used a JIT compiler they likely would have fallen under the patents no matter what language they used.
Yuck!!! (Score:2, Interesting)
Phonetically gosu sounds identical to the Portuguese word "gozo", which literally means cum (as in ejaculation).
Re:built on top of the Java Virtual Machine (Score:3, Interesting)
It is rather questionable if JIT related patents can hold up in a courtcase, JIT compilation has been around since the 70s Smalltalk and Lisp have been using it for decades.
Re:Epic type system fail - universal covariance (Score:3, Interesting)
Fair enough. I still hold by my earlier assertion that this is the mistake of the same proportion and impact as nullable-types-by-default (about which there have been repeated published regrets by the very language designers which introduced them), but I do understand the argument from pragmaticism. Time will tell if your trade-off was worth it or not.
Then again, those who grok variance (and other advanced stuff) already have Scala, while Gosu could take the niche of a language that is not that far removed from Java (including the learning curve!), but still somewhat more convenient. On the other hand, you do introduce closures - which a lot of the very same people having troubles with variance and wildcards have problem wrapping their heads around - so I'm not sure if the overall balance is good enough for this niche.
Or whether the niche will even exist for much longer - after all, at some point OOP was that new-fangled academic concept, only present in exotic languages like Simula, and beyond the comprehension of mere mortals coding in FORTRAN or COBOL.
Re:Epic type system fail - universal covariance (Score:1, Interesting)
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 [loria.fr], and is still trying to dig itself out of it [eiffel.com].
Since when does the line xs=ys; not generate a warning?
Re:Run for the hills! (Score:3, Interesting)
No, as I geek I prefer because "readability counts". Gains in productivity from key presses are irrelevant compared to the gains in productivity from understanding code as you skim it.
Re:Yuck!!! (Score:2, Interesting)
Interesting to know. Originally it was used in the same way as it is used in Spanish, meaning joy or pleasure (when a noun). In Brazilian Portuguese it has acquired the sexual connotation besides the usual meanings. Funny thing is that I just discovered that gozo means sweet in Basque.
Re:Another Language (Score:3, Interesting)
there's no way any normal person can write easily in C what is possible in Haskell.
I used to think that too, up until about a week ago when someone on reddit was challenged [reddit.com] to write a C++ equivalent to Haskell's zippers. What he came up with was pretty impressive.
Possibly that guy is not a normal person though. :)
Re:Another Language (Score:1, Interesting)
I generally agree with your point: certain tools are better for certain jobs. I will, however, point out that more and more people do seem to be writing enterprise apps (at least partly) in Javascript. It's not what it used to be.
Which I guess is just my way of saying, if a tool becomes complex enough, and malleable enough, it can change to fit a greater/different variety of jobs.
(I was going to use a screwdriver as an example of a tool that doesn't do this, but I've seen some pretty sophisticated screwdrivers lately: extending magnets, built-in flashlights, ratcheting, multiple bits, etc.)
Besides - some of my assembly scripts are kick-ass!
Re:Stop It! (Score:3, Interesting)
Really...isn't it time to rethink all of these different, but same (except for the whacko Python,PHP stuff) and come up with one standard language?
Not just "no", but "hell no". While all of those are Turing complete, I guarantee that you would not want to use Visual Basic to solve the same kinds of problems you'd want to use ML or Prolog for. Very few of the languages you list ("C+"? Heh!) are just minor variations on the others. Their are real, substantial differences between the approaches they take, and things like type systems and garbage collection have implications a lot deeper than just picking which syntax to use for assignment (which I don't think ML even supports in the traditional sense).
Re:Stop It! (Score:3, Interesting)
Since I am not CS person (Business, rather), I won't attempt to to argue with you about that.
However, I think that any reasonable person would recognize that this Tower of Babel approach is holding back software development as a whole, needlessly fragmenting knowledge and impacting the careers of excellent programmers simply because they didn't jump on the latest bandwagon X years ago.
Do you realize that Donald Knuth probably would not be "qualified" for 80% of the job postings on Dice...the man that practically invented programming? How stupid is that?
I would think it is entirely possible to bolt a syntax "UI" onto an underlying language implementation that would preserve the lower level advantages held by some languages while supporting a common syntax and enabling the vast knowledge and experience in the industry to be freely exchangeable. In fact, I know it is because that's essentially what Microsoft did with C#.net and Visual Basic.net
And C+? Yeah, probably something Microsoft did internally I bet. Not sure because I just made it up.
Re:Stop It! (Score:3, Interesting)
Yes, I am old school. The first languages that I learned were Basic, Cobol, RPG, Fortran, followed by Pascal, C, C++, and some assembler. Then lots more. And frankly, I'm bored. Gee, now we have a language that is 100% compatible with Java! If it's so compatible, how is it different? What are the substantial advantages that it offers that I should bother learning it? And how is learning yet another obscure language going to enhance my employability? I saw one of my old teachers many years ago, and she told me that they no longer taught programming theory as a standalone class. Apparently people want to learn a programming language rather than learning how to program.
Programming theory ignorance and lack of flexibility makes me a sad panda.
Oh, you left Ada off your list.