Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror
×
Programming

Programming Language Go Turns 8 (golang.org) 67

On this day, eight years ago, a group of programmers at Google released Go, a brand-new open-source programming language that they hoped would solve some of the problems they faced with Java, C++ and other programming languages. In the past eight years, Go has gotten a tremendous traction, with Go helping drive several services running inside Google. The company, on its part, has added a handful of features to Go, including a revamped garbage collector in 2015, and support for various ARM processors. From a blog post: Go has been embraced by developers all over the world with approximately one million users worldwide. In the freshly published 2017 Octoverse by GitHub, Go has become the #9 most popular language, surpassing C. Go is the fastest growing language on GitHub in 2017 in the top 10 with 52% growth over the previous year. In growth, Go swapped places with Javascript, which fell to the second spot with 44%. In Stack Overflow's 2017 developer survey, Go was the only language that was both on the top 5 most loved and top 5 most wanted languages. People who use Go, love it, and the people who aren't using Go, want to be. [...] Since Go was first open sourced we have had 10 releases of the language, libraries and tooling with more than 1680 contributors making over 50,000 commits to the project's 34 repositories; More than double the number of contributors and nearly double the number of commits from only two years ago. This year we announced that we have begun planning Go 2, our first major revision of the language and tooling.
This discussion has been archived. No new comments can be posted.

Programming Language Go Turns 8

Comments Filter:
  • by nospam007 ( 722110 ) * on Friday November 10, 2017 @02:30PM (#55527479)

    It Went and is now Gone.

    • It Went and is now Gone.

      I was going to ask about that. I didn't think anyone was still using GO. 8 years is venerable for a "fashion" language.

      • Re:Go? (Score:5, Insightful)

        by PolygamousRanchKid ( 1290638 ) on Friday November 10, 2017 @03:14PM (#55527803)

        I didn't think anyone was still using GO. 8 years is venerable for a "fashion" language.

        The Hyperledger Blockchain system uses Go for writing chaincode contracts: https://www.hyperledger.org/ [hyperledger.org]

        I have no idea why that was chosen . . . but I think your "fashion" statement has a lot to do with it.

        On the other hand, serious potential blockchain users, banks and insurance companies, are very wary about using such a "young" language. At least with Java, we have spent a lot of time identifying security issues, and programmers have had a lot of time to learn it well.

        With Go . . . we'll be just starting with the security issues and other quirks with the language.

        So, when is Google going to offer Go as a development option on Android . . . ?

        • Re:Go? (Score:4, Informative)

          by phantomfive ( 622387 ) on Friday November 10, 2017 @03:43PM (#55527981) Journal
          Go is really popular with devops type jobs (github and gitlab use it, for example). It was designed to fit in that kind of niche (which Google has a lot of need for) and it does it well.

          It annoys me that they are making a backwards incompatible version, though. All the time I spent learning the language gone to waste.
          • Unless something has changed since gophercon when it was clearly stated that backwards compatibility was one of the requirements of Go 2, I think you have been misinformed.
            • My understanding of it was more like interoperability rather than backwards compatibility. So you could call into go1 code from go2.
          • DevOps jobs usually involve scripting languages, Shell and Python, depending on the tools you use you could also stumble over Ruby.

          • by jimbo ( 1370 )

            I seriously doubt the changes will be that severe. It will not be a whole new language...

          • by jez9999 ( 618189 )

            It annoys me that they are making a backwards incompatible version, though. All the time I spent learning the language gone to waste.

            This is Google we're talking about. Angular2 broke Angular1. Don't use them if you don't want your stuff to break.

        • Android is supporting Go since years.

        • Comment removed based on user account deletion
          • Running Go on Android makes perfect sense. As per Mozilla's measurements with Servo, running code in multiple threads at lower frequencies in mobile chips can slash power consumption compared to doing the job in a single high-frequency core by almost one half, and Go is pretty well suited for finer-grained decomposition of computational workloads.
        • What security issues do you think Go has that would be any different from a cleaned-up version of C with saner memory management? Because that's what Go is, effectively.
      • Comment removed (Score:5, Interesting)

        by account_deleted ( 4530225 ) on Friday November 10, 2017 @04:20PM (#55528187)
        Comment removed based on user account deletion
        • by lucm ( 889690 )

          Docker, which is along the same lines is built in Go.

          Docker is a layer of convenience over existing technologies like cgroups. They could have written it in QBasic for that matter, it does nothing special.

  • by Baron_Yam ( 643147 ) on Friday November 10, 2017 @02:37PM (#55527543)

    Seeing the name "Go" in this context reminded me of Logo, which is probably much more limited.

    Thanks to a Windows app that emulates Logo, tonight my kids will be learning how to program by telling a triangular turtle how far to move and how far to turn. Or they'll tell their dad it's boring and they're not going to do it. We'll see.

  • Dead end language (Score:3, Interesting)

    by Anonymous Coward on Friday November 10, 2017 @02:50PM (#55527627)

    The question is how many months will it be before Rust surpasses Go in every significant metric; libraries, active developers, popular projects, etc. Go doesn't offer anything other than being part of Google's "mind share." It's another garbage collected managed application language in a market stuffed to the gills with such tools. What success Go has had is almost entirely due to Google marketing.

    • What success Go has had is almost entirely due to Google marketing.

      Do not underestimate the snobbery factor. Go is supposedly designed[1] by a bunch a unix/plan9 luminaries, and that alone makes a lot of wannabe high-flying programmers fret in their pants.

      [1] based on its underwhelming its design is, the actual work was probably done by some less talented imitators, and Ken Thompson &co just gave it a stamp of approval after fixing some long held pet peeves with C and C-like languages.

      • by Megol ( 3135005 )

        That tells more about you and your misconceptions rather than Go.

        C was a simple language designed for one thing. The bloated C and C++ is actually pretty damn far away from the original ideas and use cases.
        The same applies to Unix (and indirectly Posix). Complicated systems where some parts no longer make sense and bloating of many kinds.

        Plan 9 was one attempt of returning to the roots of the Unix idea, making it simpler but still compatible with the evolved world. If they succeeded? Matter of opinion.
        It us

        • A later OS design called Inferno used a virtual machine model with yet another C-inspired programming language directly supporting the CSP model - Limbo.
          Limbo also supported GC, one of the reasons Alef (which didn't) was ultimately replaced by C.

          But it was inferno's vm which supported GC and CSP natively. Of course, if you go through the trouble of building a Lisp machine, you better use Lisp than C to program it.

          This is different from go; go programs are executables which run on platforms which do not offe

    • by Megol ( 3135005 )

      I see that you haven't even looked at Go and what makes it different. Rust isn't the same type of language, doesn't have the same type of built-in support and would be a bad fit for the use-cases Go was designed for.

      While I don't like the language it does fill a niche.

  • No generics, less space than a Nomad. Lame.

  • Horrible language (Score:5, Interesting)

    by cjonslashdot ( 904508 ) on Friday November 10, 2017 @03:16PM (#55527823)
    It's my opinion, yes, but Google and see the number of websites and posts about "go gotchas". It is the only language I know where you can check for null, then do a type inference and check for null on that and get a different result; or how about the fact that an argument passed as a method target gets treated differently than an argument passed in an argument list. And the culture of go is terrible - short little variable names like "unm" and "d" instead of expressive names like "userName" and "documentId" - try searching for all instances of "d" when you want to find where it is used. And then the fact that you can't look at an object and tell what type it is, or what methods might actually apply to it. It is the _MOST_ difficult language for examining someone else's code and trying to figure out what is going on.
    • by joeslugg ( 8092 ) on Friday November 10, 2017 @03:38PM (#55527953)

      It is the _MOST_ difficult language for examining someone else's code and trying to figure out what is going on.

      AHEM. Perl much?

    • by pchasco ( 651819 ) on Friday November 10, 2017 @03:56PM (#55528061)
      I think the language is alright, and I use it regularly because it is the best alternative to C and C++ that I have discovered so far (need to look into rust). That said, I share your annoyances and add some more: * No method overloading. Itâ(TM)s annoying to have to come up with a new name for permutations like: func (matrix *Matrix4) SetTranslation(x, y, z float32), func (..) SetTranslationVector3(vector *Vector3), SetTranslationMatrix4(matrix *Matrix4), ad infinitum. * I find the previous issue ironic given their reason for omitting overloads, that it makes code less readable, yet their habit of using abstract, one or two character identifiers for everything * Public members are PascalCase, private are camelCase as a rule. This was especially annoying before go-aware refactor tools were available.
      • Yes, since C and C++ have their own issues, Go is a reasonable alternative. I also am looking at Rust - looks very promising. I spent a year with Go and have walked away from it. Another aspect that seems a mess - the library/import mechanism.
      • by jez9999 ( 618189 )

        Public members are PascalCase, private are camelCase as a rule.

        What's bad about that? I really like that style of C# naming. Makes public members nice and clear.

    • Comment removed based on user account deletion
      • Interesting. What use cases do you think that Go is well suited for?

        It seemed to me that it became popular among the Linux container tool community because it was early in having libraries for LXC. But that doesn't make it a good language - just a lucky one.

        One caveat in my bad opinion of it is that the alternatives each have deficits as well. What are your thoughts?

  • Cool, but does it work on TempleOS?
  • Go 2? (Score:5, Funny)

    by cfc-12 ( 1195347 ) on Friday November 10, 2017 @03:57PM (#55528073)

    This year we announced that we have begun planning Go 2, our first major revision of the language and tooling

    No thanks. Everyone knows that using Go 2 in your code is bad programming practice.

  • Hopefully you can resolve some of the complaints about Go in the next version. But I'm afraid you're going to have to call it something else. Because Edsger Dijkstra says Go 2 Considered Harmful.

  • It's just another language. It has nice things, it lacks nice things. It is fine for certain things, not so fine for other things. It is not a silver bullet, the end-all, be-all. Currently using it, I expect to use it again in the future, when appropriate. This aside, I couldn't care less about it, one way or the other.
  • by Anonymous Coward

    the rest is history

To stay youthful, stay useful.

Working...