Slashdot Mirror


Rust 1.31 Released As 'Rust 2018' In Major Push For Backwards Compatibility (rust-lang.org)

"The Rust programming language team has announced the first major edition of Rust since 1.0 was released in 2015," reports SD Times -- specifically, Rust 1.31, the first edition of "Rust 2018," described by Rust's developers as "the culmination of feature stabilization."

An anonymous reader writes: The Rust team is working hard to maintain backwards compatibility, for example with the way they're handling the ongoing addition of an async/await feature. "Even though the feature hasn't landed yet, the keywords are now reserved," notes the Rust Team. "All of the breaking changes needed for the next three years of development (like adding new keywords) are being made in one go, in Rust 1.31." The keyword "try" has now also been reserved, but "Almost all of the new features are 100% compatible with Rust as it is. They don't require any breaking changes... New versions of the compiler will continue to support "Rust 2015 mode", which is what you get by default... [Y]ou could think of Rust 2018 as the specifier in Cargo.toml that you use to enable the handful of features that require breaking changes."

The Rust language's blog adds, "Your 2018 project can use 2015 dependencies, and a 2015 project can use 2018 dependencies. This ensures that we don't split the ecosystem, and all of these new things are opt-in, preserving compatibility for existing code. Furthermore, when you do choose to migrate Rust 2015 code to Rust 2018, the changes can be made automatically, via cargo fix." Tooling improvements include faster and smarter "incremental" compilation (along with better IDE support), plus the addition of function-like and attribute-like (procedural) macros. There's also a rustfmt tool which can automatically reformat your code's style "like clang format does for C++ and Prettier does for JavaScript," plus an optional diagnostics linter named clippy, and automated code fixes via rustfix. There's even upgrades to Rust's module system and other path clarity improvements.

But this is only the beginning, SD Times reports: With the release of Rust 2018, the team is now starting to look at Rust's future. The team is asking developers to reflect on what they liked, didn't like or hoped to see in Rust during the last year, and propose any goals or directions for the upcoming year.

81 comments

  1. Rust by Anonymous Coward · · Score: 0

    I liked the talks hated the pain would like more lectures in Chinese. Could cut years off some of the development time for projects.

    1. Re: Rust by Anonymous Coward · · Score: 0

      No thanks. We don't want Chinese backdoors in our development software.

    2. Re: Rust by Anonymous Coward · · Score: 0

      I like the feeling of walking around in a loincloth with a club and some douchebag with a castle bludgeoning me to death to see whether I had anything worth stealing, only to revive me and run off.

  2. Here it is, ladies by Anonymous Coward · · Score: 0

    First post, using a browser compiled by Rust

    Coincidence? I think not.

    1. Re: Here it is, ladies by Anonymous Coward · · Score: 0

      I am quite sure we had to translate more sophisticated code into rust. So sorry!

    2. Re: Here it is, ladies by Anonymous Coward · · Score: 0

      It's true. You can use rust for some things but you have to continue the main part of development on the other platform. Better to let the rust pieces fall behind than the other stuff. If you only use rust you will, well, oxidize.

  3. Oh by Anonymous Coward · · Score: 0

    Well it was nice knowing that you once existed.
    Think I'll stick with Go.

    1. Re: Oh by Anonymous Coward · · Score: 0

      Thank you!

    2. Re: Oh by Anonymous Coward · · Score: 0

      I noticed that rust is similar to Haskell at times. Has anyone else noticed?

  4. Re: SJW cancer by Anonymous Coward · · Score: 0

    Not true. will not be uploading any java anytime soon

  5. What is with the death of backwards compatability? by Anonymous Coward · · Score: 1

    Seems like every language is making backwards incomparable changes. I guess after Python 3, everyone thinks backwards incompatible changes are ok, even though Perl6 was DOA. Every version of Swift is backwards incompatible, Tensorflow 2 totally incompatible with 1.x, and these days even Java is doing it with backwards incompatible changes involving JavaFX and some other libraries. I want to like Swift, but having all your code break every 12 months is getting old. You won't be replacing C/C++ if you break everyone's code every 18 months.

  6. oxidation by Anonymous Coward · · Score: 0

    I am quite sure we had to translate more sophisticated code into rust. So sorry!

    That's called "oxidation".

    1. Re:oxidation by Anonymous Coward · · Score: 0

      Rolling moss gathers no rust.

  7. Anyone remember Ruby by Anonymous Coward · · Score: 1

    Rust is just another ruby. It will die out in a couple years for the next programming language fad.

  8. async/await? by 110010001000 · · Score: 1

    I hope it is better than the cluster that is async/await in Python. I am not sure how you have a new language in 2018 though that doesn't have concurrency built in. It is understandable for Python, but not Rust.

    1. Re:async/await? by Anonymous Coward · · Score: 0

      It's rust, even if it's better in areas it's still terrible overall. Like Ruby.

    2. Re:async/await? by HiThere · · Score: 1

      FWIW, I rather like Ruby. Too bad it's so slow. I'm not sure 3 times as fast is going to be fast enough...and so far that's just a promise.

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    3. Re:async/await? by TechyImmigrant · · Score: 1

      I hope it is better than the cluster that is async/await in Python. I am not sure how you have a new language in 2018 though that doesn't have concurrency built in. It is understandable for Python, but not Rust.

      That didn't call it 'cluster' without a good reason.

      --
      I should use this sig to advertise my book ISBN-13 : 978-1501515132.
    4. Re:async/await? by phantomfive · · Score: 1

      Ruby is faster than Python by many metrics. It doesn't really matter: execution speed isn't the bottle-neck for the vast majority of websites.

      --
      "First they came for the slanderers and i said nothing."
    5. Re:async/await? by HiThere · · Score: 1

      If you're talking about web sites, you aren't talking about my area of interest or application.

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    6. Re:async/await? by phantomfive · · Score: 1

      What are your areas of interest and application?

      --
      "First they came for the slanderers and i said nothing."
    7. Re:async/await? by HiThere · · Score: 1

      It's a desktop application with a bit of graphics. It's not really heavy in computation...well, it off-loads the heavy computation to other routines...but it still isn't exactly light-weight.

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    8. Re:async/await? by phantomfive · · Score: 1

      You tried it in Ruby and Ruby was too slow?

      --
      "First they came for the slanderers and i said nothing."
  9. Re: you FAILo it!? by Anonymous Coward · · Score: 0

    Glad to see this release is stable and wonâ(TM)t change until the release

  10. Re: What is with the death of backwards compatabil by Anonymous Coward · · Score: 0

    Swift is just like Java just with more flourish

  11. Curious Decisions by djbckr · · Score: 1

    There are a few aspects of Rust that I like, but there are more things that I dislike about it, and I'm afraid async/await is another thing I would probably dislike. I looked over some of the reasoning behind it, and I'm frankly not finding particularly solid reasons for it. OTOH, Go's several different ways of handling concurrency are much easier to grok and "get stuff done".

    1. Re:Curious Decisions by serviscope_minor · · Score: 4, Insightful

      OTOH, Go's several different ways of handling concurrency are much easier to grok and "get stuff done".

      Well yes. But that's the problem. It's easier to hack stuff out in go because when it comes to threading it doesn't do much to stop you shooting yourself in the foot. Pretty much the entire reason for the existence of Rust was to enable the moz devs to write fine grained multithreaded code without creating a nest of subtle threading bugs.

      The reason it looks harder in Rust is because writing correct multithreaded code is in fact hard. Annoyingly so.

      --
      SJW n. One who posts facts.
    2. Re:Curious Decisions by TechyImmigrant · · Score: 1

      I am enamored with Jai's approach of pulling everything into the the source - the code, build stuff, test etc. I tried the new rust command line tutorial and it created a directory with multiple files before I ever got to write a line of code. importing a library needed two files with different syntaxes. It took a long time to compile Hello World.

      I want to like rust - It has great security properties - but it's so ugly.

      --
      I should use this sig to advertise my book ISBN-13 : 978-1501515132.
    3. Re:Curious Decisions by Anonymous Coward · · Score: 0

      Replying as AC to preserve modding.

      My (current) company does this- we put everything into the source minus some external documentation. The code, the build automation, the tests, docs, ops tools, etc etc, it all goes into the source.

      "Code as infrastructure" is their latest flashy obsession, and honestly it seems to work pretty well once you use that paradigm.

    4. Re:Curious Decisions by RoccamOccam · · Score: 1

      I tried the new rust command line tutorial and it created a directory with multiple files before I ever got to write a line of code. importing a library needed two files with different syntaxes. It took a long time to compile Hello World.

      I'm questioning your results. Here are the step to create and run Hello World:

      cargo new hello
      cd hello
      cargo run

      That's it. 11 seconds start-to-finish, including fixing a typing mistake.

    5. Re:Curious Decisions by djbckr · · Score: 1

      Well, I never said that writing concurrent/multithreaded apps is easy. But the features in Go make it a lot more palatable. You still have to be aware what's running concurrently.

    6. Re:Curious Decisions by TechyImmigrant · · Score: 1

      I tried the new rust command line tutorial and it created a directory with multiple files before I ever got to write a line of code. importing a library needed two files with different syntaxes. It took a long time to compile Hello World.

      I'm questioning your results. Here are the step to create and run Hello World:

      cargo new hello

      cd hello

      cargo run

      That's it. 11 seconds start-to-finish, including fixing a typing mistake.

      Look in the directory.
      Cargo created a directory with some files in it and two sub directories with files in them.
      You cd into that directory and 'cargo run' it, which both builds and runs it. The build takes a long time (compared say to gcc, which completes pretty much instantly).
      To follow the command line tutorial I can had to edit a .toml file to declare a library dependency and edit the rust source file to do the import of the library.

      Quite a lot for hello world.

      --
      I should use this sig to advertise my book ISBN-13 : 978-1501515132.
    7. Re: Curious Decisions by Anonymous Coward · · Score: 0

      I've written a reasonable amount of rust and compile time isn't really a problem. It now does better incremental compilation, so this is more true than when I learned it. Cargo does create multiple files, but that is because it's creating a entire project structure. If you want to just use rustc directly you can. There are things to criticize about rust. These are not they.

    8. Re: Curious Decisions by TechyImmigrant · · Score: 1

      I did wonder how the file structure malarky scaled with project size. Most of my programming these days is for command line tools that do data analysis or data transformation from test chip data, so I'm interested in efficiency of the programming process. I'm also old and intolerant of seeing the same old mistakes repeated. Dependency declaration files? No thanks. Python is great when performance and security isn't an issue.

      The other part of my programming is for publicly released secure cryptographic software libraries for which rust would seem to be appropriate (no dead store elimination problems, no UCB problems etc.), but the pull of C is strong for reference libraries. I'd love to move this stuff off of C, which is why I'm not giving up. I used to think C++ was nice when I first tried it and it was C with classes. Oh how that changed.

      My real job is crypto hardware in chips, for which the languages are way, way worse. Software engineers can consider themselves lucky.

      --
      I should use this sig to advertise my book ISBN-13 : 978-1501515132.
    9. Re:Curious Decisions by RoccamOccam · · Score: 1

      I specified the commands needed to create, build, and *run* the Hello, World program. Note, that Hello, World is the default program that is created for you when you type "cargo new", so you don't even have to edit it. 11 seconds. Try it just like I typed it.

    10. Re:Curious Decisions by Anonymous Coward · · Score: 0

      The time taken for some random shit tool to generate an overcomplex hello world program, is not a proxy for the time taken to write a hello world program. The point of talking about hello world at all is to give some insight into the language, not an insight into a moronic generator that defaults to generating hello world.

    11. Re:Curious Decisions by RoccamOccam · · Score: 1

      Well, if that was the argument that the OP made, then you might have a point. But it wasn't, and you don't. The OP specifically claimed that the time to compile a Hello World program was very long. I pointed out that the time to create, compile, and run said program was only 11 seconds. I gave the three commands to do that, so that everyone can check it for themselves.

    12. Re:Curious Decisions by TechyImmigrant · · Score: 1

      11 seconds is very long for one line of active code.

      --
      I should use this sig to advertise my book ISBN-13 : 978-1501515132.
    13. Re:Curious Decisions by RoccamOccam · · Score: 1

      That includes the time to type the three commands, which was probably 99% of the time (I'm not a particularly good typist). Try it for yourself. See if the original complaint seems valid to you.

    14. Re: Curious Decisions by Phillip2 · · Score: 1

      Files in rust and cargo are up to the developer. It has a notion of modules, and you can declare one or many in each file, or you can do file/directory structure reflects module structure. In practice, starting a new file when the old one gets to big seems a reasonable way to go.

      In terms of dependency declaration files, this is not actually duplicated information. One is the package import (which is a namespacing thing) and also occurs within a single crate (Rust's name for a package). The other is higher level (i.e. dependency between crates). It also tells you when the dependency is relevant (dev, build, test) and what version is relevant. You certainly don't want the latter everywhere in your source and the former only implicitly so. It seems okay to me.

  12. Re: What is with the death of backwards compatabil by Anonymous Coward · · Score: 0

    Mmm, I'd say Swift is exactly like Kotlin but different.

  13. 8 Rules to Do Everything Better by Anonymous Coward · · Score: 0

    The most important principles to grow your body and mind
    “Principles are fundamental truths that serve as the foundations for behavior that gets you what you want out of life,” writes investor Ray Dalio in his bestselling book, Principles. Dalio focuses on skills like decision-making, investing, and managing organizations. While reading through it, I became inspired to put together my own list of principles that I’ve devised after more than five years of interviewing and coaching elite performers in sports, business, and beyond. Like Dalio’s, these principles are a foundation for a better you.

    1. Stress + Rest = Growth
    Whether you want to grow your body or mind or get better at a specific skill, you need to push to the outer limits of your current ability, and then follow that hard work with appropriate recovery and reflection. Decades of research in exercise science show that this is how you get stronger and faster, and the latest cognitive science shows that this is also how you get smarter and more creative.

    2. Focus on the Process, Not Results
    The best athletes and entrepreneurs aren’t focused on being the best; they’re focused on constant self-improvement. When you stop stressing about external outcomes—like whether you win or lose, attain a certain promotion, or achieve some other form of validation—a huge burden is lifted off your shoulders and you can focus your energy on the things you can control. As a result, you almost always end up performing better. Research shows that concentrating on the process is best for both performance and mental health.

    3. Stay Humble
    Humility is the key to growth. If you don’t maintain an open mind, you’ll severely limit your opportunities to learn and make progress. The best athletes trust their training programs but are also constantly looking for new ways to improve. Same goes for the best thinkers and creatives; they tend to be confident but not arrogant, and they check their egos at the door. Knowledge is always evolving and advancing—if you want to evolve and advance with it, you need to keep an open mind.

    4. Build Your Tribe
    There’s an old saying that you’re the average of the five people you spend the most time with. Turns out that’s true. A large and growing body of behavioral science research shows that motivation (or lack thereof) is contagious. One study, “Is Poor Fitness Contagious?Evidence from Randomly Assigned Friends,” found that up to 70 percent of your fitness level may be explained by the people you train with. Other research shows that if you work on mental tasks with people who are internally driven and love what they do, you’re more likely to end up the same way. If, on the other hand, you surround yourself with people who have a negative attitude and are focused solely on winning the rat race, you set yourself up for a less fulfilling experience.

    5. Take Small, Consistent Steps to Achieve Big Gains
    Habits build upon themselves. If you want to make any kind of significant change, you’d be wise to do so gradually and over time. In Stanford researcher BJ Fogg’s behavior model, whether someone takes action depends on both their motivation and their ability to complete a given task. If you regularly overshoot on the ability side of the equation, you’re liable to become discouraged and quickly flame out. But if you incrementally increase the challenge, what was hard last week will seem easier today. Put differently: Small and consistent victories compound over time, leading to massive gains.

    6. Be a Minimalist to Be a Maximalist
    You can’t be great at everything. Regularly reflect on what matters most to you and focus your efforts there. In the words of Mayo Clinic researcher and human performance expert Michael Joyner: “You’ve got to be a minimalist to be a maximalist; if you want to be really good at, master, and thoroughly enjoy one thing, you’ve got to say no t

    1. Re:8 Rules to Do Everything Better by Anonymous Coward · · Score: 0

      9. (overrules all previous) Everything should be made as easy as possible. There is no honor in struggle. There is no learning in pain. There is no efficiency in inefficiency.

    2. Re: 8 Rules to Do Everything Better by Anonymous Coward · · Score: 0

      Did you know that the first Matrix was designed to be a perfect human world? Where none suffered, where everyone would be happy. It was a disaster. No one would accept the program. Entire crops were lost. Some believed we lacked the programming language to describe your perfect world. But I believe that, as a species, human beings define their reality through suffering and misery. The perfect world was a dream that your primitive cerebrum kept trying to wake up from. Which is why the Matrix was redesigned to this: the peak of your civilization.

    3. Re: 8 Rules to Do Everything Better by Anonymous Coward · · Score: 0

      You do know that "Thee Matrix" was a fantasy movie, right?
      The "red" pill asked me to mention that to you...

      CAP === 'unicycle'

    4. Re:8 Rules to Do Everything Better by Anonymous Coward · · Score: 0

      Evidence is that few ever learn anything WITHOUT pain. Kinda gets the attention.

  14. Diamonds and Rust by Anonymous Coward · · Score: 1

    Sounds like a tune from Judas Priest, the heavy metal gods of folk.

  15. Re:What is with the death of backwards compatabili by alexo · · Score: 1

    Seems like every language is making backwards incomparable changes.
    [snip]
    You won't be replacing C/C++ if you break everyone's code every 18 months.

    C and C++ are different languages. While C++ is mostly a superset of C99, and there was some cross-pollination of features between them since, there are enough idiomatic differences between them to make "C/C++" meaningless, unless you refer to "writing C style code while using some C++ features" (a.k.a "C with classes"), which, IMHO, is not a good choice of programming style in most cases.

    Regardless, both C an C++ try to be backward compatible in their corresponding revisions, and most breaking changes fall into the category of "you shouldn't have been doing it anyway".

    And no, this is not intended to be a discussion on the merits (or lack thereof) of those languages, though I suspect it will devolve to it.

  16. Re:What is with the death of backwards compatabili by Anonymous Coward · · Score: 0

    Yes, we are all aware of the differences between C/C++/Obj-C...

  17. Well said (and I don't like Rust). Concurrency is by raymorris · · Score: 1

    > It's easier to hack stuff out in Go because when it comes to threading it doesn't do much to stop you shooting yourself in the foot. ...
    > The reason it looks harder in Rust is because writing correct multithreaded code is in fact hard. Annoyingly so.

    Well put. I'm not a Rust fan, not even know much about it other than that Rust fans have done some over-the-top hype about features most other languages have too. I'm dealing with a codebase that has a lot of concurrency problems though. The languages make it easy to do concurrency. You don't have to understand concurrency issues to write multithreaded code in these languages. You can easily spin off threads that cause all kinds of subtle bugs that pop up rarely - infrequently enough that you're unlikely to catch them in tests, but often enough to cause problems for customers or even lock up the entire occasionally.

    Concurrency and multithreading IS hard to do right. Languages that make multithreading easy only make it easy to create very complex bugs.

  18. Can we have better names? by Futurepower(R) · · Score: 3, Insightful

    "Could cut years off some of the development time for projects."

    I understand Rust is excellent software, but why give it a name that sounds degrading. "Rust" is something you don't want to happen.

    Other foolish names:

    "Lisp" is a speech impediment.

    "Gimp" is a person who limps or is lame.

    Why restrict technology names to only 1 alphabet? LaTeX uses Greek letters, also, and requires two paragraphs in the Wikipedia article to explain the name.

    Or... Go with the flow? The next time you create open-source software, call it "Garbage"? Or "Feces"? Or maybe "Vomit"? Or, invent a new word. Maybe "Flonorba-gorba"?

    1. Re:Can we have better names? by serviscope_minor · · Score: 3, Funny

      "Gimp" [gimp.org] is a person who limps or is lame [dictionary.com].

      Limps or lame? Is that really what springs to mind? Booooriiiiing. Personally I always think "Bring out the gimp!" whenever I need to edit a picture.

      --
      SJW n. One who posts facts.
    2. Re:Can we have better names? by ShanghaiBill · · Score: 2

      In my opinion, SATAN was the best name ever.

      Unfortunately, it has been superseded by SAINT.

    3. Re:Can we have better names? by jimbo · · Score: 1

      I never saw a problem with this. Whenever a word with a previous meaning is used as a name I automatically start associating it purely with the project/person/etc. instead of the word meaning, when used in that context. It's just automatic for me. Same for family names with a original meaning - the meaning fades away and the name is associated with the person.

      Well, except for my urologist - Dr Waters.

    4. Re:Can we have better names? by Sun · · Score: 1

      I'm calling the programming language I'm creating Practical. I trust the name passes your approval?

    5. Re: Can we have better names? by Anonymous Coward · · Score: 0

      That makes you even more gay. I bet you got really turned on watching Zed rape that nigga. Bet you wish Stallman would do that to you. Nasty freak.

    6. Re: Can we have better names? by Anonymous Coward · · Score: 0

      Zeds dead baby.

      We called up some hard hitting niggas. And gave him the pipe.

    7. Re: Can we have better names? by Anonymous Coward · · Score: 0

      Name checks out.

  19. Re:What is with the death of backwards compatabili by Anonymous Coward · · Score: 1

    C++ is mostly a superset of C99 ...

    Not even close. The const operator is the biggest difference
    between the two languages. C++ is not an improved C language.

    Arrays and compound literals are handled differently; some integer
    math is different; variable promotion is not intuitive nor intrinsic;
    there's no simplified cast in C++, it's a tangled web of nutty cast
    operators to perform a straightforward task. That's the short list, too.

    Also, I have 20-year old C code that compiles and runs today. I
    have 20-year old C++ code that crashes and burns under modern
    compilers (when it ran fine in it's day, like molasses, but ran).

    CAP === 'tapestry'

  20. Re:Well said (and I don't like Rust). Concurrency by serviscope_minor · · Score: 3, Interesting

    You can easily spin off threads that cause all kinds of subtle bugs that pop up rarely - infrequently enough that you're unlikely to catch them in tests, but often enough to cause problems for customers or even lock up the entire occasionally.

    I think a good rule of thumv is that if you see some sort of general purpose class (i.e. not something like a message queue) with a mutex or atomic in it, you've seen a bug even if you don't know where it is yet.

    --
    SJW n. One who posts facts.
  21. Funny! by Futurepower(R) · · Score: 1

    Wow! Thanks for the links. From SATAN to SAINT. They seem to have learned something.

  22. Remember what people said about Micro-soft? by Futurepower(R) · · Score: 1

    "Well, except for my urologist - Dr Waters."

    Ha!

    There is a woman who is a manager in city government here whose last name is "Lust".

    Remember what people said about Microsoft? It was small and soft.

  23. 6 months by RoccamOccam · · Score: 2

    I'm about 6 months in to seriously using Rust and I absolutely love it! The ecosystem is fantastic (cargo and crates.io), the zero-cost, high-level abstractions are great, and the borrow checker is amazing!

  24. Why I love Rust by dremon · · Score: 3, Informative
    I've been lucky to persuade our PM to give Rust a try. Our main server product is written in Scala and now it also includes several Rust components which I develop and maintain. What a difference it makes! As a pro developer with decades of experience in Java/C/C++ I fully embrace it.

    Learning curve is quite steep, yes, due to unusual concepts (mainly borrow checker and move semantics). Once you get past struggling with that everything clicks in it's place and coding becomes fun again, way more so than in C/C++.

    My bullet points why I like it so much:
    • Great compiler/tooling design, cargo build tool, rustup compiler management, crates.io central repository
    • Amazing built-in unit test support, it's SO easy to write unit tests next to your production code and they are not included into the production build!
    • Very modern language features: traits, higher-order functions, closures, iterators, generics, threads, very good standard library, great external asynchronous modules which are being added now to stdlib
    • It's hard to make a messy design with sea of objects, compiler kind of enforces you to think over relations
    • No data inheritance
    • Great module system, which just became even better with 2018 edition
    • Safety, safety, safety. It's next to impossible to shoot yourself in the leg unless you do unsafe code (which is normally localized to few source locations for few special cases)
    • Fast growing collection of crates (modules), I think the intrinsic safety of the language makes them in general more stable than 3rd-party stuff written for example in Java
    • Semantic versioning, no jar hell
    • Consistent tooling, no freakin' sea of hundred build tools (cmake/make/nmake/meson/autotools/msbuild/whatever_stuff_of_the_day) and no manually managed external dependencies
    • Working IDE support, although not as polished as for Java, the IntelliJ and VSCode/RLS are working ok, especially IntelliJ
    • Very easy to integrate with existing C/C++ code via FFI, which is one of the design goals
    • No runtime and no dependencies for the target executable
    • No garbage collection, fine control over heap/stack allocations, runs blazingly fast
    • Easy to do cross compilation
    • Based on LLVM, supports all major targets
    1. Re:Why I love Rust by tepples · · Score: 0

      No runtime and no dependencies for the target executable

      This is because everything is statically linked. For example, last time I built the release build of the driver to load games onto a USB RAM cartridge for the Game Boy, it pulled in enough crates to total 6,787,656 bytes of executable code. How would this integrate with the UNIX philosophy's rule of composition, where a task consists of a half dozen or more different processes? Would all the processes have to be built into one executable that uses the executable's name to determine which sub-program to run? Or would it be better to repeat the libraries in a half dozen or more executables, storing all them on disk or NAND flash and retransmitting them over a possibly metered Internet connection whenever program or its libraries need to be updated?

    2. Re:Why I love Rust by dremon · · Score: 2

      Static linking is a default option but you can also link dynamically and deploy with a bunch of dependent DLLs/SOs if you want.

    3. Re:Why I love Rust by Anonymous Coward · · Score: 0

      Consistent tooling, no freakin' sea of hundred build tools (cmake/make/nmake/meson/autotools/msbuild/whatever_stuff_of_the_day) and no manually managed external dependencies

      It's new and niche. Give it time.

  25. Not every version of Swift by SuperKendall · · Score: 1

    Swift has said that at this point they plan not to introduce source breaking changes again (I think there may be one more they were strongly considering).

    As someone who has been using Swift professional since the start, I really do not care though. Partly that is because of migration tools helping, but in large part it's because I'll probably be using Swift for 10 more years at least, so I'd WAY rather have the language be better to work in for a decade or longer, then complain just because I had to spend a few days making what were mostly bulk changes to code.

    Even the worst of the conversions (Swift 2 to 3) was no more than a handful of days, and that was only a painful conversion because it required a tiny bit of thought.

    I fully support the idea that languages, especially now ones, should be able to alter course until after some time it's apparent what syntax gels best with the language and developers using it.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
    1. Re:Not every version of Swift by Anonymous Coward · · Score: 0

      XCode+Swift is the worst development environment ever.

      I can take my very first java code, 20 years old, compile it now, and you know what, it _will_ works

      In the three year I've had to put up with Apple's shit I've had to go through 3 major mandatory code rewrites (at no benefit to either me or the users) and the associated bugs, 2 mandatory "download the latest XCode before you can do anything", and XCode is _still_ nowhere near as good as Eclipse or VS circa 2003.

      I appreciate that Swift was dreadful when it first came out (apparently no one at Apple bothered to try it even once before releasing it - difficult stuff, it's at least software engineering 101, but still). I understand that the good folks at Apple would want to fix it, and since it's too bad to fix in a backward compatible manner, well, tough shit for everybody else. Fine. Can they at least try to sort out their mess just once?

      I've been a 100% mac user at home since 2001. I'm also using Eclipse, Android Studio (IntelliJ), VS and XCode on a daily basis. Apple's dev tools are _by far_ the worst and in fact absolute _crap_.

  26. Noobs never understand backwards compatibility by Anonymous Coward · · Score: 1

    Noobs never understand backwards compatibility: a product's user base will abandon it if it abandons backwards compatibility. Get a reputation for not maintaining backwards compatibility, and the product won't gain significant new users. And every non-backwards compatible change will drive away more and more users.

    Nobody with a real job wants to have to redo their work just because you have the attention span and planning ability of a baby squirrel who stole a pot of espresso.

  27. THERE WILL BE CONSEQUENCES NAZI FAGGOT KEN DOLL by Anonymous Coward · · Score: 0

    THERE WILL BE CONSEQUENCES FOR YOUR LIES NAZI FAGGOT KEN DOLL JUST ASK TRUMP WHEN YOU SEE HIM FAGGOT

    Filter error: Don't use so many caps. It's like YELLING. Filter error: Filter error: Don't use so many caps. It's like YELLING.

  28. Re:What is with the death of backwards compatabili by alexo · · Score: 1

    C++ is mostly a superset of C99 ...

    Not even close. The const operator is the biggest difference
    between the two languages. C++ is not an improved C language.

    Arrays and compound literals are handled differently; some integer
    math is different; variable promotion is not intuitive nor intrinsic;
    there's no simplified cast in C++, it's a tangled web of nutty cast
    operators to perform a straightforward task. That's the short list, too.

    Also, I have 20-year old C code that compiles and runs today. I
    have 20-year old C++ code that crashes and burns under modern
    compilers (when it ran fine in it's day, like molasses, but ran).

    1. Ugh, typo! I meant C89, not C99. My bad. That said, I do not claim that C++ is a strict superset of C89, only "mostly", but I don't see it as a problem because they are different languages. C programs should be compiled with C compilers.

    2. C++ has always supported C-style casts.

    3. Conformant C++98 code should work the same when compiled under compilers conforming to newer versions of the standard. Other than the obvious cases of adding keywords and deprecating auto_ptr, I would be interested to see code examples to the contrary. Please note that relying on undefined behaviour or nonstandard extensions does not count.

  29. Re:What is with the death of backwards compatabili by alexo · · Score: 1

    C and C++ are different languages. While C++ is mostly a superset of C99

    Sorry, I meant to type C89. Thank you AC!

  30. Re:What is with the death of backwards compatabili by Anonymous Coward · · Score: 0

    Not even close.

    Idiot. They are close. GP said "mostly a superset of" — not an exact superset of.

    C++ is indeed very close to a superset of C. You are stupid and ignorant for claiming otherwise.

  31. Re:What is with the death of backwards compatabili by Anonymous Coward · · Score: 0

    there's no simplified cast in C++, it's a tangled web of nutty cast
    operators to perform a straightforward task.

    You do know why that is, right? They want you to be explicit when shooting yourself to the foot.

  32. Never played it... by dohzer · · Score: 1

    Did this game ever really take off? Why are people still talking about it?

    1. Re: Never played it... by Anonymous Coward · · Score: 0

      There's always idiots that come to Rust's reddit thinking it's about some stupid game. They never see that other posts are about programming, not some fucking game. You're one of those. Either a complete retard, troll, or an ignorant 10 year old.

  33. Re:Well said (and I don't like Rust). Concurrency by phantomfive · · Score: 1

    When you add a thread, you add a bug.

    --
    "First they came for the slanderers and i said nothing."
  34. Re:Well said (and I don't like Rust). Concurrency by serviscope_minor · · Score: 1

    When you add a thread, you add a bug.

    No arguing there.

    I've definitely seen code where the author clearly believed that sprinkling "atomic" around like magic pixie dust makes the code thread safe.

    --
    SJW n. One who posts facts.