Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!


Forgot your password?
Programming Java Open Source

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."
This discussion has been archived. No new comments can be posted.

Gosu Programming Language Released To Public

Comments Filter:
  • by IronSight ( 1925612 ) on Tuesday November 09, 2010 @03:12AM (#34170826)
    With the news recently on how java is going to be changing in oracle's hands, people seem pretty nervous in just the java side side of things let alone a language that runs over java. Will be interesting to see how this develops.
  • Alright! (Score:1, Interesting)

    by Anonymous Coward on Tuesday November 09, 2010 @03:13AM (#34170832)

    Ads disguised as news! excellent.

  • by phantomfive ( 622387 ) on Tuesday November 09, 2010 @03:36AM (#34170924) Journal
    The JVM is open source. The patents Oracle has are for the machine, not for compiling to byte code. They aren't Java specific either, anyone with a VM who does JIT compiling could fall under the patents, which is why Microsoft has to pay Oracle for a license.

    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)

    by gustgr ( 695173 ) <rondina.gmail@com> on Tuesday November 09, 2010 @04:15AM (#34171096) Homepage

    Phonetically gosu sounds identical to the Portuguese word "gozo", which literally means cum (as in ejaculation).

  • by MemoryDragon ( 544441 ) on Tuesday November 09, 2010 @05:04AM (#34171312)

    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.

  • by shutdown -p now ( 807394 ) on Tuesday November 09, 2010 @05:49AM (#34171494) Journal

    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.

  • by Anonymous Coward on Tuesday November 09, 2010 @06:20AM (#34171588)

    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:

    uses java.util.*;
    var xs : List<Object> = null;
    var ys = new ArrayList<String>();
    xs = ys; // type system allows this blatant LSP violation
    xs.add(123); // we just added an integer to a list of strings - great
    print(xs.get(0)); // yeah, this prints 123 - just to be sure
    ys.get(0).length(); // finally, a ClassCastException which should've happened 3 lines earlier

    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?

  • by icebraining ( 1313345 ) on Tuesday November 09, 2010 @06:51AM (#34171724) Homepage

    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)

    by gustgr ( 695173 ) <rondina.gmail@com> on Tuesday November 09, 2010 @07:00AM (#34171754) Homepage

    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)

    by chudnall ( 514856 ) on Tuesday November 09, 2010 @10:40AM (#34173504) Homepage Journal

    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)

    by Anonymous Coward on Tuesday November 09, 2010 @12:25PM (#34174874)

    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)

    by Just Some Guy ( 3352 ) <kirk+slashdot@strauser.com> on Tuesday November 09, 2010 @01:28PM (#34175666) Homepage Journal

    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)

    by sycodon ( 149926 ) on Tuesday November 09, 2010 @01:55PM (#34176000)

    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)

    by wwphx ( 225607 ) on Tuesday November 09, 2010 @04:08PM (#34178258) Homepage
    I have a button at home from my days of wearing buttons at science fiction conventions that says "C: The power of assembler with the flexibility of assembler."

    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.

Nothing is finished until the paperwork is done.