Rust Growing Fastest, But JavaScript Reigns Supreme (thenewstack.io) 55
"Rust is the fastest-growing programming language, with its developer community doubling in size over the past two years," writes The New Stack, "yet JavaScript remains the most popular language with 25.2 million active developers, according to the results of a recent survey."
The 26th edition of SlashData's Developer Nation survey showed that the Rust community doubled its number of users over the past two years — from two million in the first quarter of 2022 to four million in the first quarter of 2024 — and by 33% in the last 12 months alone. The SlashData report covers the first quarter of 2024.
"Rust has developed a passionate community that advocates for it as a memory-safe language which can provide great performance, but cybersecurity concerns may lead to an even greater increase," the report said. "The USA and its international partners have made the case in the last six months for adopting memory-safe languages...."
"JavaScript's dominant position is unlikely to change anytime soon, with its developer population increasing by 4M developers over the last 12 months, with a growth rate in line with the global developer population growth," the report said. The strength of the JavaScript community is fueled by the widespread use of the language across all types of development projects, with at least 25% of developers in every project type using it, the report said. "Even in development areas not commonly associated with the language, such as on-device coding for IoT projects, JavaScript still sees considerable adoption," SlashData said.
Also, coming in strong, Python has overtaken Java as the second most popular language, driven by the interest in machine learning and AI. The battle between Python and Java shows Python with 18.2 million developers in Q1 2024 compared to Java's 17.7 million. This comes about after Python added more than 2.1 million net new developers to its community over the last 12 months, compared to Java which only increased by 1.2 million developers... Following behind Java there is a six-million-developer gap to the next largest community, which is C++ with 11.4 million developers, closely trailed by C# with 10.2 million and PHP with 9.8 million. Languages with the smallest communities include Objective-C with 2.7 million developers, Ruby with 2.5 million, and Lua with 1.8 million. Meanwhile, the Go language saw its developer population grow by 10% over the last year. It had previously outpaced the global developer population growth, growing by 5Y% over the past two years, from three million in Q1 2022 to 4.7 million in Q1 2024.
"TNS analyst Lawrence Hecht has a few different takeaways. He notes that with the exceptions of Rust, Go and JavaScript, the other major programming languages all grew slower than the total developer population, which SlashData says increased 39% over the last two years alone."
"JavaScript's dominant position is unlikely to change anytime soon, with its developer population increasing by 4M developers over the last 12 months, with a growth rate in line with the global developer population growth," the report said. The strength of the JavaScript community is fueled by the widespread use of the language across all types of development projects, with at least 25% of developers in every project type using it, the report said. "Even in development areas not commonly associated with the language, such as on-device coding for IoT projects, JavaScript still sees considerable adoption," SlashData said.
Also, coming in strong, Python has overtaken Java as the second most popular language, driven by the interest in machine learning and AI. The battle between Python and Java shows Python with 18.2 million developers in Q1 2024 compared to Java's 17.7 million. This comes about after Python added more than 2.1 million net new developers to its community over the last 12 months, compared to Java which only increased by 1.2 million developers... Following behind Java there is a six-million-developer gap to the next largest community, which is C++ with 11.4 million developers, closely trailed by C# with 10.2 million and PHP with 9.8 million. Languages with the smallest communities include Objective-C with 2.7 million developers, Ruby with 2.5 million, and Lua with 1.8 million. Meanwhile, the Go language saw its developer population grow by 10% over the last year. It had previously outpaced the global developer population growth, growing by 5Y% over the past two years, from three million in Q1 2022 to 4.7 million in Q1 2024.
"TNS analyst Lawrence Hecht has a few different takeaways. He notes that with the exceptions of Rust, Go and JavaScript, the other major programming languages all grew slower than the total developer population, which SlashData says increased 39% over the last two years alone."
Rust Growing Fastest (Score:2, Offtopic)
Some Naval Jelly and a wire brush should take care of that.
Re: Rust Growing Fastest (Score:2)
I never understood the motivation behind RiiR. I have some C libs which just work. Rust can call C functions. Why not just have the Rust devs include a few #ifdevs to hook onto the exiting APIs? If I rewrite my libs to native Rust, I've got to provide some miserable translation layer for the existing C world.
Re: (Score:3)
Rust is pretty good. (Score:1)
Probably the first time in ages I started learning the language of the day and didn't hate everything.
Re: (Score:1)
if you had said "and didn't hate anything" i would say that that's just a common symptom of fanboyism.
since you said "didn't hate everything" i would assume that you have no clue about programming languages whatsoever. or you are just talking trash. either way, why do you think anybody should be interested in knowing?
Re: (Score:2)
The most important thing is getting first post on Slashdot.
An act so incredible it opens membership to elite social clubs like the GNAA.
But this is supposed to be the part where you argue with me or we wank over rust being the new C or we make jokes about programming socks.
Re: (Score:2)
nah, not on such a special day. congratulations on your admission!
Re: (Score:1)
Re: (Score:1)
Putting on my pretty pink programming socks!
They got the little toes in em.
Re: (Score:3, Informative)
The Rust community is extremely helpful. Not sure what you're talking about.
Re: (Score:3, Informative)
The community is one of the best things about rust. I've never found one person that doesn't try to be helpful, even the compiler developers go out of their way to make it easy to understand exactly why your code doesn't compile in as plain English as you can get, even drawing little diagrams in the compiler output and giving you "you probably meant to do this..." directions in the actual compiler output.
Meanwhile, look at the C++ community. Each and every single one of them swears they're the only develope
Re: (Score:2)
Re: (Score:2)
What the hell are you even basing this on?
Re: (Score:2)
Re: (Score:3)
will javascript be used in the kernel?
you jest, but you just gave someone an idea, and linus won't be around forever ...
Re: (Score:2)
and Linus[sic] won't be around forever
You might have said that with a hint of jest, but I do wonder if the one succeeding him will be just as strict on keeping the kernel code as KISS as it can be.
I understand using Rust, but if anything else than that and C taints the code, I think it'll be over for Linux in no time.
Well, Poetering will probably like it.
Re: (Score:2)
Re: (Score:1, Redundant)
The Rust community is awesome. WTF are you blabbering about?
Re: (Score:1)
LOL, yeah, well, there is that. Otherwise, I have found them to be incredibly helpful.
What we need... (Score:5, Interesting)
...is not a popularity contest between languages, but rather a full survey of what is out there, which languages are specified in a way that'll link to other languages (and which ones), which use cases are best solved by each language and what the costs are for those solutions (eg: expected defect density, typical relative code size, typical relative code performance, typical relative code complexity, typical code implementation time, typical relative memory consumption, ease of testing, and typical relative power consumption for those ideal use cases).
In the case of C alone, we've various C standards, plus the SILK extensions for parallelism bought out by Intel, plus the C variants: Verifiable C, Unified Parallel C, Objective C, C++, Aspect-Oriented C++, Functional C++, D, Zig, plus everything else on Wikipedia's list: https://en.m.wikipedia.org/wik... [wikipedia.org]
But there's lots of obscure stuff too - Nim, Lua, Eiffel, Oberon, SPARK, and so on.
Once we've a proper catalogue of what exists, and there's a LOT out there, then we can sensibly talk about what languages simply don't make any sense to use, no matter which metric you consider important, regardless of its popularity.
We already know workplaces aren't going to consider usefulness, only cost of hiring someone with the right skill set, but such a map would be helpful for those developing new tools outside the commercial sector.
For example, yes, Rust is the only language that can officially bind to the Linux kernel, but if you're developing performant, robust, out-of-tree modules that can link to the kernel, what are your choices?
Are there language that would actually perform better than C, given that modern instruction sets and CPU architectures are so advanced and C can't describe constructs that could take full advantage of them? (I'm thinking here of the case of OpenZFS, which is slow and resource-hungry - is the filesystem written in the wrong language for the job?)
Equally, are there languages that could bind to C that'd be far more robust and reliable? There's lots of C libraries out there that emphasise size for the embedded world, but there's plenty of mission-critical spaces where size is less important than the code not crashing. A safety-critical-suitable libc, even if not written in C, would get used.
But nobody can attempt any of this if we don't know what's out there, what it is ideally used for, when, when it should not be used, and what it'll typically bind to.
Re: (Score:2)
No moderator points for me today, so I'll just add a few thoughts to a quality post.
To build on the problems with compiling C for modern architectures, the C language in its simplicity doesn't give a modern compiler a lot of information to work with. I know of optimizations done in Ada that build on reasoning from the type model, to pick better representations, do pocket optimizations where a weakly typed language might have to worry about numerical situations that can't happen, etc. (Ada happens to be th
Re: (Score:2)
Oh, absolutely, and even in the Ada world, you've at least two languages (Ada itself and the SPARK subset that includes additional verification tools).
But because SPARK is a subset, as a novice to Ada compilers (even though I'm perfectly knowledgeable on coding in it), I can't tell you how, or even if, that limits the optimisations performed in Ada or whether the restricted functionality actually enables further optimisations to take place.
I know Ada is energy-hungry, because there was a table published rec
Re: (Score:2)
I remember a discussion on Ada compiler 'middle end' data flow optimizations that were possible using type information. SPARK compilers as a proper subset of Ada can take full advantage of optimizations Ada can support. It would be possible for a SPARK compiler to use information in the annotations, but I don't know if that's done.
A table on 'power consumption by language' strikes me as bizarre, but OK. I'm sure Python did terrible there as an interpreted language. The other question for something like
Re: (Score:2)
Oh, and an anecdote about Ada95 and SPARK. We did an experiment on 'incremental formal methods' where we used SPARK to implement much of the TCP protocol, but went into conventional Ada95 when we needed features not supported by SPARK. Now by conventional metrics, my productivity was terrible. I spent a week learning about Ada95 Asynchronous Transfer of Control, and wrote 5 lines of code to implement the timeout provision in TCP. Our "control" was a developer with experience implementing protocols. He
Re: (Score:2)
...is not a popularity contest between languages
this is just gossip, you are taking it way too seriously. it creates articles in tech outlets and blog entries of companies that have nothing better to show, it is business and excellent clickbait for slashdot because these threads tend to accumulate lots of replies, many of them funny which means that the usual forumites are having a good time crap-posting the popularity contest. what's not to like?
but rather a full survey of what is out there, which languages are specified in a way that'll link to other languages (and which ones), which use cases are best solved by each language and what the costs are for those solutions
oh, you're really serious! why do we need that? isn't that supposed to be already part of the experience of
Re: (Score:2)
Software engineers tend to specialise in a few tools and ignore everything outside their niche. I'm extremely unusual in that I know many computer languages of different types and different generations, and multiple operating systems. And even I can't tell you how they compare.
I'm seasoned (having started in 1978) but I cannot tell you which language is appropriate in which circumstance, nor can I tell you which languages are specified to be ABI-compatible.
There was a recent survey of energy cost for a hand
Re: (Score:2)
you are citing many wildly different parameters, from energy efficiency to abi or os compatibility, and you are comparing compiled to bytecode languages to databases and crypto libraries and hardware. i don't really see the utility of such a wide spectrum inventory which would be quite costly to maintain. every example you cited in the end narrows down to a few specific options with very specific requirements, what they have in common is that they can change wildly form use case to use case, and that the op
Re: (Score:2)
That's because the parameters are wildly varying. If you're wanting to describe a system, you can't limit yourself to a narrow subset of parameters because the entire objective is to choose something that describes the problem you're trying to solve and not describe the political prejudices.
No, the parameters should be fairly consistent.
Defect density, for example, will be a direct function of the number of lines of code needed, the clarity of those lines (ie: how easily you can see the solution space), the
Re: (Score:2)
Don't forget Circle. [circle-lang.org] It's the closest to conventional C++ of all the variants. Been around for about 8 years now, but recently got all the Rust safety features. Unlike Rust, though, you opt into the safety, not out. But for doing incremental improvements and rewrites to existing C++ code, this just might be the way to go. Nearly all the rust safety features are implemented. Pretty interesting stuff. Of course C++ is already a wildly complex language and this adds complexity to that, but not overly so
Re:What we need... (Score:4, Insightful)
Javascript is a trash language, but it's hard to escape using it.
Re: (Score:2)
Reliance on popularity is why most software out there is written using completely the wrong tools for the job.
I've been in this field a long time, and the only time I have had any confidence in what was used was when NASA asked me to research the options beforehand and publish a white paper detailing what they were and the pros and cons of using each.
Outside of that, I can say with confidence that corporations have typically decided on language for reasons of cost/ease of hiring, and not because the languag
Re: (Score:2)
I'm not happy about it, but the reality is most modern languages are adequate and the libraries are how you choose the language. I'm not happy about it because I always end up using inferior languages.
Re: (Score:2)
That doesn't matter nearly as much as you think.
For example, Java has complete access to C++ libraries via the JNI.
https://amadoruavs.medium.com/... [medium.com]
Python can talk to C and C++, so programs in either language can work with Python libraries and vice versa.
Fortran can also intetoperate with C/C++, so it automatically follows that a shim layer is sufficient to get Python or Java to intetoperate with Fortran. Does such a shim exist? It's not documented and, with Freshmeat long extinct, it's not trivial to find
Re: (Score:2)
Re: (Score:3)
C++ is usable for a backend, but you'd absolutely need a Java shim layer, where the Java handles the Web interface itself. Java is very good at that bit, and there are plenty of engines (Tomcat, JBoss, etc) that can facilitate.
You'd really want to keep as much in Java as possible, because hybrid language solutions are more complex and complexity is the enemy, but Java isn't terribly performant, the garbage collector is a damn nuicense, and real-time is sheer fantasy because Java isn't going to be determinis
Re: (Score:1)
The garbage collector(s) got changed more than ten years ago.
For deterministic Java, there are special VM vendors that provide that.
Keep in mind: malloc and free is not deterministic either.
And that doesn't describe the specialists churned out today.
On my business card, the description about myself is: Software Generalist
Re: (Score:2)
FFI interfaces suck. You have to convert types from one language to another and make all sorts compromises in order to get it working well. FFI interfaces are fast but they are neither easy nor safe. Just look at all the security issues with Java when they were offloading much of their functionality via JNI calls and those underlying libraries were not secure. I tried using JNI when I had to interface with some hardware. It worked, but would have been easier to just write in C. Using JNI requires usi
Re: (Score:2)
Hire good programmers and teach them the language you use on this project.
The one hard-and-fast rule I had in hiring is "every developer must demonstrate proficiency in 2 -different- languages. C/C++ counts as -1-." The more languages you learn, the more ways you learn how to think about the problem and its solution.
Re: (Score:2)
So using an obscure language makes it harder to hire people.
Re: (Score:2)
Well, people like that are not the kind of people I'd want to hire.
Your mileage/experience may vary, of course.
Re: (Score:2)
Re: (Score:1)
I was once at a talk with Bjarne Stroustrup in Frankfurt/Germany. Around 1993 or so.
He finished his talk with something like:
Programmers should keep learning more programming languages.
And humans should keep learning several natural languages.
The rest of the talk I have completely forgotten.
Re: (Score:2)
The more we learn about the brain, the better the natural language advice sounds. Polyglots have greater resistence to the effects of ageing and greater mental capacity when all else is equal.
It's sound programming advice, too. Most programming languages have a relatively narrow window of where they're ideally suited. Ones that don't will be ok for many things but won't be great at any of them.
You have a javascript compiler (Score:2)
Everyone has one, even people with phones and such.
Rust you have to install.
Re: (Score:2)
Sort of. JIT for JS only clicks in when the source is crafted as if it were a compiled language. Half the language has to be stripped out or it don't compile. It may as well be another language.
Single use plastics still increasing (Score:1)
They're very popular, especially in developing countries
Mmm... (Score:2)
I'll take the one with sour cream and tomatoes.
JavaScript! (Score:2)
For when you're too "challenged" to actually be an actual developer!
Seriously. One of these is a compiled solution, the other enables the kludging together of garbage kludges... and we're excited!
Study (Score:1)