Slashdot is powered by your submissions, so send in your scoop

 



Forgot your password?
typodupeerror
×
Programming Python

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.
This discussion has been archived. No new comments can be posted.

Rust is the Most Loved Language For the 6th Year in a Row in Stack Overflow Study

Comments Filter:
  • that's cute (Score:5, Insightful)

    by iggymanz ( 596061 ) on Tuesday August 03, 2021 @01:08PM (#61651553)

    Most loved but hardly ever used and no robust libraries even after all this time. Cute fad.

    • Re:that's cute (Score:5, Interesting)

      by jellomizer ( 103300 ) on Tuesday August 03, 2021 @02:40PM (#61652107)

      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.

      • I've been incredibly impressed with both the quality and quantity of Rust libraries (crates - http://crates.io./ [crates.io.] Plus, the way that cargo manages libraries and versions is really cool.
    • Re:that's cute (Score:5, Insightful)

      by rossz ( 67331 ) <ogreNO@SPAMgeekbiker.net> on Tuesday August 03, 2021 @02:47PM (#61652141) Journal

      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.

      • That certainly changed right? I mean every time I was trying to figure out how to do something in python I did a google search and almost always found either someone else previously wanting and getting an answer, or more often, a module existed that cut out a lot of work already. From a systems management perspective I barely bash script anything that I can do in python, especially if it also involves mysql data storage. I ended up rewriting my callerid CNAM lookup script in python, adding three more provid
      • 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.

    • by DrXym ( 126579 )
      There are plenty of useful and robust crates in the Rust ecosystem, plus of course you can easily call any existing C library, or C can call Rust. Hardly a good reason any more, if it ever was.
  • Wanting more love. (Score:5, Insightful)

    by Ostracus ( 1354233 ) on Tuesday August 03, 2021 @01:09PM (#61651571) Journal

    Apparently being loved doesn't go as far as it use to.

  • by Randseed ( 132501 ) on Tuesday August 03, 2021 @01:16PM (#61651623)
    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.
    • Interesting we don't see as much of that with the languages we read, write, and speak.

      • by Tablizer ( 95088 )

        Ebonics?

        • Pig-latin, but gp is correct, not revolutionary enough.
        • Not manufactured. Evolved due to the mixing of southern English dialects with some grammar, vocabulary, and morphology from various West African languages, followed by a long period of relative isolation from speakers of other dialects.
      • It is interesting.
        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.
      • 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

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

    • by Dadoo ( 899435 ) on Tuesday August 03, 2021 @02:05PM (#61651943) Journal

      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.

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

      • I'll assume a CMU graduate is smart enough to teach themselves an OO language, but it's pretty dammed stupid not to even expose your students to one of the most popular paradigms that exist today. By all means teach functional languages too because that's important, just like students should learn a language that doesn't manage memory for you, as well as a query language for databases. They aren't just programming languages to solve a problem, but a way to think about a problem itself.
        • 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.

      • by narcc ( 412956 )

        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.

        • by HiThere ( 15173 )

          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

          • by Dadoo ( 899435 )

            Try using Erlang for something that maintains internal state and you'll see what I mean. You need to store the data in a hash table or a database file (possibly never saved to disk).

            Isn't that one of the main "advantages" of functional languages, though - no side effects (i.e. state)?

            • by Jeremi ( 14640 )

              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.

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

          • by narcc ( 412956 )

            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

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

            • I think I had a class with you once. Were you the one lugging around four full boxes of punch cards everywhere you went? I must admit I laughed in my beer the day you tripped and dumped all of them on the floor - mixing them together!
              • by HiThere ( 15173 )

                Were they column binary or row binary. (IIRC, row binary is the deck that doesn't have sequence numbers on the cards.)

      • by fahrbot-bot ( 874524 ) on Tuesday August 03, 2021 @02:41PM (#61652111)

        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.

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

        Lisp, Haskell etc are great languages for approaching some problems. Unfortunately, there's a huge class of problems that doesn't fit the

        • by narcc ( 412956 )

          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.

    • by J. T. MacLeod ( 111094 ) on Tuesday August 03, 2021 @02:06PM (#61651953)

      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.

      • by narcc ( 412956 )

        That's my problem with it as well. It's like it was designed to be difficult to read.

        • It was designed by people who are too smart. A wonderful language on paper, but very hard to use by us dummies.

          • by narcc ( 412956 )

            I figure it's just a shibboleth, there to keep outsiders out and make themselves feel more important.

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

      • by DrXym ( 126579 )
        The syntax is actually pretty straightforward. It shouldn't surprise anyone who has used other C-like languages like Swift, Golang, Java etc. Perhaps the biggest source of confusion would be if you had structs with life times but other than that it's not hard.

        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

    • 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

    • by Jeremi ( 14640 )

      That was not a serious question.

      In fact, that was not any kind of question.

    • Perl (go 1980s!)

      More like go 90s.

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

      • by narcc ( 412956 )

        The problem with Java is that it's really difficult to write a compatible JVM. Even OpenJDK isn't quite up to snuff.

  • by CaptainLugnuts ( 2594663 ) on Tuesday August 03, 2021 @01:27PM (#61651691)
    Most beloved means used for playing around and not serious work.
    • by Tablizer ( 95088 )

      Most beloved means used for playing around and not serious work.

      No, that would be using Lisp dialects to make very clever and compact abstractions that only you can figure out.

    • by DrXym ( 126579 )
      Rust is used for serious purposes by plenty of companies, Amazon, Facebook, Google, Microsoft etc. It's not hard to find many more.

      And the reason why is obvious just by looking at the shortcomings of C and C++ that Rust doesn't suffer from.

  • Everyone loves a martyr.

  • by holophrastic ( 221104 ) on Tuesday August 03, 2021 @01:32PM (#61651727)

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

    • by Ostracus ( 1354233 ) on Tuesday August 03, 2021 @01:44PM (#61651819) Journal

      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?

      • You're looking forward, trying to predict the future.
        Instead, consider looking backwards, so you need only observe the past.

        What's your bet?

      • 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

        • by Anonymous Coward

          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

  • by molarmass192 ( 608071 ) on Tuesday August 03, 2021 @01:41PM (#61651793) Homepage Journal

    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.

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

      • Responding to myself, the ranking is based on the relative percentages of wanting to work with a language vs. not (of those that have done extensive work with that language). Therefore, it does not reflect relative usage among different languages.
    • by Tablizer ( 95088 )

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

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

  • by thadtheman ( 4911885 ) on Tuesday August 03, 2021 @01:41PM (#61651799)
    where good questions go to die.
  • by larryjoe ( 135075 ) on Tuesday August 03, 2021 @01:55PM (#61651889)

    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.

    • by PPH ( 736903 )

      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.

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

  • 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 tend to be less critical so they express more "love"
  • by 140Mandak262Jamuna ( 970587 ) on Tuesday August 03, 2021 @02:29PM (#61652059) Journal
    Rust: "I am the most loved, yeah! yeah!!"

    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.

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

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

    • The goal is not for a programming language and its eco system to be loved, but rather, to be feared?

    • by narcc ( 412956 )

      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.

  • by Schoenlepel ( 1751646 ) on Tuesday August 03, 2021 @04:08PM (#61652523)

    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.

    • by Jeremi ( 14640 )

      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.

    • by dremon ( 735466 )
      > and at rare occasions (it's never clear which version) a breaking change occurs

      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.
    • by DrXym ( 126579 )
      And are you seriously proclaiming a language is no use unless it has a stable specification? Was C of no use until ANSI C was specified? Was C++ no use until C++98? This will be news to people who wrote entire operating systems in C, or using Borland C++ or Visual C++ back in the day for stuff. Does the fact that each of these languages has received multiple updated specs (as well as subsets like CUDA, MISRA etc) mean they aren't stable? Are languages with a more iterative development model like Python no u
      • by narcc ( 412956 )

        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.

    • by gweihir ( 88907 )

      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.

  • But still someone else is sitting on your couch that you have to spend the rest of your life with.

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

  • ...you try to make a linked list, what you can't do without going 'unsafe'.
  • Man I would have thought COBOL would have been tops. /s

A committee takes root and grows, it flowers, wilts and dies, scattering the seed from which other committees will bloom. -- Parkinson

Working...