Forgot your password?
typodupeerror
Programming Google

Google Go Capturing Developer Interest 434

Posted by ScuttleMonkey
from the fear-the-behemoth dept.
angry tapir writes with news that Google Go seems to be cutting a wide swath through the programming community in just a short time since its early, experimental release. While Google insists that Go is still a work in progress (like so many of their offerings), many developers are so intrigued by the feature set that they are already implementing many noncritical applications with it. What experiences, good or bad, have you had with Google Go, and how likely is it to really take over?
This discussion has been archived. No new comments can be posted.

Google Go Capturing Developer Interest

Comments Filter:
  • Oh yeah, that ... (Score:5, Insightful)

    by checkitout (546879) on Monday March 01, 2010 @10:31AM (#31316666)
    Until this article, I forgot it was ever announced.
    • by TheLink (130905) on Monday March 01, 2010 @10:51AM (#31316982) Journal
      Me too. I'll wait for those captured developer(s) to develop more libraries for it first.

      A programming language that's "powerful" for the code you write is good for those uber-programmers.

      A programming language that's "powerful" for the code you no longer have to write is for those crappy programmers like me :).

      Many promising programming languages make it to the first category but never make it to the second.
  • by Anonymous Coward on Monday March 01, 2010 @10:32AM (#31316680)

    Translation: Someone is drumming up some marketing astroturf for a single-company controlled proprietary language.

    • Re: (Score:3, Funny)

      Like Java?
    • by I confirm I'm not a (720413) on Monday March 01, 2010 @10:41AM (#31316814) Journal

      "Proprietary"? No, open source [golang.org]

      I'll concede Google is a single company, but the Go developers I've encountered are all outside Google, and speak very warmly of Google's Go team.

      Translation: there is much astro-turfing on them thar intarwebs. This ain't it.

    • Re: (Score:2, Troll)

      by hardburn (141468)

      Yeah, total slashvertisement. It reads just like those "Acai Berry EXPOSED" ads that are just so awesome [penny-arcade.com].

    • by colmore (56499) on Monday March 01, 2010 @11:15AM (#31317398) Journal

      Oh whatever, this is news.

      There hasn't been a successful new systems programming language since the introduction of C++ almost thirty years ago. Programming language technology has advanced a great deal since then. A new systems language is a very big deal, and Google is playing very fair and open with it.

      Quit bitching.

  • Name (Score:3, Interesting)

    by Idiot with a gun (1081749) on Monday March 01, 2010 @10:35AM (#31316732)
    Whatever happened to the previous language named Go? Did the creator settle with Google, or did Google just ignore him?
    • Re:Name (Score:5, Informative)

      by BhaKi (1316335) on Monday March 01, 2010 @10:41AM (#31316824)
      There has been no settlement because there has been no legal dispute. There has been no legal dispute because the creator didn't trademark the name 'Go'.
    • by Jessta (666101)

      That other language was called "Go!" not "Go" and yeah everyone ignored him because nobody had heard of his language anyway.

    • Re: (Score:3, Funny)

      by perltooc (933296)
      Maybe they should just call it "Goo". Then they can call the subsequent version "Gooo", and so on.
    • Re: (Score:3, Funny)

      by cerberusss (660701)

      Whatever happened to the previous language named Go? Did the creator settle with Google, or did Google just ignore him?

      The previous version was renamed into in "Go, Next Edition". It's GoNE.

      Oh, and please try the fish.

  • ...luckily the game [wikipedia.org] still comes before the programming language.
    • Re: (Score:2, Interesting)

      by kirill.s (1604911)
      It's still surprising to see the Go Programming language on the 4th place when searching for "Go".
      How could it be so high based on just incoming links alone? It seems rather unpopular, considering how few of us ./ users know of it.
      • Re: (Score:3, Insightful)

        by delinear (991444)
        Well we could suspect nefarious link ranking by Google, but it's more likely the fact that anything Google does is instantly linked from every news source on the planet, including the big, respected media websites which generate a lot of page rank and don't want to be seen as missing out on the Next Big Thing.
      • Are you searching with Google by any chance?

  • by zeromorph (1009305) on Monday March 01, 2010 @10:40AM (#31316812)

    It is an interesting concept for a low-level language and could be pretty important. And since the gccgo compiler has been accepted by the gcc steering committee (link [gnu.org]), I am expecting Go to stay and prosper.

    • I am expecting Go to stay

      Go stay go!

  • Bad infomercial (Score:5, Insightful)

    by captaindomon (870655) on Monday March 01, 2010 @10:41AM (#31316822)
    This summary reads like a bad infomercial. "How likely is it to really take over?" not likely at all, and nobody would ask that question unless they worked for Google Marketing.
  • by larry bagina (561269) on Monday March 01, 2010 @10:47AM (#31316932) Journal
    "C++ is too hard, I'll use java. java is too hard, I'll use C#. C# is too hard, I'll use python. Python is too hard (boner?), I'll use ruby. ruby is too hard, I'll use Go." -- GoFanBoy (formerly RubyFanBoy, formerly PythonFanBoy, formerly ...)
    • Re: (Score:3, Interesting)

      Or I'll use Haskell instead. I love seeing things like orderWords = unwords. sort. words. Yum.
      • Re: (Score:3, Insightful)

        by slim (1652)

        Haskell's lovely - but you need to be /clever/ to use it. It's not going to unseat procedural languages.

        • Re:who's using it? (Score:4, Interesting)

          by shutdown -p now (807394) on Monday March 01, 2010 @03:00PM (#31320928) Journal

          Haskell is lovely because it lets you write extremely elegant and witty code that is also utterly unreadable. It's like it went so far away from Perl that it came back to the same thing from a different direction - the more clever Haskell code has to be extremely carefully deconstructed, operator by operator, to understand what it does, much like you had to do the same with Perl's @#$ magical expletives.

          I absolutely love Haskell, and it's type system is second to none, but it's not a productive language for vast majority of typical software written today. You need to look at languages that are specifically designed to tackle the problems (of working in a team, producing readable code, not breaking code with third-party library updates etc) there.

      • Re: (Score:3, Funny)

        by u38cg (607297)
        Hah. I found a book in my library the other day called "Real World Haskell". I was laughing so much, I had to be told to be quiet.
    • Re:who's using it? (Score:5, Interesting)

      by Tumbleweed (3706) * on Monday March 01, 2010 @11:11AM (#31317320)

      "C++ is too hard, I'll use java. java is too hard, I'll use C#. C# is too hard, I'll use python. Python is too hard (boner?), I'll use ruby. ruby is too hard, I'll use Go." -- GoFanBoy (formerly RubyFanBoy, formerly PythonFanBoy, formerly ...)

      Ruby is considered easier than Python? C# is considered easier than Java?

      • Re: (Score:3, Insightful)

        Ruby is considered easier than Python? C# is considered easier than Java?

        It doesn't really matter when you reason for changing language is more hype based, rather than considering what problem they are really solving.

      • Re: (Score:3, Insightful)

        by ClosedSource (238333)

        "C# is considered easier than Java?"

        Well, at least by me. You don't have to deal with checked exceptions or use adapters for (some) event handling.

        • Re: (Score:3, Insightful)

          by Abcd1234 (188840)

          And anyone who's programmed in a functional style understands how nice it is to have proper, lexical closures at one's disposal, as opposed to hacking it with inner classes and hoping for the best.

        • Re: (Score:3, Insightful)

          by Unoti (731964)
          Explicitly declaring thrown exceptions is one key thing I like *better* about Java over C#. It's a good idea, not a bad one.
      • Re: (Score:3, Informative)

        by Lord Ender (156273)

        C# was developed as a reaction to Java. They were trying to make a language with Java's features but without its warts. I'm sure it is easier than Java for many things.

        Ruby and Python were both developed as reactions to Perl (again: all the features, sans the warts). Python tried to be easy for beginner programmers (and was successful; it's taught in many intro classes). Ruby tried to be easy to experienced programmers. If you're trying to to real OOP, you will find no easier syntax than Ruby's.

        So, at least

    • Re: (Score:3, Insightful)

      by hans_e (548959)
      You forgot the final logical step.

      "Go is too hard. I'm going to write my own language."

  • already invented? (Score:2, Insightful)

    by agentultra (1090039)

    Why pick Go when there's D which already has a pretty stable platform to develop on?

  • by fusiongyro (55524) <faxfreemosquito@yah o o . com> on Monday March 01, 2010 @10:55AM (#31317058) Homepage

    I wrote a small utility for detecting duplicate files [bitbucket.org] in Go back when it first came out. I haven't really kept it up to date so I'm not sure if it compiles with the current version.

    It's an interesting language. Apart from its lineage, which is interesting and great if you're into Plan 9, it seems to me to be an old-school procedural shot across the bow of the current crop of compiled functional languages (ML, Haskell). It's hard to place the language in any camp, because it does furnish functional programming and object-oriented features without really committing to the dogma of either one. It gives you a ton of interesting features that seem to work really well in concert, but it's also missing some core functionality. I can live without exceptions but I'm not sure I can live without type genericity in this day and age. And a lot of other programmers have their own little nits with it.

    Overall, it seems great. But I seldom need code compiled to the machine, and I'm conversant with and fond of the compiled FP languages so I tend to rely on them for these kinds of utilities. I suspect at Google this will eventually become the de-facto language for implementing protocol buffer servers. If and when that happens, the language will have a guaranteed niche for a long time to come, whether or not it wins over hearts and minds outside the giant.

  • Alternatives? (Score:4, Interesting)

    by Filik (578890) on Monday March 01, 2010 @10:56AM (#31317080)
    Could anyone post a list of alternative modern programming languages that equally handles parallelism as well, that are still being actively developed, and their pros and cons compared to Google Go? I'm interested in learning one of these, I just can't find any easy overview anywhere (all mentioned in wikipedia are pretty old so lots must be missing...). Surely Haskell isn't the latest such project, there must be lots of others just around corner?
    • Re:Alternatives? (Score:4, Informative)

      by binarylarry (1338699) on Monday March 01, 2010 @11:02AM (#31317176)

      Scala.

      Pros:
      Built on a mature, polished platform (Java)
      Nice language syntax
      Functionalish constructs are available
      Great parallel framework (actors) along with the functional aspects

      Cons:
      No native AOT support
      IDE support is still newish

    • Re: (Score:2, Informative)

      by Anonymous Coward

      erlang has parallelism much more in the core of the language.

    • There's Scala, Erlang, and, as you mentioned, Haskell. All of them have active development, but I am most familiar with Haskell itself. All of them have the advantage that any more established language will have: they will have better or more numerous compilers, libraries, and instructional materials. They all have mindshare that Go does not have. In the case of Haskell, Haskell has a very strong type system and lazy evaluation, in addition to being a mostly pure functional language. Go does not use LE from
    • Re:Alternatives? (Score:5, Interesting)

      by Coryoth (254751) on Monday March 01, 2010 @11:43AM (#31317806) Homepage Journal

      I can't give opinions on all of these (and some are still in development at this time anyway), but here's a list of some languages with paralellism designed in:

      • Erlang [sunet.se] -- Very popular message passing/actor model based language.
      • Scala [scala-lang.org] -- A functional language with actor model concurrency for the JVM.
      • Oz [mozart-oz.org] -- An exceptionally multiparadigm language.
      • Occam-pi [pop-users.org] -- The modern version of the old occam for transputers; CSP style concurrency (I believe).
      • Chapel [cray.com] -- Cray's parallel programming language for supercompters. Cray's entry into DARPA's HPCS programming language competition.
      • X10 [codehaus.org]
      • Fortress [sun.com] -- Sun's language for serious scientific computing. It was Sun's entry into DARPA's HPCS programming language competition, but lost and is now open sourced.
      • Eiffel SCOOP [origo.ethz.ch] -- An effort to take a CSP model and make it elegantly compatible with object oriented programming
  • What innovation? (Score:5, Interesting)

    by piranha(jpl) (229201) on Monday March 01, 2010 @10:59AM (#31317116) Homepage

    So, what has Go brought to the table?

    Go is designed with internal messaging capabilities, intended to simplify the creation of applications running on different nodes, and improve their performance.

    "It's a way to try to address how to write concurrent software that's more robust, as opposed to using the old threading model of Java and others," Voss said.

    ...

    In this regard, Go offers "a new programming paradigm" that makes it easier to solve a wide variety of programming problems by simplifying many types of parallel processing.

    No, Go doesn't bring anything new to the concurrency table. The two things I've seen about Go concurrency that are regarded as special are M:N/"green" threads and CSP-style channels.

    M:N threading is an implementation detail of a language runtime. Whereas the standard library of a language might specify how threads are available to client applications (programs written in the language), it's best left to the implementation (runtime or compiler) to decide how to translate those threads onto the machine. Some implementations might want to focus on scalable, high-performance threading, and so they'd choose M:N. Some others might emphasize simplicity, and map language threads directly to OS threads. What Go has done is standardized this implementation detail into the language specification. (I don't think that's a good idea, but that's a matter of taste.) Other language implementations offer M:N threading, including GHC and (I think) Erlang.

    On channels: they're cool. I love them. But there's a lot of prior art here, and many languages have great CSP-style channel libraries written for them that offer the same great flavor of relatively safe message passing and alternation between sets of channels:

    In summary, I just don't get what the buzz with Go is about, besides that it's Google's very own language.

    • But there's a lot of prior art here, and many languages have great CSP-style channel libraries written for them that offer the same great flavor of relatively safe message passing and alternation between sets of channels:

      What Go has done is standardized this implementation detail into the language specification

      The two things I've seen about Go concurrency that are regarded as special are M:N/"green" threads and CSP-style channels.

      I'll agree with your points, but many vehicles have wheels and motors and there is still a clear preference (or at least avoidance) of certain brands and models. Go brings things together well, and is a 'better' option because it does integrate so much prior art (as you have said) into a great package.

    • Re: (Score:3, Interesting)

      by ajs (35943)

      You're making a very old argument. One that was made by C purists when C++ was introduced: that simply adding syntax for something doesn't make your language special. C++ users disagreed and many defected from the C camp. Were they right? Possibly.

      Of course, the smalltalk users were also right: these were not new features. C++ was just applying previously developed tools to the C language.

      None of that mattered in the long term.

      Is Go the new C++? I have no idea, but I don't think you're taking an objective,

  • The programming community has been stuck at 3GL for way too long.

    • by hey! (33014)

      Because we've reached the point where programming per se is not the limiting factor in programmer.

      Oh, some languages are nicer to program in than others. I'll take Python over Java, for example, if the criterion is just how fun and easy it is to write programs. But I'll often choose Java in many instances because it has libraries and frameworks that make my job easier.

      And there's the rub. It's dealing with frameworks and APIs and libraries that kills you. The Java ecosystem is like a huge, booby-trapped

  • by Sloppy (14984) on Monday March 01, 2010 @11:20AM (#31317472) Homepage Journal

    "Mr. Burns, your campaign has the momentum of a runaway freight train. What makes you so popular?"

  • Whitespace (Score:3, Interesting)

    by CaptnMArk (9003) on Monday March 01, 2010 @11:38AM (#31317744)

    Too bad they added significant whitespace. I'd support a semicolon-less syntax, but not at the cost of significant whitespace.
    Perhaps an alternate function call syntax or using {}instead of () in expressions would work.

  • Eh? (Score:5, Insightful)

    by thePowerOfGrayskull (905905) <marc,paradise&gmail,com> on Monday March 01, 2010 @11:42AM (#31317802) Homepage Journal

    angry tapir writes with news that Google Go seems to be cutting a wide swath through the programming community

    He may write that, but that's not what the article says:

    While Go is still a work in progress, some developers are so encouraged by its features and design that they have started using it to build noncritical application

    What experiences, good or bad, have you had with Google Go, and how likely is it to really take over?

    Um, take over what? Is this a serious question? The answer here is "never" -- for the same reason that no single language will ever "take over" the software development landscape. There is no one tool fit for every job.

  • Go! (Score:3, Funny)

    by jalefkowit (101585) <jasonNO@SPAMjasonlefkowitz.net> on Monday March 01, 2010 @12:06PM (#31318226) Homepage
    Go? That's the language that Toyota uses to write their firmware, right?
  • by strangeattraction (1058568) on Monday March 01, 2010 @12:18PM (#31318436)
    I was one of those developers chafing at the bid to get my hands on Go. Once I started I never looked backed. I was able to write my own version of HelloWorld in half (that is 1/2) the time it took me to do it in C and it was bug Free with no memory leaks. I think that pretty says it all. If you're looking for a programming language that solves all your coding problems look no further. Now that I have abandoned Java my manually linking programs with xml skills have declined sharply. Similarly after abandoning Lisp my ability to match parenthesis's has almost vanished. No matter, with Go I perceive the universe in my belly button.

When you make your mark in the world, watch out for guys with erasers. -- The Wall Street Journal

Working...