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.
Most wanted to learn (Score:5, Insightful)
Sounds like least well supported and most in flux.
Plus, it's from Google. They kill everything off. This will only kill your career.
Re:Most wanted to learn (Score:4, Informative)
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.
Re: (Score:2)
Re: (Score:1)
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.
Re: Most wanted to learn (Score:3)
Re: (Score:2)
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
Leaving off the resume... (Score:1)
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
Re: (Score:1)
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.
Re: (Score:1)
Au contraire, mon frère. How do you think engineers become managers? When old guys like me fall behind the cutting edge of technology they give us big raises to manage a bunch of young bucks who know whatever languages you happen to think are now marketable.
Re: (Score:2)
But some things kind of follow you around a bit like skunk scent. For example, MUMPS, BASIC, or COBOL.
Re: (Score:2)
Most likely to get you a job (Score:4, Informative)
Re: (Score:1)
Re: Most likely to get you a job (Score:1)
Most well-paid though:
Haskell and Cobol, probably.
Go is easy to learn (Score:2)
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.
Beanie Baby language of the month (Score:1)
Re: (Score:2)
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.
Does it have library support yet? (Score:2, Insightful)
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.
Re:Does it have library support yet? (Score:5, Interesting)
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.
Re: (Score:2)
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
Re:Does it have library support yet? (Score:5, Informative)
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.
Re: (Score:2)
Re: (Score:2)
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
Re: (Score:2)
Re: (Score:1)
Disk space is not a serious limiting factor
Disk space is absolutely still a factor due to cost concerns.
Re: (Score:2)
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
Re: (Score:3)
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)
Re: (Score:1, Troll)
Re: Simple logic (Score:1)
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.
How about Angular vs React vs Vue (Score:2)
Which one to choose? Become an expert in all 3?
Re: (Score:1)
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.
Re: How about Angular vs React vs Vue (Score:2)
Funny, since I never worked with a web framework, and never will.
Inner platforms, frameworks, and other software design anti-patterns are a sign of incompetence. And I have no interest in working for a losing competitor. I'm interested in making it lose. :)
Re: (Score:1)
Cool story.
Re: (Score:2)
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
Re: (Score:1)
Not According to Stackoverflow (Score:4, Informative)
Re: (Score:2)
Yeah, I couldn't remember where it came in, but knew it was behind Rust and Python. Cheers.
What's stopping them? (Score:2)
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
Re: (Score:2)
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 (Score:1)
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
Re: (Score:2)
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.
Re: (Score:2)
Extend with what? You claimed perfect, let's see the spec.
You're like the guys who's all, "yeah I've got this awesome technology and I'm going to build the best thing EVER with it," but when asked what that might be, all you've got is, "awesome stuff!"
You're stoopider than a clod of dirt, and that's fairly insulting to the microbes there.
Re:Bullshit (Score:4, Interesting)
What? Why would you invent a whole other language, just because you want to add reference counting memory management, for example, or add lists?
I wouldn't. I'd just use Perl, which already managed to squeeze in every paradigm, language feature, and construct that anyone thought was "best" or "perfect".
Then I'd just need to enforce a system where we all agreed on the bits of the language we wouldn't touch, because experience actually working in Perl in decades past showed us that letting people use All The Things because Duh was a really bad idea.
Bloat it up, slim it back down, spin it around, and we're through the Perly Gates.
Re: (Score:2)
You seem to forget that even Practical Extraction and Reporting Language started somewhere. It didn't start with every last turd and dingleberry.
It got there by accretion, as you suggest most languages should.
Re: (Score:2)
FSM, just read Gödel, Escher, Bach already.
I skipped substantive answers to your questions about Turing-completeness, because if you'd read it, you'd know that the bar to TC is very, very low indeed... it's difficult to extend an existing language and not accidentally make it TC if you aren't thoroughly grounded in the theory.
I have seen your argument. It's not new. I've been down the road, written the code, seen the results first-hand. Read the book. If nothing else, it'll keep you busy for another tw
Re: (Score:1)
I should clarify, I guess, for the lusers, that there is a better notation for a heterogenous type.
typedef
set{word} mySet;
Typical clueless deciples of C/C++. (Score:1)
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)
Re: (Score:2)
Ruby still sees a ton of use as a dedicated web application language.
Nothing else gets written in it.
Re: (Score:2)
Chef and Muppet are so 2010.
This is 2020, you should at least have migrated your platform deployments and continuous buzzwhoring to AWS Managed Facebook Rudder Google Ansible Saltstack.
You're going to nosedive and destroy your business by using such unfashionably stable software.
Re: What ever (Score:2)
Re: (Score:2)
The way I see Chef commonly used, it's little more than a shell script.
Re: What ever (Score:1)
Reading that list of abominations gave me cancer.
Re: (Score:2)
oh yeah? we do financial file processing batch jobs with it to from general ledger system, the stuff RPG-II did back in the day. ACH, positive pay, check reconciliation, IRS 1099 filings.... great for those 50 - 200 liner scripts. Been solid for 15+ years...
Re:What ever (Score:4, Informative)
I haven't seen a single job posting for Go.
It's popular in devops and infrastructure code. Writing a server is the original use case for Go.
Re: (Score:1)
I agree with this statement. At my workplace those are the only people raving about Go.
It's actually great (Score:3)
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.
If you need scalability (Score:2)
So not the most found. (Score:1)
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).
A vacation of the mind (Score:1)
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
haha no, not sought after by anyone that matters (Score:2)
Employers are not seeking this language, it's a fad.
Go is overrated (Score:2)
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)
What a laugh (Score:1)
Re: (Score:2)
the basic language is nice (Score:2)
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
Not liking it (Score:2)
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
The language I will learn next... (Score:1)
Go is good, Rust is great (Score:2)
Go; Safe, multi-threaded, channels are cool.
Rust; Safe multi-threaded, not need GC, great support WASM,