Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Programming

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:
  • Python
  • C
  • Java
  • C++
  • C#
  • Visual Basic
  • JavaScript
  • SQL
  • PHP
  • Go

This discussion has been archived. No new comments can be posted.

Go Finally Returns to Top 10 of Programming Language Popularity List

Comments Filter:
  • by sonoronos ( 610381 ) on Sunday March 12, 2023 @06:54AM (#63363363)

    With the number of 2023 Google layoffs, Go is surely going to fall off the list again!

  • Ironic (Score:4, Insightful)

    by Viol8 ( 599362 ) on Sunday March 12, 2023 @07:04AM (#63363381) Homepage

    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)

      by sg_oneill ( 159032 ) on Sunday March 12, 2023 @08:22AM (#63363475)

      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.

      • by Entrope ( 68843 )

        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

        • by gtall ( 79522 )

          I stopped reading when I read the word "performant". Marketspeak turns me off.

          • Re:Ironic (Score:4, Informative)

            by Entrope ( 68843 ) on Sunday March 12, 2023 @09:24AM (#63363571) Homepage

            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".

            • by rbrander ( 73222 )

              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.

              • by Entrope ( 68843 )

                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.

          • Shakespeare made up words all the time. Even in his day the groundlings and nobility were confused by his firehose of neologisms. He was performent as all fuck in making up new words.
            • by jeremyp ( 130771 )

              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?

          • What was the point of posting that?

            Performant is a perfectly common term in tech speak. Are you new to the industry?

        • 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

    • by Kartu ( 1490911 )

      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)

    by Anonymous Coward
    Will they play live on Top Of The Pops?

    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
  • by vadim_t ( 324782 ) on Sunday March 12, 2023 @07:09AM (#63363397) Homepage

    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.

    • by Entrope ( 68843 ) on Sunday March 12, 2023 @08:06AM (#63363455) Homepage

      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).

    • 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

    • by alantus ( 882150 )
      Exactly, I'm tired of seeing so many posts in Slashdot about this index that doesn't have the implied meaning of popularity.
      For example, Perl isn't even in the list, and I see it being used everywhere.
    • How about a survey of language requests on hiring sites? That would actually provide useful information.

  • Please time your jokes appropriately. It is not April fools yet.
  • 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

    • by Entrope ( 68843 )

      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

  • by cjonslashdot ( 904508 ) on Sunday March 12, 2023 @08:19AM (#63363471)
    The "duck typing" is pure misery for someone else trying to decipher your code.
    • 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?

      • The compiler-generated method table would help a lot. That was not available when I was using Go a few years ago. I used Go for about a year, and I had to reverse engineer the Go implementation of the Docker v2 Registry code. It was a really, really awful experience. I remember looking at a function call and thinking "What kind of thing is that returning?" and not being able to find out. Same experience with Python. Do the method tables solve that?
        • 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.

          • Yes, Guido van Rossum himself wrote, "I've learned a painful lesson, that for small programs dynamic typing is great. For large programs, you have to have a more disciplined approach. And it helps if the language actually gives you that discipline, rather than telling you, 'Well, you can do whatever you want.' " (see this slashdot post: https://m.slashdot.org/story/3... [slashdot.org])
        • by Entrope ( 68843 )

          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

          • "'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

            • by Entrope ( 68843 )

              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.

              • Hmmm. I remember that I could not tell what type an object was - I had to go searching to see what methods it implemented. I could not tell at a glance if the object supported a given method.
                • by Entrope ( 68843 )

                  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

                  • 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

  • by CubicleZombie ( 2590497 ) on Sunday March 12, 2023 @08:36AM (#63363497)

    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#.

    • The only jobs I see for Java and C# is for banks, insurance, and shit like that.

      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.
      • 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

        • Never seen someone so passionately defend boring enterprise crap before. Yeah, those companies that use Java? They're using it for boring enterprise crap.
          • 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

    • 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

  • by drolli ( 522659 ) on Sunday March 12, 2023 @08:45AM (#63363507) Journal

    https://slashdot.org/comments.... [slashdot.org]

    This is boring.

  • 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.

  • 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.

  • Passing assembly language on a programming popularity list is akin to passing cow dung on a favorite aroma list.
  • 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 Visual Basic still make it to such a list, when other easy languages like Python exist? Existing code base? .Net letting new Visual Basic coding to be done? Who is teaching it/promoting it to new programming students?
    • by vadim_t ( 324782 )

      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

    • by CAIMLAS ( 41445 )

      VBasic is still used extensively in Microsoft Office.

    • by jonadab ( 583620 )
      Yeah, VB is the one that surprises me as well.

      That, and the absense of Perl.
  • Why so many C clones? I don't mean C# which is a Java clone, but languages like Go, Rust and others which are branded as "C with the memory dangers". Wouldn't one such "better C" be enough? Is this one of those situation where "everyone wants to make their own", like how there used to be dozens of text editors, none of which was any better than the other?
    • 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.

    • 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).

    • by jonadab ( 583620 )
      > Wouldn't one such "better C" be enough?

      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/
  • LOL!!! Google will abandon anything and anyone at the drop of a hat.
    • by Kartu ( 1490911 )

      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.

  • All they have done is prove how broken that index is. C. LOL.
    • by jonadab ( 583620 )
      The thing about C is that a lot of really really important infrastructure software is written in it, both in terms of software development infrastructure (the compilers and interpreters for *most* programming languages including most of the ones on that list, git and several other major version control systems, most of the text editors that programmers and system admins use including all of the really important ones, ...) and also internet infrastructure (all of the OS kernels that are suitable for use on r
  • If you really want to shake the news, tell that Perl is back to the top ten.

Avoid strange women and temporary variables.

Working...