


Developer Survey: JavaScript and Python Reign, but Rust is Rising (infoworld.com) 60
SlashData's "State of the Developer Nation" surveyed more than 20,000 developers in 166 countries, taken from December 2021 to February 2022, reports InfoWorld.
It found the most popular programming language is JavaScript — followed by Python (which apparently added 3.3 million new net developers in just the last six months). And Rust adoption nearly quadrupled over the last two years to 2.2 million developers.
InfoWorld summarizes other findings from the survey: Java continues to experience strong and steady growth. Nearly 5 million developers have joined the Java community since the beginning of 2021.
PHP has grown the least in the past six month, with an increase of 600,000 net new developers between Q3 2021 and Q1 2022. But PHP is the second-most-commonly used language in web applications after JavaScript.
Go and Ruby are important languages in back-end development, but Go has grown more than twice as fast in the past year. The Go community now numbers 3.3 million developers.
The Kotlin community has grown from 2.4 million developers in Q1 2021 to 5 million in Q1 2022. This is largely attributed to Google making Kotlin its preferred language for Android development.
It found the most popular programming language is JavaScript — followed by Python (which apparently added 3.3 million new net developers in just the last six months). And Rust adoption nearly quadrupled over the last two years to 2.2 million developers.
InfoWorld summarizes other findings from the survey: Java continues to experience strong and steady growth. Nearly 5 million developers have joined the Java community since the beginning of 2021.
PHP has grown the least in the past six month, with an increase of 600,000 net new developers between Q3 2021 and Q1 2022. But PHP is the second-most-commonly used language in web applications after JavaScript.
Go and Ruby are important languages in back-end development, but Go has grown more than twice as fast in the past year. The Go community now numbers 3.3 million developers.
The Kotlin community has grown from 2.4 million developers in Q1 2021 to 5 million in Q1 2022. This is largely attributed to Google making Kotlin its preferred language for Android development.
Re: Obviously (Score:2)
All I see is that there's a script kiddies hype right now.
I would hate trying to maintain those systems when they grow old.
Re: (Score:2)
This
Re: (Score:2)
Re: (Score:2)
I am still waiting for a computer that can be programmed in Esperanto :-)
Re: (Score:2)
You say tomato I said tomato (Score:1)
Really who cares? Ultimately all computer languages do the exact same thing, they just express it in a different manners.
Re: You say tomato I said tomato (Score:3, Informative)
Re: You say tomato I said tomato (Score:4, Funny)
Re: (Score:2)
C# makes me cry when I have to compile someone's [github.com] code on Linux
Re: You say tomato I said tomato (Score:1)
dotnet publish -c release -r linux-x64
Occasionally you need to use a different RID, but they're all listed here:
https://docs.microsoft.com/en-... [microsoft.com]
Re: (Score:2)
It did not go well.
All sorts of dependencies that required unknowable knowledge to install.
I know a guy who has done it and when I get back from vacation, he's going to show me how. I glanced at the instructions and they were multi-page long.
Why can C# projects not compile with ./configure; make; make install?
Personal projects (Score:5, Interesting)
People like Rust because they try it out for fun personal projects. Guess what? Any language is more fun when you're doing a fun personal project with it.
I tried using it for embedded development and the syntactical sugar and lack of maturity of the libraries (and compatibility nightmare if you tried to interface with code that can't be proven to be safe) made it extremely miserable to use. I switched back to C and just got the project done.
Re:Personal projects (Score:4, Interesting)
I've only poked at it a bit, but my impression is that Rust is an extremely opinionated language, and as such, takes a bit of time to figure out how to wrap your head around it, such that you're not constantly fighting the language / compiler.
If anything, I think developers love the IDEA of a high-performance, memory-and-thread-safe by default language. I'm a C++ developer, and I've carefully cultivated methods and best practices for writing memory-safe and thread-safe C++ code, but it requires a lot of work to do so. I have to admit, I like the idea of a language that makes this possible in all the code you write by default.
Re: (Score:1)
Re: (Score:3)
Re: (Score:2)
I think that this depends. Integration with C libraries is certainly possible and the tooling has made this easier over the years, to the point that there are now quite a few crates out there supporting many C packages. In general, though, I think you are just saying that C is more mature than Rust. And that, of course, is true. It is a hill that Rust will have to (and is) climb.
Your argument is also based on "if you know what you are doing" and this is the big one. Rust's design means that you should be ab
Re: (Score:2)
Agree that Rust is less mature (of course!) however, it's kinda disappointing that no language (with maybe the exception of C++) has yet approached the coverage in terms of library support, and C++ is kinda cheating because it is a superset of C. I worry that languages like Rust will take longer to get viable than I have left in my career !
New languages ought to make integration/coexistence with C it as easy as with C++/C integration, that would really power up their adoption in my view.
By the way I am ver
Re: (Score:2)
New languages ought to make integration/coexistence with C it as easy as with C++/C integration
You mean like D and Zig do it? (D of course does it both with C *and* with C++...)
Re: (Score:2)
Re: (Score:2)
People like Rust because they try it out for fun personal projects. Guess what? Any language is more fun when you're doing a fun personal project with it.
Though I am using Rust for what you could call a fun project, there is serious intent. This relates to memory management. I tend to use C++ for most serious programming, and I appreciate how many of the problems of complex heap allocations are largely solved by constructors and destructors, used according to the RAII paradigm. This is much better than C, in my opinion. Most of the C I write is for small embedded stuff, and I have never used malloc in such projects. On the few occasions I tried to write a PC
Cobol : Can't touch this! (Score:5, Insightful)
Cobol is still holding on to all major financial backends.
Coboltime!
Re: (Score:3)
Re: (Score:2)
I'd like to see some citations here. I've been in FinTech for a long time and yeah, in the mid 90's we still had a /little/ cobol hanging around (big wall street firm), but it was a majority cfront flavored C++ even then.
And since then I've seen less and less of it.
I think this has moved into trope status.
JavaScript fatigue (Score:5, Interesting)
Re: (Score:2)
Re: (Score:2)
What do you mean?
COBOL rules... GOTO forever!
You kids and your structured languages. You even younger kids and your object-oriented languages.
Bah... COBOL and FORTRAN rule!
Re: (Score:2)
Re: (Score:2)
Don't feel bad. I can mark the moment of my declining interest in programming with the popularity of JS. It seems every 150iq 23 year old is creating yet another new library to do something that was already done but different (or to make something which used to be able to be done but can no longer be done because something new came along able to be done) Wow that's a mouthful.
I think you've summed up my feelings succinctly. Thank you for that.
Re: JavaScript fatigue (Score:1)
Re:JavaScript fatigue (Score:4, Insightful)
I'll never understand why so many developers mistake libraries and frameworks for the language. You don't need to use the flavor of the month framework or the latest wiz-bang library. In fact, I'd encourage you to actively avoid them.
This is true for every language. Let the kids play with the shiny shiny. They have time to waste.
Re: (Score:2)
The issue being that those attempts at frameworks exist for a reason. The standard language is so tedious and awkward when it comes to connecting javascript data to the actual UI.
If your writing a small amount of javascript, then you are certainly better off skipping a framework and going manually.
As it goes up in complexity... well good luck with all the tedious event listening and DOM manipulation.
On the flip side, use a framework and good luck trying to make heads or tails of it in the browser debugger.
T
Re: (Score:2)
The standard language is so tedious and awkward when it comes to connecting javascript data to the actual UI.
I'll never understand why so many developers mistake libraries and frameworks for the language. The DOM API is not the language. It's also not complicated, awkward or tedious.
No, your complaint isn't with JavaScript or the DOM API, it's with HTML.
well good luck with all the tedious event listening and DOM manipulation.
What do you find tedious about either of those? My guess is that you've dramatically over-complicated things, probably because you're trying to use JS like it's Java or C# and/or you really just don't understand the DOM. That's probably not completely your faul
Re: (Score:1)
Re: (Score:3)
There are definitely some weird quirks about JavaScript that can throw a person off. But personally I find that I am way more productive with it than Java, especially where anything having to do with JSON is involved. And that's super important, because JSON is a basic
data transfer standard.
I do all my server-based work with Node.js which is JavaScript, and all my browser work with JavaScript too. Very nice to do everything in the same language. If you prefer a strongly typed language you can use TypeScript
Re:JavaScript fatigue (Score:5, Informative)
Part of it is that the language had some bad design decisions, and as they went about re-inventing themselves to have different best practices, the compatibility situation made them 'settle' for some not quite normal syntax. A lot of documentation still focuses on old workaround ways (e.g. javascript didn't have a good 'module' approach for a long time, so a common practice that still is in tutorials is to define a bunch of stuff in an anonymous closure, and then 'export' stuff by assigning to 'window')
Further, the connection between the page elements and javascript is a bit awkward, and every few weeks someone comes up with a 'framework' aimed at finally connecting up the code and document elements 'seamlessly' in yet another way.
Finally, it's conspicuously a language without any multiprocessing/multithreading model at all, and instead for the longest time basically had to do any sort of conversation as broken up into dozens of callbacks. Significantly mitigated by the async/await mechanism to have flow better organized but still reasonably concurrent.
As far as language syntax itself, it isn't too bad, but I can see what could trip people up. One the meaning of 'this' can be very weird and rarely useful for most people, so you want to explicitly manage functions in scopes. The fact that the 'arrow' syntax is often promoted as 'better' than the function keyword, and thus commonly you see a function definition as assigning an arrow function to a name, though in practice it's really supposed to be more a lambda expression....
For another, coming from languages that more rigidly present concepts as 'classes', the more 'loose' nature of just nesting functions can be a bit jarring.
But by far, the confusion because the standard javascript has so much tedium people consider a 'framework' a requirement and people get in near religious debates about whether it's best to use Angular, or React, or Vue, or Svelte, or SolidJS, or...
Re: (Score:2)
It's like you've never actually used it...
Re: (Score:2)
Care to elaborate on how you believe my experience is somehow invalid? I do use it and it's the most disliked part of my job for the reasons I cited.
Re: (Score:2)
You should learn the language, it's much better once you do. I know you don't know the language because of the things that you've written, for example:
One the meaning of 'this' can be very weird and rarely useful for most people,
The behavior of `this` is not complicated at all and is perfectly reasonable once you understand what it refers to and why. To do that, however, you'd need to actually understand the language. Arrow functions make `this` work a bit more like you're used to, but it goes completely against the rest of the language and should be avoided for that reason. Tho
Re: (Score:2)
You should learn the language, it's much better once you do. I know you don't know the language because of the things that you've written, for example:
Surprisingly, not everyone feels the same way about something. Just because you have found yourself a fan of it, doesn't mean that anyone who disagrees just hasn't learned it.
(If you're still thinking in terms of classes, you're doing it wrong.)
But that's just the thing, being bound to the DOM element associated with isn't something that most people have a use for. I know what 'this' does, but I can still recognize it as 'weird' and not aligned with developers. Ilke you said, you've found little use for it yourself, yet it's a prominent facet for those coming from 'object ori
Re: (Score:2)
Surprisingly, not everyone feels the same way about something. Just because you have found yourself a fan of it, doesn't mean that anyone who disagrees just hasn't learned it.
It has nothing to do with feelings. As I pointed out, some of the things you said indicate that you don't, in fact, understand the language. I even gave examples.
Your examples are all related to the DOM API, which, I've pointed out multiple times, is not the language. Still, your criticisms are very odd. I can think of things that I would change or do differently, but not these.
Simply the tedium of things like having to explicitly declare connect event handling to DOM elements and your event handler frequently having to prevent default depending on what you are doing.
It's a single line, and only only something you need rarely. e.PreventDefault(); at the top of the handler. That's it. If th
Re: (Score:2)
But I heartly recommend these other two:
JavaScript for impatient programmers [exploringjs.com] and Eloquent JavaScript [eloquentjavascript.net]
Re:JavaScript fatigue (Score:5, Insightful)
It's not your fault. JavaScript was a really simple, almost elegant, language that was just poorly understood. It wasn't difficult to learn, but it was different. The trouble was that it looked familiar, so very few developers took the time to learn it. That included people writing books and online tutorials.
ECMA decided that it was better to pollute the language with new features to make JavaScript, used a particular way, more familiar for developers coming from languages like Java and C#. This was a horrible mistake.
Now, there are essentially two different "versions" of JavaScript: the old, sensible but misunderstood one, and the new, badly designed one that lets you pretend that classes are a thing, until you find out that it was all just a lie.
So, yes, a lot of the syntax is confused and stupid, but only because some morons at ECMA really wanted JavaScript to be a completely different language. Arrow functions, for example, change the behavior of `this`. It's preposterous.
Naturally, crap you find online freely mixes and matches between the two.
If you want to give it a real shot, get Crockford's book and try to stick to tutorials written between 2008 and 2014. Once you get a handle on the core of the language, then you can learn about all the ES6 trash and actually understand what's really happening. I can assure you that there is a good language hiding in there that's actually really easy to use.
Re: JavaScript fatigue (Score:2)
I can program in Java and a little in C++ so I should be able to pickup JS but I am failing. :(
The second language is always the hardest. Usually you have an idea of how to do it in your better known language and don't have the right terms and mindset to figure out how to do it in another. It depends on what your goals are, but you're usually better off knowing how lots of different languages handle things so when you come across something different you can just say "Oh, thing language has a different stupid way of doing that." Because they all have their WTF parts.
Re: (Score:2)
Rust Never Sleeps (Score:2)
You had one job ...
Re: Rust Never Sleeps (Score:2)
Finally. This shouldâ(TM)ve been the first post.
Python and Dante (Score:1)
Re: (Score:2)
https://www.youtube.com/watch?... [youtube.com]
Could be worse, you could be trapped here . . .
Shame.. (Score:3)
Re: (Score:2)
Thankfully for us, it seems most people disagree with that opinion.
Re: (Score:2)
Re: (Score:2)
How else would you define "good" syntax? Apart from just the fact that objective criteria for "good" are tricky, are you talking about good for users, python maintainers, or some other group?
The fact that it's a broadly-popular language means that even if people do mind the syntax, it's far from a deal breaker for most, and therefore far from "terrible" as GP asserts.
Re: (Score:2)
Re: (Score:2)