Go Finally Returns to Top 10 of Programming Language Popularity List (infoworld.com) 74
"Google's Go language has re-entered the top 10 of the Tiobe index of programming language popularity, after a nearly six-year absence," reports InfoWorld:
Go ranks 10th in the March edition of the index, after placing 11th the previous month. The language last appeared in the top 10 in July 2017.
The re-emergence of Go in the March 2023 index is being attributed to its popularity with software engineers and its strength in combining the right features, namely built-in concurrency, garbage collection, static typing, and good performance. Google's backing also helps, improving long-term trust in the language, Tiobe said.
The languages Go beat out include "assembly language" at #11, followed by MATLAB, Delphi/Object Pascal, Scratch, and Classic Visual Basic.
Here's the complete top-ten most popular programming languages, according to TIOBE:
The re-emergence of Go in the March 2023 index is being attributed to its popularity with software engineers and its strength in combining the right features, namely built-in concurrency, garbage collection, static typing, and good performance. Google's backing also helps, improving long-term trust in the language, Tiobe said.
The languages Go beat out include "assembly language" at #11, followed by MATLAB, Delphi/Object Pascal, Scratch, and Classic Visual Basic.
Here's the complete top-ten most popular programming languages, according to TIOBE:
- Python
- C
- Java
- C++
- C#
- Visual Basic
- JavaScript
- SQL
- PHP
- Go
Its about to fall off again (Score:3)
With the number of 2023 Google layoffs, Go is surely going to fall off the list again!
Re: (Score:1)
It's amazing for microservices in the cloud.
Ironic (Score:4, Insightful)
Just after Google release yet another pointless language called Carbon. Expect Go to be deprecated in the next few years then eventually binned like most of their projects regardless of popularity.
Re:Ironic (Score:5, Insightful)
Go has a specific little niche that it does *really* well in, and its probably not that useful for anything else. But for THAT niche, its great. It does what Node.js does, except its a proper adult compiled language with a couple of specific features that make it perfect for writing servers (and no not just web servers, although i imagine it does that well) but more interesting sorts of things like Kafka task runners, TCP servers, middle ware things, and so on.
The "GoRoutine" coroutine system, and its pipes basically let you plumb together a server really quickly and it generally ends up performant as hell, critically without the callback and promise hell of the async obsessed nodejs world or the sluggish performance of the asyncio python world. Yeah you can build it more speedily and safely in rust, more object bureacratic properly with java, or more flexibly with python, or more utter rocket ship bonzo performantly with C++ but this things fast to write in (deadlines people!), works well and it does that one thing that it does really really well. And you can learn the damn thing in an afternoon.
But I wouldnt wanna write a desktop app in it. Or a kerne.... actually no that would never happen , its garbage collected, but you get my drift.
So I dont think its going away anytime soon. People are tired of unmaintainable baffling nodejs messes, and sometimes the job requires something that'll react a bit faster and with lower latency than Python currently allows. And for that reason, until something better comes along (*cough* crystallang) Go is here to stay.
Re: (Score:2)
Beyond web servers, Go is also quite good at a variety of systems programming tasks. I've used it to generate highly performant data processing programs, to run IoT tasks on a Raspberry Pi Zero (feeding data to an InfluxDB instance) and to write glue logic for running dozens of simple processing tasks in parallel that are slightly more complicated than "make" makes easy (for example, transcoding music files where the output file name depends on metadata inside the file). Others use it to manage container
Re: (Score:2)
I stopped reading when I read the word "performant". Marketspeak turns me off.
Re:Ironic (Score:4, Informative)
I am sorry to hear your vocabulary sucks so hard that you won't read things that might upset your world view. What word would you prefer? I meant more than simply "fast" or "efficient".
Re: (Score:3)
If you'd written "high-performing" instead of "highly performant", the nuance would be indistinguishable.
I struggle, too, with whether to use the full, available language, secure in the knowledge that lookups are now 2 seconds instead of a minute to grab a dictionary, or restrict my vocabulary a bit, because so many people are easily triggered by the mere possibility you are "showing off". When I've got an easy option like the above, I generally take it.
Re: (Score:2)
The original complaint was not "showing off" but using "marketspeak". I generally prefer saving keystrokes over worrying whether snowflakes will be triggered by the use of perfectly clear words. Different strokes for different folks -- and the reaction of snowflakes helps everyone else understand how seriously to take them.
Re: Ironic (Score:2)
Re: (Score:2)
I've often wondered about that. Did he really make the words up or is it just that his texts are the earliest surviving texts with the words in them?
Re: (Score:2)
What was the point of posting that?
Performant is a perfectly common term in tech speak. Are you new to the industry?
Re: (Score:2)
I'm actually nonplussed on the web server side of things. I think there are better choices (I like Go a lot, but I've never been a fan of the idea of starting your web app from writing the server itself when there are spectacularly good web servers out there (Dont even get me started on Express, what a mess).
Buf for generic "servers' (Ie I'm working on a Kafka task runner at the office right now) Go is amazing
Re: (Score:1)
Just after Google release yet another pointless language called Carbon. Expect Go to be deprecated in the next few years then eventually binned like most of their projects regardless of popularity.
I thought so too, but... it's different.
It is in fact an amazing thing.
Cross compile for my MIPS based sat receiver? Hell yes, out of the box.
Executable size? Single digit megabytes.
But shared library dependencies? NO, NONE.
Very low memory footprint.
And comparing this to Java (I work mostly with that) or nodejs? You gotta be kidding me. Check cold startup times for Cloud Run (GCP). Surprising bit is that neither python nor nodejs impress, to put it softly.
Java can get closer to GO only with "dirty" tricks
So? (Score:1, Funny)
Python - Whitespace Blues
C - Curly Brackets Babe
Java - Oracle Lawsuit Gamelan
C++ - Template of Love
C# - Lick My CLI!
Visual Basic - Embrace and Extend
JavaScript - I can't help that I'm still here
SQL - Null/Normalization
PHP - When you're dirty like me
Go - Wake me up before you wham bang
Re:So? (Score:5, Funny)
And on the oldies channel, we have
Assembly - We built this city
Fortran - Talking like Yoda
Cobol - Party like it's 1969
Flash - Ahaaaaa
SPSS - Beancounter's paradise
ALGOL - I will survive
Pascal - (some spoken word crap that everyone stops listening after it drones on for about 5 minutes of text without saying anything)
Re: (Score:2)
Re: (Score:2)
I was thinking FORTH for Flash...
TIOBE isn't a good indicator (Score:5, Insightful)
TIOBE results should be taken with a huge grain of salt. See their methodology:
https://www.tiobe.com/tiobe-in... [tiobe.com]
Basically all TIOBE does is to check search engines for "C programming", "Java programming", etc, and then read the "5 million results" stat in the corner. And then they apply arbitrary weights to different search engines.
Now it's better than nothing, but I think it's ridiculous to take this as a serious measure. It's going to vary a huge amount depending on whether say, documentation for the language tends to say "programming" or some other term like "scripting" or "coding". It doesn't account for languages. It doesn't account for code actually being written.
In other words, this is a silly measure that's barely good for anything.
Re:TIOBE isn't a good indicator (Score:5, Insightful)
It's only good for one thing, but that one thing ensures it shows up on Slashdot like clockwork.
More honest names include The Importance Of Driving Engagement (TIODE) and The Importance Of Being Clickbait (TIOBC).
Re: TIOBE isn't a good indicator (Score:2)
Delphi is more, probably, popular than Ruby. At least among those of us who use it. Itâ(TM)s amazing. Not saying Ruby is badâ¦itâ(TM)s about as popular on the job boards as Delphi (ie ⦠not).
Just because you donâ(TM)t follow or like it because itâ(TM)s based on Pascal (object pascal, actually). Take a honest look at 11.3 before deriding it.
Re: (Score:2)
It's true you should take the TIOBE results with a grain of salt. But it's at least worthwhile to know which programming languages are significant blips on the world's radar. From there, it's up to the individual to find out whether a particular language is relevant for a particular industry or task. It's also interesting to look at relative trends as new languages gain popularity, or older ones wane, like when Swift moved up and past Objective-C as the go-to language on Apple devices.
For example, in my
Re: (Score:2)
For example, Perl isn't even in the list, and I see it being used everywhere.
Re: (Score:2)
How about a survey of language requests on hiring sites? That would actually provide useful information.
Google's backing helps, improving long-term trust (Score:5, Funny)
"Finally" (Score:2)
Another /. post telling us how to think - joy.
Go is interesting but its tight integration with online repos can become quite a chore when people rename their repos, change versioning schemes, change hosting providers, etc.
No '302' support in the namespace that I can see (or at least Google doesn't use one for their modules).
It would be good to have something akin to DOI where - perhaps even google - could host an alias database to do redirects. Make the managers use signed messages for changes even.
Once a
Re: (Score:2)
Go has a solution [go.dev] to that problem, although I've never had somebody move an upstream module that I use. I have started using a forked module after the original one was retired, which causes similar issues -- but in that kind of case, a central utility should not automatically redirect people.
Go's philosophy is to not make assumptions that might break security, and third-party digital signatures for changes do not ensure security in the same way that go.sum does ("I trust the code at this address that has th
It's a terrible language - don't "go there" (Score:4, Interesting)
Re:It's a terrible comment - don't "read it" (Score:2)
Can you elaborate on what this "misery" is and how duck typing causes it?
I assume you are talking about Go interfaces, and how a value of any type that implements the interface's set of methods can be assigned to a variable with the interface type. (The compiler will generate the method table automatically.) How does that translate into more misery than having to explicitly spell out that you want your type to be usable as a Reader, a Closer, and a ReadCloser?
Re: (Score:2)
Re: It's a terrible comment - don't "read it" (Score:3)
For python we use mypy and enforce the type annotation as a requirement in our CI pipelines.
It is far from perfect but with mypy 1.0, Python 3.11, future annotation and pyupgrade... we usually know exactly what type a variable can be and strings don't randomly become integers inconsistently at runtime (bad python code can do that). Some folks want to continue using Python as a shell with data structures, but I really like working with enforces typing now that it is mature.
Re: (Score:2)
Re: (Score:2)
The implementation of interfaces is essentially the same now as it was 14 years ago [swtch.com]. The difference is that he said the itable is generated at runtime, but I believe it is now generated at compile time to make execution time and compiler diagnostics are consistent, which makes it what Wikipedia calls (and uses as an example for) structural typing [wikipedia.org]. However, the behavior between what Russ Cox wrote in 2009 and the current behavior is indistinguishable from Go code except for the time taken to generate the i
Re: (Score:2)
"'you can go to the function definition to determine what type it returns"
As I recall, when I would go to a function, I think I had to wade through the function's code to see what kind of thing it emitted. But that was hard because functions often call other functions, so you end up having to look into those too.
And then there were variables that contained a reference to something created somewhere. I recall that being a nightmare - figuring out what kind of thing those were.
Does that make sense? I spent a
Re: (Score:2)
I'm still not sure what you were looking at. The language has been extended [go.dev] since go 1.0 was released (and on a few occasions ambiguous points have been clarified) but has not changed in ways that would explain what you remember. Every function definition, even for anonymous functions (which have more verbose / awkward syntax than lambdas generally have), must have an explicit return type, and that has been the rule since before 2012. There's nothing like C++'s "auto" return type that will infer it.
Re: (Score:2)
Re: (Score:2)
Ah, I might be able to shed some light there.
There is not an explicit list of which interfaces a given type satisfies -- that is only determined when needed. One benefit is with interfaces like ReadCloser, which simplify some common uses of data streams (read data and close the source when done). This is the union of the Reader and Closer interfaces. A given type doesn't have to declare that it wants to support all three of those interfaces; it only has to implement the two methods Read() and Close(). The
Re: (Score:2)
Yes, that all sounds familiar. It causes me hours of angst, trying to make sense of other people's code. Making things worse, the Go community has a culture of using very short names for things, so searching for things was very difficult - I would get too many false positives.
I liked Go in some ways, once I learned its quirks, but I found it problematic for understanding code already written. That is a huge disadvantage for large organizations.
Another thing that got me - caused a very hard to find bug - was
I go where the work is (Score:3)
For 24 years, that's been Java and C#. And JavaScript, unfortunately, but that's typically on top of Java or C# (I refuse to take another NodeJS gig).
Can you make a living with these other languages? While I see lots of job postings requiring C++, the actual project is always in... Java or C#.
Re: (Score:3)
The C++ jobs I've had were stuff like security footage systems, finite-element graphics, and embedded stuff. Stuff where you had to know how programming languages works underneath, instead of believing whatever blogger says about a language they don't understand.
Java is EVERYWHERE!!! (Score:2, Troll)
The only jobs I see for Java and C# is for banks, insurance, and shit like that.
You're poorly informed then. Java and C# are the dominant business languages and have been for 20 years now...Java especially. Everyone uses Java somewhere. Even Facebook, a PHP champion or Twitter, a Ruby champion uses Java eventually for some mission-critical systems. Microsoft uses Java. So yeah, "banks, insurance, and shit like that" use it...as does nearly every major software company and every major tech company and every retailer...not sure what other companies really matter to you. If a compa
Re: (Score:2)
Not everything is blockchain, cryto, and metaverse (Score:3)
Never seen someone so passionately defend boring enterprise crap before. Yeah, those companies that use Java? They're using it for boring enterprise crap.
Boring stuff pays well. Also, interesting stuff and boring stuff is done in Java. And more often than not, if something is around for more than 10 years ago, it gets rewritten or partially rewritten in Java.
Not many LOVE Java, but most use it because it's the least-worst option. It scales well, is the most well-documented language I've ever seen, ever best practice known is extremely well documented and debated and most senior professionals are familiar with all of them and in agreement. It's the lea
Re: (Score:2)
Re: (Score:1)
We use Golang at our university for all of our systems integrations and shared APIs.
It's pretty good, pretty easy to work with.
Most of our developers end up writing pretty simple, legible code. I can still write spaghetti-code with it, but only because I'm very talented.
We do end up with a bit of boiler-plate around error-handling that I'm really not fond of; I think I prefer proper exceptions like most other languages, since in most cases golang errors get immediately wrapped in a stacktrace and returned i
My post from 5 years ago: (Score:3)
https://slashdot.org/comments.... [slashdot.org]
This is boring.
Elephant in the room (Score:2)
The only really interesting fight currently is python vs. matlab in the engineering niche. It not obvious but there are areas where matlab has a near monopoly.
Stupid (Score:2)
Language use doesn't change this fast. Be it open source or commercial work, projects pick a language to start and extremely rarely convert to another language. New projects are almost always in a language the team already knows.
They treat language use popularity like the cost of crypto coins. Randomly. This is all bullshit.
A Dubious Distinction (Score:2)
They've got to be kidding (Score:2)
Google's backing also helps, improving long-term trust in the language, Tiobe said.
That's funny, because everyone else in the world sees the same thing and knows for certain that things Google backs don't have a very long existence.
How does V Basic still make it to such a list? (Score:2)
Re: (Score:2)
Easily, the methodology sucks. Not my page: https://blog.nindalf.com/posts... [nindalf.com]
TL;DR: TIOBE doesn't draw from any reliable source. It just searches engines for "Visual Basic programming", grabs the "X million results found", and goes by that, pretty much. With arbitrary fudge factors per search engine.
The author of that blog post noticed the weirdness of the VB stats as well.
TIOBE just shouldn't be considered as a reliable statistic. It doesn't draw from anything real like job postings or github commits. It j
Re: (Score:1)
VBasic is still used extensively in Microsoft Office.
Re: (Score:1)
That, and the absense of Perl.
Why so many C clones? (Score:2)
Re: (Score:2)
Because everyone has their own priorities and ideas on how to fix a flaw, even if it's the same flaw.
When I look up the pitfalls in C, most come down to paying attention to what you write and validating in- and output. It's all right to shield programmers from those things, but I feel that's better left to libraries extending the language instead of throwing more sybtax in it that creates more complex and slower compilers.
Re: (Score:2)
Rust and Go are rather different approaches to replacing C with a safer alternative.
The problem is that among the three attributes of safety, speed and ease-of-use, you only get to pick at most two with current compiler technology. With C you lose safety, with Go you lose some speed, and with Rust you lose ease-of-use (at least until you've climbed a massive learning curve).
Re: (Score:1)
One would be enough, yes, but when there are several, there's not one. This is perhaps best explained by xkcd:
https://xkcd.com/927/
Googles backing also helps, improving long-term tr (Score:2)
Re: (Score:1)
LOL!!! Google will abandon anything and anyone at the drop of a hat.
Note that even Amazon's cloud supports services written in Go.
Go is not just language, but entire "swiss army knife" suite, with cross compiler being part of the standard package.
It is much more than just "another language", like Kotlin. Go is more than that. And I doubt it would disappear.
If anything, I find it surprising it's not more popular.
I haven't seen a person who would try it out and not like it.
Broken (Score:1)
Re: (Score:1)
Not impressive news (Score:1)
Re: (Score:1)