Alternatives?

By: dmcq (dmcq.delete@this.fano.co.uk), July 12, 2021 8:37 am
Room: Moderated Discussions
Michael S (already5chosen.delete@this.yahoo.com) on July 12, 2021 3:58 am wrote:
> Gabriele Svelto (gabriele.svelto.delete@this.gmail.com) on July 12, 2021 1:31 am wrote:
> > cqwrteur (euloanty.delete@this.live.com) on July 11, 2021 11:58 am wrote:
> > > https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=rust
> > >
> > > Same with Rust crates and std. You still see 80% of cves are memory safety cves.
> > >
> > > Notice that this is only in crates. A lot of security vulnerabilities are not shown. Redox OS whatever.
> > >
> > > https://bugzilla.mozilla.org/buglist.cgi?bug_id=1513519%2C1683439%2C1690169%2C1690718
> > > https://phabricator.services.mozilla.com/D103999
> >
> > You really don't wanna go there; in Firefox we've got a large body of Rust code and it's exhibiting
> > a fraction of the issues our C++ code suffers from. And those issues are usually trivially simple
> > to address precisely because Rust's unsafe parts can be isolated. Additionally - if you'd be looking
> > for another reason to use Rust - the parts of our code we have rewritten usually take 5-to-10 less
> > LOCs than the old C++. Heck we've rewritten Python tools in Rust yielding less LOCs than the original.
> > And that's not even touching things like robustness, memory usage and performance.
> >
> > Citing an article from a former colleague about the first project he wrote in Rust from scratch:
> >
> >
Much of my work using Rust has been on the Rust compiler itself, but that mostly involves
> > making small edits to existing code. fix-stacks is the third production-quality Rust
> > project I have written from scratch, the others being Firefox’s new prefs parser
> > (just under 1000 lines of code) and counts (just under 100 lines of code).
> >
> > My experience in all cases has been excellent.
> >
> > * I have high confidence in the code’s correctness, and that I’m not missing edge cases that
> > could occur in either C++ (due to lack of safety checks) or Python (due to dynamic typing).

> > * The deployed code has been reliable.
> > * Rust is a very pleasant language to write code in: expressive,
> > powerful, and many things just feel “right”.
> > * I have been writing C++ a lot longer than Rust but I feel more competent
> > and effective in Rust, due to its safety and expressiveness.

> > * Performance is excellent.
> > * As mentioned above, the entire fix-stacks project wouldn’t
> > have happened without the third-party Symbolic crate.
> >
> > Rust gives me a feeling of “no compromises” that other languages don’t.
> >
> >
Emphasis mine.
> >
> > > So, Rust must prove it is superior to modern C++. However,
> > > Rust still requires a huge amount of runtime afaik,
> > > due to the bloat of rustfmt and all sorts of other stuffs. Clearly, using Rust is no better either.
> >
> > Actually Rust has already proven many times over that it's better than C++. In production environments,
> > both in the FOSS and closed-source world. C++ and C are languages that were designed in the
> > past century; with concepts and technical limitations from a different time and without the
> > accumulated experience we have now. While they evolved over time their evolution is slow due
> > to their large legacy and how their evolution happens (design-by-committee).
> >
> > > Also recently I've found the stupidity like this:
> > > https://github.com/Rust-for-Linux/linux/commit/c606d85a0d3c67b8221fee5fa67028bdebd4b0cc#diff-521fe5c9ece1aa1f8b66228171598263574aefc6fa4ba06a61747ec81ee9f5a3
> >
> > Why do you call "stupidity" making a large chunk of code safe? Weren't you the one saying that
> > too much of that code was unsafe? Or maybe you didn't know that the body of an unsafe function
> > is not unsafe by default. You seem unable to understand how unsafe code works in Rust.
>
> I don't know.
> I read through Rust tutorial and decided that I don't like it, certainly would not use
> it for code that I do for my own pleasure and would never use it for production code at
> my own initiative. Still could use it if management insists, but that's unlikely.
>
> [O.T.]
> For comparison, I read through Go manual and found it palatable.
> Wrote (actually re-wrote from C) one lab/testing utility in go and experience
> was only slightly less palatable than original impression. Would be even better
> if code was written in Go from scratch instead of partially translated.
> But now, less than a year later, I already forgot just about everything I learned about Go.
> Right now the language I am most productive in (I mean, in golang heartland, i.e. non-GUI non-numeric
> stuff on non-resource-constrained but somewhat performance-sensitive environment; small and medium embedded
> is a different story; and GIU, which I do rarely and generally don't like is yet another story) is the
> same, it was for ages - "backward C++" with very minimal addition of elements of "modern C++".
> May be, if somehow I start to use Go regularly, it will change, because even at
> small scale productivity advantages of GC are noticeable to me although not huge
> (and Rust appears somewhat worse in that regard event relatively to C++).
> My feelings about C# are similar to Go - I am rather sure that potentially I can be more productive
> in C# than in C++, but so far it didn't happen. Except that I find overall structure of C#/Java
> programs (insistence on wrapping everything in classes and lack of separation between declarations
> and definitions) unpleasant while overall structure of Go programs is more procedural == more
> pleasant for me. Also, until very recently, C# had no proper slices and Go had decent if not ideal
> slices right from the beginning. For my programming style slices are important.
> And except that ~2 years ago I actually *was* more productive in C# than C++, because the job (tester
> for small embedded system we did for the client) included JASON parser as rather central part. C#
> library for that is rather good, esp. compared to utter complicated crap I saw for C++.
> Also, a program ended up as relatively simple GUI and C#+WinForms
> combo is really good for building simple GUIs.
>
> Now, please don't take this O.T. part as suggestion to use Go in Linux kernel :-)

Well the big point that causes problems for Go but not Rust is garbage collection. I've been getting to fear garbage collection in a kernel less than formerly but I can't see it being mainstream anytime soon! I tried years ago to devise a safe but powerful language that didn't have any garbage collection and failed to come up with anything very acceptable so I have a great deal of respect and admiration for the devisers. And it copes with asynchronous programming too which I have been using in Python and Typescript and found really useful. And yes I do type checking with Python too and it has found a number of bugs I might have missed otherwise. I have really tried with C++ and have a nunber of large and thick books about it but I just think it is too gross and doesn't add sufficient value to warrant bothering with.
< Previous Post in ThreadNext Post in Thread >
TopicPosted ByDate
Is unsafe hell truly good for linux kernel in the future?cqwrteur2021/07/09 08:56 PM
  Is unsafe hell truly good for linux kernel in the future?Brendan2021/07/09 11:59 PM
    Is unsafe hell truly good for linux kernel in the future?cqwrteur2021/07/10 12:37 PM
  Is unsafe hell truly good for linux kernel in the future?anon2021/07/10 03:14 AM
    Is unsafe hell truly good for linux kernel in the future?cqwrteur2021/07/10 12:40 PM
      Is unsafe hell truly good for linux kernel in the future?Gabriele Svelto2021/07/10 02:59 PM
        Is unsafe hell truly good for linux kernel in the future?cqwrteur2021/07/10 03:42 PM
      Is unsafe hell truly good for linux kernel in the future?anon2021/07/11 05:11 AM
        Is unsafe hell truly good for linux kernel in the future?cqwrteur2021/07/12 11:40 AM
  Is unsafe hell truly good for linux kernel in the future?Foo_2021/07/10 05:56 AM
    Is unsafe hell truly good for linux kernel in the future?cqwrteur2021/07/10 08:59 AM
      Most RWT posters don’t decide what goes into the Linux kernelMark Roulo2021/07/10 11:55 AM
      Is unsafe hell truly good for linux kernel in the future?Foo_2021/07/22 10:10 AM
    Is unsafe hell truly good for linux kernel in the future?cqwrteur2021/07/10 09:22 AM
      Is unsafe hell truly good for linux kernel in the future?cqwrteur2021/07/10 09:24 AM
        Déja VuDismissive2021/07/10 09:41 AM
          Déja Vucqwrteur2021/07/10 09:47 AM
            Déja VuDismissive2021/07/10 09:51 AM
            Déja VuMichael S2021/07/10 12:11 PM
  Is unsafe hell truly good for linux kernel in the future?Gabriele Svelto2021/07/10 11:51 AM
    Is unsafe hell truly good for linux kernel in the future?cqwrteur2021/07/10 12:32 PM
      Is unsafe hell truly good for linux kernel in the future?Michael S2021/07/10 01:04 PM
        Is unsafe hell truly good for linux kernel in the future?cqwrteur2021/07/10 01:25 PM
      Is unsafe hell truly good for linux kernel in the future?Gabriele Svelto2021/07/10 02:56 PM
        Is unsafe hell truly good for linux kernel in the future?cqwrteur2021/07/10 03:41 PM
          Is unsafe hell truly good for linux kernel in the future?Rayla2021/07/10 04:33 PM
            Is unsafe hell truly good for linux kernel in the future?cqwrteur2021/07/10 05:27 PM
              Interesting response... (NT)Rayla2021/07/10 08:02 PM
                perhaps just another lousy AI bot? (NT)anonymou52021/07/10 08:33 PM
                  perhaps just another lousy AI bot?dmcq2021/07/10 10:26 PM
                    perhaps just another lousy AI bot?cqwrteur2021/07/10 10:56 PM
                      perhaps just another lousy AI bot?dmcq2021/07/11 02:29 AM
                      perhaps just another lousy AI bot?anon2021/07/11 05:16 AM
                        perhaps just another lousy AI bot?cqwrteur2021/07/12 02:56 PM
                    perhaps just another lousy AI bot?Rayla2021/07/11 05:13 AM
                      perhaps just another lousy AI bot?cqwrteur2021/07/11 10:59 AM
                        When did I call you a bot, Kebabbert? (NT)Rayla2021/07/11 07:51 PM
              Alternatives?Brendan2021/07/11 12:54 AM
                Alternatives?Michael S2021/07/11 05:01 AM
                  Alternatives?Brendan2021/07/11 05:51 AM
                    Alternatives?cqwrteur2021/07/11 10:58 AM
                      Alternatives?Gabriele Svelto2021/07/12 12:31 AM
                        Alternatives?Michael S2021/07/12 02:58 AM
                          Alternatives?anon22021/07/12 08:08 AM
                            Alternatives?Michael S2021/07/12 08:22 AM
                              cqwrteur: Keep it politeDavid Kanter2021/07/13 07:59 AM
                          Alternatives?dmcq2021/07/12 08:37 AM
                            Alternatives?cqwrteur2021/07/12 03:04 PM
                              Alternatives?dmcq2021/07/12 03:26 PM
                                Alternatives?cqwrteur2021/07/13 12:47 AM
                                  Alternatives?dmcq2021/07/13 05:54 AM
                          Alternatives?Jörn Engel2021/07/13 03:53 PM
                            Alternatives?FrankHB2021/07/17 06:56 AM
                          Differences between Rust and C/GoGabriele Svelto2021/07/14 04:57 AM
                            Differences between Rust and C/GoFrankHB2021/07/17 08:47 AM
                        Alternatives?FrankHB2021/07/12 09:08 AM
                          Alternatives?Gabriele Svelto2021/07/14 01:28 PM
                            Inappropriate messages removed: cqwrteurDavid Kanter2021/07/15 09:59 AM
                            Alternatives?FrankHB2021/07/16 05:43 AM
                              Alternatives?Anon2021/07/16 11:01 AM
                                Alternatives?Gabriele Svelto2021/07/16 12:44 PM
                                Type abstraction and kernel programmingFrankHB2021/07/17 12:44 AM
                                  Type abstraction and kernel programmingdmcq2021/07/18 03:00 AM
                                    Type abstraction and kernel programmingdmcq2021/07/18 03:36 AM
                                  Type abstraction and kernel programmingEtienne Lorrain2021/07/19 12:03 AM
                                    Type abstraction and kernel programmingdmcq2021/07/19 01:01 AM
                                      Type abstraction and kernel programmingAnon2021/07/19 01:05 AM
                                        Type abstraction and kernel programmingdmcq2021/07/19 02:23 AM
                                      Type abstraction and kernel programmingBrendan2021/07/19 06:05 AM
                                Alternatives?gallier22021/07/20 03:57 AM
                                  Alternatives?Anon2021/07/20 05:24 AM
                                    Alternatives?Michael S2021/07/20 09:14 AM
                                      Alternatives?Anon2021/07/20 09:53 AM
                                        Alternatives?gallier22021/07/21 10:44 PM
                                      Alternatives?Adrian2021/07/20 11:00 AM
                                        Alternatives?Brett2021/07/20 10:13 PM
                                          Alternatives?Michael S2021/07/21 01:12 AM
                                            Alternatives?dmcq2021/07/22 11:58 AM
                                          Alternatives?Anon2021/07/21 07:58 AM
                      Alternatives?Brendan2021/07/12 01:34 AM
                        Alternatives?FrankHB2021/07/12 09:57 AM
                          Alternatives?cqwrteur2021/07/12 11:55 AM
                            Alternatives?FrankHB2021/07/12 08:44 PM
                          Alternatives?Brendan2021/07/12 07:52 PM
                            Alternatives?cqwrteur2021/07/12 10:05 PM
                              Alternatives?Anon2021/07/12 10:42 PM
                                Alternatives?cqwrteur2021/07/12 11:42 PM
                                Alternatives?cqwrteur2021/07/12 11:44 PM
                                  Alternatives?Anon2021/07/13 07:32 PM
                                    Alternatives?cqwrteur2021/07/13 08:36 PM
                                    Alternatives?cqwrteur2021/07/13 08:39 PM
                                      Alternatives?Anon2021/07/13 09:02 PM
                                        Alternatives?cqwrteur2021/07/13 09:18 PM
                                    Alternatives?cqwrteur2021/07/13 08:49 PM
                                      Alternatives?Anon2021/07/13 09:07 PM
                                        Alternatives?cqwrteur2021/07/13 09:16 PM
                                          Alternatives?Anon2021/07/13 10:31 PM
                                            Alternatives?cqwrteur2021/07/13 11:30 PM
                                              Alternatives?Anon2021/07/14 12:55 AM
                                                Alternatives?cqwrteur2021/07/14 01:22 AM
                                                  Alternatives?Anon2021/07/14 02:05 AM
                                                    Alternatives?cqwrteur2021/07/14 02:11 AM
                                                      Alternatives?Anon2021/07/14 03:16 AM
                                                        Alternatives?cqwrteur2021/07/14 06:06 AM
                                                          Alternatives?Anon2021/07/14 07:20 AM
                                                            Alternatives?cqwrteur2021/07/14 07:51 AM
                                                              Alternatives?Anon2021/07/14 11:33 AM
                                                              Alternatives?Gabriele Svelto2021/07/14 12:19 PM
                                                                Alternatives?FrankHB2021/07/16 06:07 AM
                                            Alternatives?cqwrteur2021/07/13 11:33 PM
                                              Alternatives?Anon2021/07/14 12:57 AM
                                                Alternatives?cqwrteur2021/07/14 01:21 AM
                                                  Alternatives?dmcq2021/07/14 02:06 AM
                                                    Alternatives?cqwrteur2021/07/14 02:50 AM
                                                  Alternatives?2021/07/15 07:33 AM
                                                    Alternatives?FrankHB2021/07/16 06:13 AM
                                            Alternatives?cqwrteur2021/07/13 11:39 PM
                                              Alternatives?Anon2021/07/14 01:08 AM
                                                Alternatives?cqwrteur2021/07/14 01:20 AM
                                                  Alternatives?dmcq2021/07/14 01:46 AM
                                                    Alternatives?cqwrteur2021/07/14 01:52 AM
                                                      Alternatives?dmcq2021/07/14 09:13 AM
                                                        Alternatives?dmcq2021/07/14 09:23 AM
                                                        Dealing with memory errorsBrendan2021/07/14 11:50 AM
                                                          Dealing with memory errorsdmcq2021/07/14 03:27 PM
                                                            Dealing with memory errorsBrendan2021/07/14 03:55 PM
                                                    Alternatives?cqwrteur2021/07/14 02:12 AM
                                                      Alternatives?Anon2021/07/14 03:16 AM
                                                        Alternatives?cqwrteur2021/07/14 05:55 AM
                                                      Alternatives?FrankHB2021/07/16 06:27 AM
                                                Alternatives?cqwrteur2021/07/14 01:38 AM
                                                  Alternatives?anon2021/07/14 02:50 AM
                                                    Stop feeding that trollnone2021/07/14 03:13 AM
                                                    Alternatives?cqwrteur2021/07/14 06:39 AM
                                                      Alternatives?Brendan2021/07/14 11:15 AM
                                                  Alternatives?Anon2021/07/14 03:19 AM
                                                    Alternatives?cqwrteur2021/07/14 06:12 AM
                                                      Alternatives?Anon2021/07/14 07:17 AM
                                                        Alternatives?cqwrteur2021/07/14 07:47 AM
                                                          Alternatives?Anon2021/07/14 12:00 PM
                                                            Alternatives?cqwrteur2021/07/14 12:44 PM
                                                          Alternatives?2021/07/15 09:36 AM
                                                  Alternatives?Gabriele Svelto2021/07/14 12:26 PM
                                                    Alternatives?cqwrteur2021/07/14 12:46 PM
                                                      Alternatives?Gabriele Svelto2021/07/14 01:36 PM
                                                        Alternatives?cqwrteur2021/07/14 01:55 PM
                                                          Alternatives?Smoochie2021/07/14 11:07 PM
                                                  Alternatives?2021/07/15 07:37 AM
                                                    Alternatives?Brendan2021/07/15 10:21 AM
                                                      Alternatives?Anon2021/07/15 12:15 PM
                                                  Alternatives?FrankHB2021/07/16 06:27 AM
                                          Alternatives?None2021/07/14 01:50 AM
                                            Alternatives?cqwrteur2021/07/14 01:54 AM
                                            Alternatives?cqwrteur2021/07/14 01:55 AM
                                              Alternatives?Rayla2021/07/14 04:47 AM
                                                Alternatives?cqwrteur2021/07/14 05:54 AM
                                              Alternatives?Gabriele Svelto2021/07/14 12:43 PM
                                Alternatives?FrankHB2021/07/12 11:47 PM
                            Alternatives?FrankHB2021/07/12 11:05 PM
                              Alternatives?Michael S2021/07/13 12:01 AM
                                Alternatives?FrankHB2021/07/13 12:25 AM
                            Alternatives?Doug S2021/07/12 11:29 PM
                              Alternatives?cqwrteur2021/07/12 11:48 PM
                              Alternatives?FrankHB2021/07/13 12:07 AM
              Is unsafe hell truly good for linux kernel in the future?2021/07/12 05:27 AM
                Is unsafe hell truly good for linux kernel in the future?Anon2021/07/12 08:46 AM
                Is unsafe hell truly good for linux kernel in the future?Etienne Lorrain2021/07/13 01:00 AM
    Is unsafe hell truly good for linux kernel in the future?cqwrteur2021/07/10 12:38 PM
Reply to this Topic
Name:
Email:
Topic:
Body: No Text
How do you spell tangerine? 🍊