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

 



Forgot your password?
typodupeerror
×
Programming

Developers Say Google's Go is 'Most Sought After' Programming Language of 2020 93

Lots of developers really want to learn Go, a programming language for large systems created by Google, meanwhile most developers are sick of attending meetings, and most of those working at multinational corporations aren't happy there. From a report: That's according to the results of a survey of over 16,655 developers from 76 countries carried out by HackerEarth, a company with offices in India and San Francisco that provides tools for recruiters to remotely assess developer coding skills. Go comes out top of the languages most developers want to know. The survey finds that 32% of experienced developers pick Go as the programming language they want to learn, well ahead of Python, which 24% say they want to learn. The desire for learning Go lines up with the results of a similar survey by remote developer hiring firm HackerRank. Go is used at Google, Netflix, American Express, Salesforce, IBM, Target, Twitch, Twitter, Uber, and Dropbox.
This discussion has been archived. No new comments can be posted.

Developers Say Google's Go is 'Most Sought After' Programming Language of 2020

Comments Filter:
  • by lessSockMorePuppet ( 6778792 ) on Friday May 08, 2020 @02:45PM (#60037566) Homepage

    Sounds like least well supported and most in flux.

    Plus, it's from Google. They kill everything off. This will only kill your career.

    • by OrangeTide ( 124937 ) on Friday May 08, 2020 @02:52PM (#60037620) Homepage Journal

      Sorry, when does learning something "kill your career" ? I'm pretty sure you don't have to erase the parts of your brain that knows Python in order to learn a new language.

      • Comment removed based on user account deletion
        • I'm curious, does any of your experience from the F77 days inform you currently?

          To redirect my own question towards myself, I think Pascal, Delphi, Assembler, and Forth all gave me experiences that influence me today. Hopefully the positive influences outweigh the bad habits.

          • I've found that switching languages causes a real shift in thinking and how I approach a problem. A problem in C++ looks very different to me than it does in LISP or Python, or what have you. Especially LISP. My brain just sees the whole world differently in LISP mode.
      • I do avoid putting FORTRAN and COBOL on my resume. Although I can code in those language just as well as Python, JavaScript and C++. However we don't have unlimited time to learn everything, so we need to pick and choose what we learn. If you learned to be proficient at GO. Only for 5 years down the line, for Google to Discontinue it, because say their Android market gets killed from some new competition. Or perhaps having Apps on your phone will become Passe and move to Server sided say Web-Apps again.
        I

        • I do avoid putting FORTRAN and COBOL on my resume. Although I can code in those language just as well as Python, JavaScript and C++. However we don't have unlimited time to learn everything

          I thought you were going to say, that avoid putting those on your resume because you simply do not want to work with them, even though you know how to.

          I leave off several things for the same reason when I'm putting together a resume...

          I don't think there's active harm in learning Go though, every new language you learn gi

      • Opportunity cost?

        How trivial for you to forget that there are endless things to learn, and if I spent all my time on stuff from Google that's nearly guaranteed to go away, I'd have wasted that time pn something that might put food on the table or provide some other value to me.

        Learning Go is less useful than playing Solitaire, because Solitaire will still be around to amuse you, and Go won't.

      • by sjames ( 1099 )

        But some things kind of follow you around a bit like skunk scent. For example, MUMPS, BASIC, or COBOL.

    • Are you serious? I have an opportunity right now to move to another department in my company, which would allow me to learn Go. Doing Java right now.
  • by PeeAitchPee ( 712652 ) on Friday May 08, 2020 @02:47PM (#60037584)
    Java and C / C++
  • It's substantially less featured than Rust or C++, and most of the developers code like crusty old C programmers.

    I think if you aim to work in certain fields, you'll find Go to be more valuable than Java, C#, or C++ for finding a job. In other fields, Go is completely unknown.

  • by Anonymous Coward
    Until the latest shiny comes along. Fed up of all the clojure and rust fads as well. Remember when Ruby on Rails was the language to learn? And Dart? Also a Google language.
    • Most of these fad languages were good at making programs that everyone wanted at the time... Only to by the time you have mastered the language everyone has the program that they wanted already.

  • by Anonymous Coward

    Does it have library support yet? Every time I look at Go I get dismayed at the lack of library support. Everything is statically linked with gigantic executables.

    • by OrangeTide ( 124937 ) on Friday May 08, 2020 @03:20PM (#60037766) Homepage Journal

      Yes. I write what are effectively Go-based plugins for a living. You should stick with the gigantic static executable whenever you can though, because dynamic linking and the CGO runtime add some complications with porting and debugging.

      Somewhat surprisingly those giant executable in Go end up creating relatively small containers if you're deploying with Docker or whatever. When you roll up a JVM for a Java container it ends up being pretty huge. Even C++ apps will want you to pull in glibc and libstdc++ into your container and possibly a whole lot more if you're not careful. Admittedly this is an extremely specific use case, but I think it's one of the factors that drove the technology decisions for Go into a different direction than its contemporaries.

      • by lgw ( 121541 )

        That's a really good point, though. For many modern environments, it's the size of the container, not the size of the executable, that matters. Not sure why you'd want to write anything in a low-level language if it's just going to be sort-of-virtualized, but I guess there's a niche for everything.

        I try to run everything on AWS Lambda these days, since my work is in the cloud. While that can be expensive at scale, you can't beat the lack of overhead cost for everything infrequently called. And if your f

    • by Aighearach ( 97333 ) on Friday May 08, 2020 @04:18PM (#60038122)

      Everything is statically linked with gigantic executables.

      The point is that Go is popular for building network servers, not user applications. Static linking is an advantage, because robustness has increased value in this problem domain. Rare problems are still expensive. Disk space is not a serious limiting factor, because you don't have a bunch of extra stuff and stale downloads and media files collecting, like on a user system.

      You copy the library code into your project. Often this is delivered by a CI system. A key insight is that once you're going whole-hog with source control and continuous integration, things like compiling a binary don't create any extra abstraction or difficulty, because the human has to interact through the system either way. Even if you dynamically loaded it, you'd still have to check the version and be picky to prevent problems; you'll never even want to just use whatever is on the system, because different services will end up needing different versions of things. So then you containerize everything; well now nothing is actually shared anyways! So dynamic loading creates failure points, and no longer provides any benefit. That's why if you're only building network service daemons with it, then you really benefit from isolating all your code in one place, and to have the real code that you'll be running be there in that directory in case you need to look at it or change it.

      • by dargaud ( 518470 )
        But then, that completely defeats the purpose of upgrading some libs to fix security or other bugs. Since your big Go static app doesn't use, it won't use the new secured version and you need to recompile the whole thing. Or re-obtain it from your vendor. Another headache.
        • That's right.

          See, that's the thing; an end user can just update a lib and check if it works, a server needs to be more robust than that. You're going to have to carefully test the new version. And anything you're compiling has to go into your CI system, and be delivered through it. So having the library in your source dir cost you nothing.

          Your argument is a presumption of the past, and it simply not accurate in this context.

          You don't realize that we're also avoiding the bugs the new version of the library h

      • Disk space is not a serious limiting factor

        Disk space is absolutely still a factor due to cost concerns.

        • Nope. I'm in the industry, you're not going to just have different feelings about the subjective words like "a factor" and convince anybody.

          Anybody who does this work knows that the vast majority of containers they rent, or servers they rent, or servers they buy, will have the minimum hard drive space provisioned, and won't ever increase it. The servers doing that storage will be just doing that, and they'll be database servers, file servers, etc., running regular software. You don't have to worry about lan

    • by micheas ( 231635 )

      Which if you are running all your executables in Scratch docker containers is an advantage.

      Static binaries in C that are capable of running in a Scratch container are much easier to build with Alpine Linux and musl libc.

      If you are running everything in containers its a huge advantage. Which is the world that GO was designed to work in.

  • Simple logic (Score:2, Insightful)

    Maybe it's because they already know Pyhton and the other relevant languages.
    • Re: (Score:1, Troll)

      by hondo77 ( 324058 )
      So they're running away, screaming, from Python.
      • Python is a simple scripting language.
        It's not its fault, that you are using it to build large applications and frameworks.

        Hint: If you need hidden properties/methods, you are misusing Python. Go find a full programming language.

  • Which one to choose? Become an expert in all 3?

    • Company acquisitions in this day and age means you're almost guaranteed to work with every web framework given enough time. You don't get to pick your favorite to use exclusively, you get to learn them all and get paid to fix things.

    • Learn React, it's the most popular and has the best support. For all of them, the hardest part is still getting the CSS right, and most web development is still best done using straight HTML/CSS/Javascript (especially with Flex layout), but you need to know at least one of those frameworks if you want to get hired as a frontend dev.

      The primary thing these frameworks are trying to solve is component reuse. They all are at their best is in web applications (for example, if you want to build photoshop in th
    • Comment removed based on user account deletion
  • by Timoteous ( 6843638 ) on Friday May 08, 2020 @03:09PM (#60037706)
    Go comes in 3rd, behind python and javascript, in the stackoverflow survey with only 15% of respondents wanting to learn it: https://insights.stackoverflow... [stackoverflow.com].
    • by Iorek ( 68393 )

      Yeah, I couldn't remember where it came in, but knew it was behind Rust and Python. Cheers.

  • It's not like you need to pay a substantial amount of money to take a course, get permission from anyone, or anything like that. If there's nothing preventing a person from doing something that they tell me they really want to do, but they're not actually doing that thing, my conclusion is that they don't want it nearly as much as they're insisting.

    Or it could just be a bad survey. I would imagine that a lot of developers already know C, Java, Python, or the other commonly used languages that might show
    • Time. I want to learn a new programming language, but also X, Y and Z. X, Y and Z are all more important to me. That said, I definitely have a hitlist to learn either when I have nothing else happening, or when I can start a new project and learn on someone else's dime.

  • Bullshit, this is just google spam wanting to prop up their language in the face of python, javascript, c# and such -- languages that got in before go.

    There is only one perfect programming language for any given computer architecture. That language is called its "prime" language. All languages should add their ideas to the best implementation of an architecture's prime language. C, for example, could have memory management through compile-time analysis of references to variables and do all the malloc's b

    • Perfect implies you've got an oracle to predict the future and know what is "best".

      I see your claim, and raise you the claim that you don't have an oracle, so we can't actually identify your "best" language.

    • by mj24 ( 143239 )

      I should clarify, I guess, for the lusers, that there is a better notation for a heterogenous type.


      typedef
              set{word} mySet; //a heterogenuous set, limited to types under the size of the machine's word.

    • They never learn any other languages, and if they do, they treat them like C. They categorically refuse to broaden their horizon, lest they could face the fact that C or C++ respectively are not the be-all end-all of programming languages.
      And they always act like all languages are C-likes.

      If you ever learned all of Haskell, including the GHC extensions and advanced libraries, I'm sorry, but going back to C or C++ is like going back to the stone age.
      You have to tell the damn thing every tiny step. Like havin

  • Re: (Score:1, Troll)

    Comment removed based on user account deletion
  • by pieisgood ( 841871 ) on Friday May 08, 2020 @03:53PM (#60037970) Journal

    Golang has honestly been great to work with when upgrading between versions. For anyone who's ever worked with swift 1.0 and seen the version change nightmares that went through, then golang looks almost perfect in comparison. There are some issues like implicit interface compliance that both simplify working with the language but also poses some problems for maintenance, if your implementations are all under the same package then things get easier but that's not enforced either.

    Generally the error handling idiom is good even if there are certain instances where handling a returned error ends up being a no op (like on rows.close()) it still nice that fail fast and elegant is somewhat part of the language.

    Too many complainers in here haven't really even used the language in a project before.

    • Scalability. Yeah, Do deploys take a marathon 24 hour effort? GO is for you. If yu are Agile and do production testing? Yes, GO can save your hide. People who work for looser corporates should have worked out Java does not cut it The weird thing is COBOL also scales, at least if you know what to link. GO was created because 24 hours to deploy was too much.
  • And I mean "found" as in "finding Jesus". :D

    Just like those manufacturers who claim their product has been "tested" for something. But not what the result was. :D

    Nice try though, Go(ogle).

  • As a C/C++ programmer do I use C for simpler stuff and C++ for when I require more finesse. It is quite effortless to start with C and to switch up, which makes C/C++ so important to me. People who don't have at least two languages to choose from are stuck without a choice obviously. To them a new and easy to learn programming language that they can use as an alternative will likely seem like a "vacation of the mind".

    I take the survey result as a sign of many beginners taking part in the survey as well as e

  • Employers are not seeking this language, it's a fad.

  • I know a lot of people are using Go because "Google!" I don't believe this is a good reason nor do I believe there are any technical justifications for this level of fanboism. Go's dependency management is rubbish. Go uses cooperative threading. Go's threads are stored in public memory. Go's lack of important features, like generics, make it feel like a half-baked throwback language. Go's tooling sucks when compared to other languages. Google also has a reputation of either over-engineering things (Angular)

  • Most people will never use it before it goes they way of Ada, Wisp, Pascal. All of these were THE new wave in the early 1980s. I've watched for twenty years these claims and only a few have ever been used in business for production systems. Those being Java and, cough cough Visual Basic. Just wait and you'll see that only young people who want the 'cool factor' will use this. There is no way that you aren't going to turn the apple cart over in large corporations to use a new language because it is cool
    • COBOL is chosen for buletproof efficiency. Backend, transactions etc. Batch, COBOL is shit for interactive web candy and mobile screens, and due to yearly browser upgrades, screen scraping is awful. Just as well, because ransomware runs best on platforms that execute data fields.
  • I like Go for providing a simple but effective language. I also like go-routines as a nice way to do parallelism. The language also requires you to be quite explicit, which I find makes it nicer to read. A bit verbose at time, but at least once you learn it, the base language is not too surprising.

    For a different example, I have to use some (Node) JS at the office. It seems like an example of slapping whatever anyone comes up in a language. Even a simple thing like defining a function seems to have at least

  • I am working on a micro service written in go. I am not liking it that much, these are my pain points:

    * There is no built in support for error handling. Instead, every function returns errors and the caller needs to check. Basically the same as C. As a result, a good 30% of my code is simply error handling boilerplate.
    * Null pointer exceptions are still a thing. Modern languages such as Kotlin and Swift make null pointer exceptions a compile time error, even Typescript makes it harder to write nul

  • ...is the one the program I need to fix is written in. I've been at this for around 30 years, and I don't think I've gone out and learned a language and THEN worked with it since college. Oracle Forms, PHP, Java, Groovy/Grails, C++, Python, and many others...all learned because that's what the software I was hired to work on was written in.
  • I program both Go and Rust.
    Go; Safe, multi-threaded, channels are cool.
    ....Has GC, Limited WASM support.
    Rust; Safe multi-threaded, not need GC, great support WASM,
    ....harder to learn.

Top Ten Things Overheard At The ANSI C Draft Committee Meetings: (10) Sorry, but that's too useful.

Working...