On 15th Anniversary, Go Programming Languages Rises in Popularity (go.dev) 40
The Tiobe index tries to track the popularity of programming languages by counting the number of search results for the language's name followed by the word "programming" (on 25 different search engines). And this month there were some surprises...
By TIOBE's reckoning, compared to a year ago PHP has now fallen from #7 to #12, while Delphi/Object Pascal shot up five spots from #16 to #11. In that same year, Fortran jumped from #12 to #8 — while both Visual Basic and SQL dropped down a single rank. Toward the top of the list, C actually fell from the #2 spot over the last 12 months to the #4 spot.
And Go just reached the #7 rank on the TIOBE's ranking of programming language popularity — "an all time high for Go," according to TIOBE CEO Paul Jansen. In this month's note, he explains what he thinks is unusual about this — starting by saying that Go programs are both fast, and easy in many ways — easy to deploy, easy to learn, and easy to understand. Python for instance is easy to learn but not fast, and deployment for larger Python programs is fragile due to dependencies on all kind of versioned libraries in the environment.
If compared to Rust for instance (another contender for a top position), Go is a tiny bit slower, but the Go programs are much easier to understand. The next hurdle for Go in the TIOBE index is JavaScript at position #6. That will be a tough one to pass. JavaScript is ubiquitous in software development, although for larger JavaScript systems we see a shift to TypeScript nowadays.
"If annual trends continue this way, Go will bypass JavaScript within 3 years," TIOBE's CEO predicts. (Adding "Let's see what the future has in store for Go...") Although the Go team actually has specific plans for the future, according to a blog post this week celebrating Go's 15th anniversary: We're working on making Go better for AI — and AI better for Go — by enhancing Go's capabilities in AI infrastructure, applications, and developer assistance. Go is a great language for building production systems, and we want it to be a great language for building production AI systems, too... For AI applications, we will continue building out first-class support for Go in popular AI SDKs, including LangChainGo and Genkit. And from its very beginning, Go aimed to improve the end-to-end software engineering process, so naturally we're looking at bringing the latest tools and techniques from AI to bear on reducing developer toil, leaving more time for the fun stuff — like actually programming!
TIOBE's top 10 programming language rankings for the month of November:
By TIOBE's reckoning, compared to a year ago PHP has now fallen from #7 to #12, while Delphi/Object Pascal shot up five spots from #16 to #11. In that same year, Fortran jumped from #12 to #8 — while both Visual Basic and SQL dropped down a single rank. Toward the top of the list, C actually fell from the #2 spot over the last 12 months to the #4 spot.
And Go just reached the #7 rank on the TIOBE's ranking of programming language popularity — "an all time high for Go," according to TIOBE CEO Paul Jansen. In this month's note, he explains what he thinks is unusual about this — starting by saying that Go programs are both fast, and easy in many ways — easy to deploy, easy to learn, and easy to understand. Python for instance is easy to learn but not fast, and deployment for larger Python programs is fragile due to dependencies on all kind of versioned libraries in the environment.
If compared to Rust for instance (another contender for a top position), Go is a tiny bit slower, but the Go programs are much easier to understand. The next hurdle for Go in the TIOBE index is JavaScript at position #6. That will be a tough one to pass. JavaScript is ubiquitous in software development, although for larger JavaScript systems we see a shift to TypeScript nowadays.
"If annual trends continue this way, Go will bypass JavaScript within 3 years," TIOBE's CEO predicts. (Adding "Let's see what the future has in store for Go...") Although the Go team actually has specific plans for the future, according to a blog post this week celebrating Go's 15th anniversary: We're working on making Go better for AI — and AI better for Go — by enhancing Go's capabilities in AI infrastructure, applications, and developer assistance. Go is a great language for building production systems, and we want it to be a great language for building production AI systems, too... For AI applications, we will continue building out first-class support for Go in popular AI SDKs, including LangChainGo and Genkit. And from its very beginning, Go aimed to improve the end-to-end software engineering process, so naturally we're looking at bringing the latest tools and techniques from AI to bear on reducing developer toil, leaving more time for the fun stuff — like actually programming!
TIOBE's top 10 programming language rankings for the month of November:
- Python
- C++
- Java
- C
- C#
- JavaScript
- Go
- Fortran
- Visual Basic
- SQL
perl less used than prolog? (Score:3, Insightful)
lol, that is really believable.
Re:perl less used than prolog? (Score:5, Informative)
TIOBE isn't a measure of use.
It's a measure of search engine activity.
I have lots of legacy Perl code, run it often, and occasionally need to tweak it.
But do I search the web for help? No. So, my use is invisible.
Colleges use Prolog in "programming language survey" classes, exposing students to half a dozen languages a semester. Prolog is used as an example of a declarative language that differs from normal imperative languages.
So, students are trying to write their first Prolog program and Googling for help. Once the program is done, they'll turn it in and never use Prolog again.
Re: (Score:3)
Re: (Score:2)
More accuratly, results returned for +" programming", not searches. https://www.tiobe.com/tiobe-in... [tiobe.com]
Not even amount of code.
But even if it did, it can't reflect all the private code out there.
Re: (Score:2)
Popularity measure by a specific search query?! (Score:1, Funny)
Why, when I'm working, churning out line after line of code all day, I often take a break and google "C++ programming".
Just to keep my mind fresh.
These numbers are pure bullshit.
I really hate Go (Score:2)
We use it at work. Why would anyone ever choose this?
Re: (Score:2)
Can you elaborate? Because from quick look I had a while back, it at least looks a lot more accessible than Rust. What are your specific pain-points?
And no, I am not looking to then heap more-or-less valid (or invalid) counter-arguments on that. I am actually interested.
Re: (Score:3)
Fairnuf. Let me try.
I don't think it's very readable. I think, the way we use it, all the code is split into a million small files. On for each function. I miss generics.
The one good thing that I do like about Go. The actual Go channels, aren't really applicable to our case, as we are building a simple website. The concurrency comes naturally from the requests. Pointers? Who uses pointers in 2024?
I have used many languages over time. Favorites are Perl and C#. But many years of C and C++ as well. But I don'
Re: (Score:2)
Go has had generics for years. The splitting things up too much (I call it confetti code) is something you see from many developers in any language. Nothing in Go forces you to do that.
As for C#, I think many Go users would love it if they gave it a fair shot, but people in the Unix ecosystem would be far more likely to try Go.
Re: (Score:2)
Confetti code. I really love that expression. It's exactly what it is. :)
And i have seen it in C# as well.
Not all new things are progress IMO. :)
Re: (Score:3)
Confetti code. I really love that expression. It's exactly what it is. :)
And i have seen it in C# as well.
Not all new things are progress IMO. :)
For me, it's a holdover from how I programmed in Fortran; writing subroutines so it was easy to reuse code. Just garb the punch cards, drop them in, and of you go. Functions in Python are my modern set of punch cards.
Re: (Score:2)
Thanks!
Re: (Score:2)
Pointers? Who uses pointers in 2024?
By "Pointers" I take it you mean the choice of passing something by reference or by value.
Indeed, this is a complication in Go, that other languages (such as Java, C# (?), Javascript) have avoided, by passing scalar values always by value and composite types (arrays, structures) always by reference. I assume the designers of Go did it this way for performance and flexibility reasons, thus making the language somewhat lower level than languages that don't have such "pointers".
An example is the Go time.Time
Re: (Score:2)
Because time costs time, mate!
Re: (Score:2)
In Go, the only time you need to pass data by pointer rather than value is to change the caller's copy of it. The only time you have to pass by non-pointer value is if you want to make local-only modifications to the contents. Good practice says that methods for a given type should be consistent about having pointer or non-pointer receivers, and the only time.Time methods with pointer receivers are deserializers (GobDecode, UnmarshalJSON, etc.). Similarly, the only pointer parameters to time.Time methods
Re: (Score:2)
I have found that using a pointer to a struct is generally safer. I've been bitten many times by modifying a copy instead of the actual value. As an example, if you iterate over an array of struct values, in each iteration you get a copy of a slice element. If you change a struct field in the element, your are modifying a copy of it, not the element in the slice, unless you explicitly save the modified element back to the slice. The compiler gives you no warning.
If you accidentally forget to use a pointe
Re: (Score:2)
The change in scope of for-loop variables is in the direction that you say is dangerous, though.
How many times do you normally repeat a mistake? I got bitten once by a broadly similar mistake -- something like "m[k].f = 1" when trying to update a field in a struct stored in a map -- and learned my lesson after that.
Re: (Score:2)
I never repeat the same mistake. I always instantiate a new mistake from a type of mistake.
I don't remember whether I've used a slice/map of values or pointers. Even worse, I sometimes change my mind and change pointers to values. It's then that code like the code you mentioned, "m[k].f = 1" may still compile, but not work correctly.
Re: (Score:2)
> But our targe are 2 servers, and the cost of a dev team dwarfs the cost of the 2 servers.
That's only in the short-term view. Granted, over 1 month devs will cost more than AWS. Now extrapolate that over 10 years, I'm pretty sure at some point, that fixed development cost will be eclipsed by the variable cloud provider costs. Now factor in AI workloads where the AWS bills hit 7 figures, still think dev time is the biggest cost?
Go is opinionated by design. For that reason, Go is orders of magnitude more
Re: (Score:2)
That Rust is hard to learn is clearly stated by the Rust Foundation.
I realise that you are trying to making a satirical point about how evangelic that Rust community are, but it doesn't fit with reality. "Rust is hard to learn" is widely acknowledged, which is why "Make Rust easier to learn" is a major objective for Rust language development.
Re: (Score:2)
Do Rustaceans have any good ideas on how to put the genie of language complexity back in the bottle? Once a language feature gets used, it's incredibly hard to make people stop using it. One can add a simpler way to do the same thing, but then a lot of people need to learn both the old and the new way.
Add macros (Score:2)
So you can have an adhoc language on top of your language.
Re: (Score:2)
They cannot. Rust is a design for very advanced coders or even CS types. For example, you need to be able to handle non-standard OO features and functional constructs and quite a bit more. I am doubtful this design makes a lot of sense. The main stated purpose of Rust seems to be to reduce security problems. But exactly the coders that can easily learn it will not have much of a problem here, if at all. At the same time, average and below-average coders to create a lot of insecure code, but at the same time
Re: (Score:2)
Re: (Score:2)
Actually, I think go has a very large number of very nice features. But the development environment once you get past a single file is terrible...at least unless you set up a web site to hold the project, which I've never tried. And I'm not sure about documentation of your code. (That's what turned me off D.) Doxygen isn't great, but it's better than any alternative I've encountered, though JavaDoc is better in some ways.
Re: (Score:2)
It's useful as a language for those kinds of "glue" things that are too big to be a good fit for a scripting language, but not a full-blown application. The Erlang-inspired concurrency model is simple and easy to use. No performance-sapping global interpreter lock like Python. It's cross-platform. It's relatively simple, especially compared to monsters like C++, but even compared to Java and C#. It's a niche language, but it's a fairly big niche.
Fortran at #8? (Score:3)
How much you wanna bet the most popular query is "why does Fortran programming suck so much?"
More seriously - is that truly the entirety of the "algorithm" they use? That's ludicrous. Who even writes a query about a language and adds the word "programming" to it?
Re: (Score:2)
I have no idea why Slashdot continues to post their shit. It isn't news for nerds, it doesn't matter. I have no idea how they've managed to last this long and how they're big enough to need people with titles like "CEO". It's a completely bogus metric, and programming language popularity doesn't jump around month-by-month like they try to say. Projects aren't migrated from one language to another anywhere near that quickly.
Re: (Score:1)
How much you wanna bet the most popular query is "why does Fortran programming suck so much?"
It's more likely to be
Why do all super-computer benchmarks use Fortran?
or
Why is Fortran faster than Go, Rust and C++?
or
Why do Fortran programmers think I am not a scientist because I use Go, Rust or C++?
Fairly sure they are asking ChatGPT for this list (Score:2)
So Python-programmers most resitant to ChatGPT? (Score:1)
While PHP-Programmers seem to adopt to use ChatGPT much more quickly and thus not ranking in this search-engine-test just as high as before?
No way SQL is lower than Fortran and VB (Score:2)
SQL underlies code for all kinds of languages and projects of all types. Yes, NoSQL is all the rage, but when companies need operational data storage, they still turn to SQL I really don't put a lot of stock in these rankings.
How is Go the headline here? (Score:2)
It's finally become more popular (in terms of web searches) than Fortran? Is that some kind of major accomplishment?
That's kind of like a story about web browser usage, and the headline is that Samsung Internet is finally more popular than Opera. https://www.oberlo.com/statist... [oberlo.com]
Search result is a poor metric (Score:2)
It highlights those seeking help with a technology, not those using the technology without difficulty. Professional programmers rarely need to search for help.
As a simple example the JDK includes documentation of the entire API.
Great Language (Score:2)