Rust is the Most Loved Language For the 6th Year in a Row in Stack Overflow Study 95
RoccamOccam writes: For the sixth-year, Rust is the most loved language, while Python is the most wanted language for its fifth-year in Stack Overflow's 2021 survey of 80,000 developers.
that's cute (Score:5, Insightful)
Most loved but hardly ever used and no robust libraries even after all this time. Cute fad.
Re:that's cute (Score:5, Interesting)
I need to agree.
Sure it is a good idea of a language, but for us to actually make stuff with it, where we will need to report to our boss our progress, we will need some more high quality libraries, that will have long term support. So we are not all having to recreate a lot of primitives all the time just to do rather common application functions.
The thing is with programming languages, is they are often optimized to build applications that already exist, so when ever we need to actually make something new, we end up breaking the rules. If there is a good library options, it makes it a bit easier to not break the rules.
Re: (Score:2)
Re:that's cute (Score:5, Insightful)
To me, the quality and completeness of libraries is what really matters. A great language is not going to be my first choice if I have to write every little bit from scratch. When Python first came out, I saw that it was a well designed language (except white space should never matter!), but the selection of libraries was far too limited, so I kept falling back to Perl. There is plenty to criticize about Perl, but there's a library available for just about anything you can think of - assuming you could figure out how to use the library, because the documents almost always sucked big time.
Re: that's cute (Score:2)
Re: (Score:2)
This isn't too far off from a warning I often give new Python users. It's only 'easy to use' on the surface. Once you start to actually use it, all sorts of strange little things start to show up.
It's a darling now, but PHP was also loved by Slashdot at one point. I fully expect Python to the new VB in a few years.
Re: (Score:2)
Invariably most decently-sized applications in any language will eventually call some C library code to get something done, which is why having a "C interface" is a high-priority common first task when creating a new language. And the nice thing about C (and C++) that makes it so dreaded is that it's just about the only language with an __asm__ function when you REALLY need to get something done.
Re: (Score:2)
Wanting more love. (Score:5, Insightful)
Apparently being loved doesn't go as far as it use to.
Re:Wanting more love. (Score:5, Funny)
Tell me about it. Fifty dollars used to be enough for an hour of physical love. Now you're lucky if that's enough for a private conversation over the phone.
Re: (Score:1)
Tell me about it. Fifty dollars used to be enough for an hour of physical love. Now you're lucky if that's enough for a private conversation over the phone.
1970s, Barcelona, $10 would buy you a bottle of wine and a woman for the night. Room included.
Of course, you'd be at the ships doctor's office for the clap the next morning.
Re:4-letter word meaning destruction of iron (Score:4, Funny)
Rust was designed from the start with the intent of using it to code automated torch welding equipment for tearing down barges. The name makes sense in context. These days people have forgotten why Rust we created.
This is a serious question. (Score:4, Insightful)
Re: (Score:3)
Interesting we don't see as much of that with the languages we read, write, and speak.
Re: (Score:1)
Ebonics?
Re: (Score:1)
Re: (Score:2)
Re: (Score:2)
New languages are invented by student linguists all the time. You just don't see the instant widespread adoption of them.
Probably because unlike a programming language, the end result of using it isn't language agnostic.
Re: (Score:2)
Well, it *did* give us a couple of good gags in Red Dwarf.
Looking in the wrong place (Score:2)
Folks on the stock exchange trading floors use a different "language" from the rest of us. So do bankers. Engineers have very different idioms and speaking patterns from dancers.
Words and phrases that are considered commonplace to lawyers are largely unintelligible to non-lawyers. Popular culture changes speaking patterns to the point that parents can easily misunderstand or be befuddled by their own children.
Just within "English" we have many new variants all the time. So it is with computer languages. Dif
Re:needs of the moment or epoch (Score:2)
"needs of the moment or epoch"
Is it just me, or do "epoch" not last as long as they used to?
Re: (Score:2)
Interesting we don't see as much of that with the languages we read, write, and speak.
Well, there’s not really a need since the languages we read, write, and speak are very dynamic - and the changes follow the will and usage patterns of the population at large, automatically. A spoken language can change immediately to follow the will of the speaker and his immediate circle - those changes don’t have to be approved by some protective central committee (insert joke about the French government here).
Re:This is a serious question. (Score:5, Interesting)
1) Programming languages are designed for specific domains (or at least they used to be). You wouldn't want to write an OS in COBOL, and you wouldn't want to write an accounting program in C.
2) You should be careful what you call crap. CS people are starting to look at Clojure, and from the perspective of someone who doesn't understand it, it looks a lot like LISP. On top of that, at least one top university (CMU) has decided to stop requiring object-oriented languages for a degree (in favor of functional), because they feel that object-oriented is a dead end.
Re: This is a serious question. (Score:2)
Rust is pretty broad though. It gives you all of the power of a systems language while being as expressive as say java, making it also good for user facing applications (all it needs to be very good at this is a fully featured GUI toolkit.) It's also probably the best language for WASM.
Re: (Score:2)
Re: This is a serious question. (Score:2)
Rust, despite being functional, actually does almost everything that OO does. The only thing it's missing to be considered object oriented is inheritance and type hierarchy. I don't think anybody would ever miss that though: If you want to extend a struct, just implement another trait for it.
Re: (Score:2)
at least one top university (CMU) has decided to stop requiring object-oriented languages for a degree (in favor of functional), because they feel that object-oriented is a dead end.
I've been screaming that for more than 20 years. It's about time. (Though I believe Tablizer has been at it longer than I have.)
Granted, it took a while for me to accept that the problem was with OOP, and not with me. I was young, and the hype was real.
Re: (Score:3)
The problem isn't with object orientation being built-in, it's with it being required. This becomes really obvious when you compare C++ with Java. Both have problems, but the problems are DIFFERENT!!!
For many purposes object orientation (i.e., hiding variable visibility within dynamically allocated chunks of related code) is quite valuable. And sometimes it's a real pain. Functional also has it's pluses and minuses. There are applications for which it is totally the wrong answer. Try using Erlang for
Re: (Score:2)
Isn't that one of the main "advantages" of functional languages, though - no side effects (i.e. state)?
Re: (Score:2)
Isn't that one of the main "advantages" of functional languages, though - no side effects (i.e. state)?
Yes, if the problem you are working on is one where avoiding side effects is an advantage (e.g. when you're trying to write easily parallelizable or easily optimizable code).
OTOH if the problem you are working on is one where you want to have side effects, then the language is getting in your way and you have to design around it, and it's a disadvantage.
Re: (Score:3)
"So, what's "Object-Orientation"?"
Object-Orientation is a storage technology invented in 1940 or thereabouts where one stores all the data items related to a single object in a single place, rather than scattered about willy nilly. For example, when storing information about a bookcase, then one creates a single storage area called, for example, BOOKCASE, and stores all the information related to that bookcase, such as height, width, length, weight, material, cost, price, quantity-on-hand, etc. Each indiv
Re: (Score:2)
I think you're hinting at on the real thing people wanted from OOP -- modularity. We all wanted more than what little you get from C and header files, but OOP was never going to deliver it. It's anti-modular by its very nature. (You'd think we would have noticed when we were busy bolting OO features senselessly on to every language known to man.)
It's a shame too, as we've wasted a lot of time and effort trying to make OOP live up to that promise that could have been spent developing real approaches to m
Verbose computer languages (Score:2)
Why, when I was young, weeee didn't have any of those fancy-pantsy syntactically sugared programming languages.
We programmed in COBOL, and we had to learn how to spell ENVIRONMENT DIVISION and cut those characters into punch cards by knowing EBCDIC codes, and we did this with a paring knife until our fingers bled!
And we loiked it!
Re: (Score:2)
Re: (Score:2)
Were they column binary or row binary. (IIRC, row binary is the deck that doesn't have sequence numbers on the cards.)
Re:This is a serious question. (Score:4, Interesting)
2) You should be careful what you call crap. CS people are starting to look at Clojure, and from the perspective of someone who doesn't understand it, it looks a lot like LISP.
LISP has its places. I got paid to work on LISP for this grant for NASA at my university as an undergraduate research assistant back in the late 80's Analysis and synthesis of abstract data types through generalization from examples [nasa.gov] (full paper [nasa.gov])
The discovery of general patterns of behavior from a set of input/output examples can be a useful technique in the automated analysis and synthesis of software systems. These generalized descriptions of the behavior form a set of assertions which can be used for validation, program synthesis, program testing and run-time monitoring. Describing the behavior is characterized as a learning process in which general patterns can be easily characterized. The learning algorithm must choose a transform function and define a subset of the transform space which is related to equivalence classes of behavior in the original domain. An algorithm for analyzing the behavior of abstract data types is presented and several examples are given. The use of the analysis for purposes of program synthesis is also discussed.
Basically we described rules for various abstract data types (stack, queue, list, etc) and the LISP code would generate working models with information that could be used to generate proofs of correctness. Writing correct code is hard, but proving that code is correct is much harder, especially as the code gets larger. The long-term goal was to be able to automatically generate provably correct code.
I also did some work in Prolog [wikipedia.org] for an experiment in N-Version fault tolerance, writing the "gold program" for a launch-interceptor program in Prolog instead of C. The thought was that N-Version fault tolerant systems with all code versions written in the same language can fail in similar edge cases because of deficiencies in either the language or how programmers are taught and/or use the language. Using different languages for the different versions in the system may provide different edge cases and lead to better fault tolerance for uncommon circumstances.
Re: (Score:2)
Lisp, Haskell etc are great languages for approaching some problems. Unfortunately, there's a huge class of problems that doesn't fit the
Re: (Score:2)
One of the most amazing things about C++ is that it's managed to adopt many/most/all of the most positive parts of functional programming while sacrificing none of the power of dealing with procedural problems.
You've clearly been drinking.
Re:This is a serious question. (Score:5, Insightful)
Rust has the unique benefit of being low-level while also having safety guarantees. It is nothing to sneeze at.
Unfortunately, its syntax is an awful mess and it is a pain to read any but the simplest code. Its proponents generally disagree, but it was designed and adopted by people who willingly used C++ in the first place.
Re: (Score:3)
That's my problem with it as well. It's like it was designed to be difficult to read.
Re: (Score:2)
It was designed by people who are too smart. A wonderful language on paper, but very hard to use by us dummies.
Re: (Score:2)
I figure it's just a shibboleth, there to keep outsiders out and make themselves feel more important.
Re: This is a serious question. (Score:2)
There are plenty of things that I'm smart enough to figure out and use that I won't out of resentment for it expecting me to waste brain cycles to decipher what could have been clear.
Things should not be oversimplified, but holy crap should they also not be overcomplicated. Even people who adapt themselves to the weird syntax jungles spend extra mental effort to keep it up. They've just reduced that effort and made it transparent to themselves so they don't care.
But we can do better as a society.
Re: (Score:2)
It is definitely far more simple and forgiving than C or C++. e.g. look at all the rules about copying classes in C++, or move semantics, of having the concept of forward declarations in C/C++, or implicit / explicit constructors (or deleting (!) the
Re: (Score:2)
It's not the syntax logic. It's the syntax noise.
Re: (Score:2)
Re: (Score:2)
Okay, so we have a multitude of programming languages. We have C (the old standby), crap like Lisp, we have Python, Perl (go 1980s!), and whatever the hell else. Every CS PhD candidate seems to shit out a new "revolutionary" program language. Now I'm not saying we should code in assembly, but come on.
I think there is a reason for that. And it's exactly the same reason that tools that work keep being replaced with completely new tools that are supposed to be better. My belief is that Millennials think everybody over the age of 30 is an idiot and everything they (Millennials) didn't invent is garbage, so they invent new replacements for the wheel. One of my friends has this kind of unique job where apparently all he does is read about and try to use new technology so when his insane company mandates
Re: (Score:2)
That was not a serious question.
In fact, that was not any kind of question.
Re: (Score:2)
More like go 90s.
Re: (Score:1)
And we have Java.
Which has rich and long term support, plenty of examples, a large population of programmers who do help out other java programmers, and most of all- runs almost everywhere with the same code unless you are doing something hardware or O/S specific.
Re: (Score:2)
The problem with Java is that it's really difficult to write a compatible JVM. Even OpenJDK isn't quite up to snuff.
There's a pretty strong equivalence. (Score:5, Insightful)
Re: (Score:1)
No, that would be using Lisp dialects to make very clever and compact abstractions that only you can figure out.
Re: (Score:2)
And the reason why is obvious just by looking at the shortcomings of C and C++ that Rust doesn't suffer from.
Martyr (Score:2)
Everyone loves a martyr.
Re: (Score:2)
Everyone loves a martyr.
And yet no one ever names their kid that. :-)
...by developers who need stack overflow (Score:5, Insightful)
...and waste their time filling out stack overflow surveys.
Might as well be asking toddlers about their favourite foods, then wondering why chicken nuggets share the spotlight with pizza.
How about a survey of businesses with custom software that's been running for a "long time" -- you know, the client's favourite programming language that they've never seen.
We can wait another decade, if you think Rust will survive that long. Few languages do.
Re:...by developers who need stack overflow (Score:5, Insightful)
We can wait another decade, if you think Rust will survive that long. Few languages do.
Depends.
A) What problems are Rust trying to solve?
B) In a decade will these problems get worse, or better?
C) Will a better solution come along?
D) Will we continue along as usual and hope for the best?
Re: (Score:2)
You're looking forward, trying to predict the future.
Instead, consider looking backwards, so you need only observe the past.
What's your bet?
Re: (Score:1)
The answers to those questions are easy:
A) Do not know. One might posit that the purpose of Rust is like the purpose of training wheels on a tricyle -- keep the addle from hurting themselves.
B) They will not change. The addle will still insist on being able to "write programs" and they will still want to do it without knowing what they are doing.
C) There was a better solution prior to the influx of "The Great Unwashed". It is unlikely that the massive hordes will, however, take a bath.
D) Yes. This is ca
Re: (Score:1)
One of the main purposes of Rust, as I understand it, is to achieve various kinds of safety but without overhead. You seem to read "safety" as just protecting amateurs and/or idiots from themselves. I read "safety" as eliminating bugs, especially the kinds of bugs that aren't obvious to seasoned programmers.
Security is kind of a sub-category of bug-hunting, in a way. Security issues are mostly just curated lists of non-obvious bugs. A lot of the input to the design of Rust is ultimately from people going th
Statistical anomalies (Score:5, Insightful)
The most loved, in order; Rust, Clojure, TypeScript, Elixir, Julia, Python, Dart? Yeah, ok, I'm gonna call shenanigans here. Define "loved", because I've been a professional programmer for a long time and that list doesn't align with what other pros I know "love". The "want" list is more grounded in reality, but the top 10 "loved" is mostly obscure languages, excluding TS and Python. I'm surprised Brainfcuk isn't on there.
Re: (Score:2)
Define "loved", because I've been a professional programmer for a long time and that list doesn't align with what other pros I know "love".
From the article: the original question is "Which programming, scripting, and markup languages have you done extensive development work in over the past year, and which do you want to work in over the next year? (If you both worked with the language and want to continue to do so, please check both boxes in that row.)"
Re: (Score:2)
Re: (Score:1)
TypeScript doesn't have optional named parameters (ONP). I really like ONP's from C#, so why didn't MS clone this feature for TypeScript? (There are ways to emulate them, but they require about 20% more parameter code and/or too much re-work to retro-fit method calls.)
It's like what chicks say about black wankers: once you use ONP's you won't want to go back. (Yes, I had an ex who confirmed the rumor.)
Re: (Score:2)
Probably most loved means "most used for hobbies and not professional development, so it seems the most fun." If I only had to use Java for small personal projects I'd probably enjoy it. But because I have to do enterprise-level microservice bug fixing, and deal with my coworker's horrifically over-complicated Spring-framework Java beans nonsense, I hate it.
From the place (Score:4, Funny)
Bad survey construction (Score:3)
So, the only options are to either love or dread a language. I imagine that the most popular options would actually be either never heard of the language or don't care.
Then again, what does love mean? How about a survey that asks about whether a language is nice or mean, which would be equally nebulous and impractical.
Re: (Score:2)
So, the only options are to either love or dread a language.
Created by someone who has never been married. No "All of the above" option.
Allow me to explain how this comes to be (Score:2)
At least I could very well imagine how it is.
If you ask me how I feel about, say, Clojure, my absolutely honest answer would be "what?" followed by, "Umm... I don't give a fuck?"
Which would be counted as "invalid vote".
Now, you will have 4 people who actually invented that language who will love it, and the fifth who was kicked out before the language was released, so he loathes it.
Result: 80% of the people who responded with valid votes love it.
Neither love nor want (Score:2)
I neither love Rust nor want Python. I did come to peace with go, though, once I learned to ignore everything google suggests or says about how to use it.
Fanbois (Score:2)
In the playground of school of programming ... (Score:5, Funny)
Python: :I am the most wanted. take that and lovey dovey Rust!"
C++: "I am the most needed. cut it out guys!"
C : Sitting quietly in the corner composing the valedictorian speech.
FORTRAN : In the corner office dictating a letter to the secretary politely declining the invitation to deliver the commencement address.
Re: (Score:2)
Assembly and microcode: Nowhere near the school, but in the back of their mind always worrying about the phone call telling them that a wall caved in or the grandstand collapsed.
Is it also the most hated? (Score:2)
Saying that a language is the "most loved" isn't that informative. I generally have a lot of problems with the languages that I choose to use. The ones I don't use are often more interesting (though I've never seriously tried Haskell or MT or...).
You don't really hate a language until you try to use it to do something and it won't do the job. (Even that's an overstatement. I didn't hate Fortran IV after trying to do dynamically allocated memory and not getting decent results. But I sure didn't love it.
But is it feared? (Score:2)
The goal is not for a programming language and its eco system to be loved, but rather, to be feared?
Re: (Score:2)
I didn't hate Fortran IV after trying to do dynamically allocated memory and not getting decent results. But I sure didn't love it.
Fortran didn't get dynamic memory allocation until Fortran 90.
Specification? Language stability? (Score:3)
One of the reasons rust will never replace its intended targets (C and C++) is that it does not have a stable specification.
People trying to develop software would appreciate some stability in the language. Each new version of the rust compiler contains yet more new features and at rare occasions (it's never clear which version) a breaking change occurs, but it's a wild goose chase when you try to figure out what features are stable in, say, rust 2018.
Until rust does the following, it will not see massive adoption:
- Have a stable specification;
- Mark all new features unstable (or testing) until the next three year milestone is reached. More work on the devs, but this makes the language more predictable between versions of the compiler and API.
Now, the language does have some good things vs C and C++, but those are features of the language (which could basically change at any moment they feel like). If they manage to fix the language's instability, they're set for success. If they don't address these issues, they will fail eventually.
Re: (Score:2)
One of the reasons rust will never replace its intended targets (C and C++) is that it does not have a stable specification.
So next year (or whenever they're ready to do so) they publish a stable specification and your concerns are addressed. No?
I fail to see a "never"-worthy problem there.
Re: (Score:2)
Not exactly, breaking changes happen only with a new language "edition" which must be explicitly enabled in the project. So far there has been only two editions: 2015 (version 1.0) and 2018. Edition 2021 is coming this fall.
Re: (Score:2)
Re: (Score:2)
Are languages with a more iterative development model
I've found that when people say "iterative development" they usually mean "ad-hoc" and "unplanned". This explains a lot of Python software.
like Python no use because they acquire new features and stabilized APIs as they go along?
Python has stabilized APIs? That would certainly help! Nothing is worse than your language constantly changing underneath you. It's why we banned Python. We want our software to still work 5+ years from now.
Re: (Score:2)
Indeed. The characteristics of a loved toy: Always getting frills and improvements, never really useful as a tool. The designers behind the language lack experience and wisdom.
Kim K. is also loved the most (Score:2)
But still someone else is sitting on your couch that you have to spend the rest of your life with.
OK? (Score:2)
We'll marry Rust cause she makes the best razzleberry pie and is the best to show around, but man, Python is the one we want to bang cause she's a freak -- no need to be proper around her.
It seems cool until... (Score:1)
Not COBOL (Score:2)