Alternatives?

By: Brendan (btrotter.delete@this.gmail.com), July 12, 2021 7:52 pm
Room: Moderated Discussions
Hi,

FrankHB (frankhb1989.delete@this.gmail.com) on July 12, 2021 10:57 am wrote:
> Brendan (btrotter.delete@this.gmail.com) on July 12, 2021 2:34 am wrote:
> > > Also recently I've found the stupidity like this:
> > > https://github.com/Rust-for-Linux/linux/commit/c606d85a0d3c67b8221fee5fa67028bdebd4b0cc#diff-521fe5c9ece1aa1f8b66228171598263574aefc6fa4ba06a61747ec81ee9f5a3
> > >
> > >
> > > Instead of doing this
> > > void foo()
> > > {
> > > p[1].x().y() = p[2].x().y();
> > > }
> > >
> > >
> > > Now you have to do this. Who the fuck in rust team though this is a good idea.
> > > ///SAFETY: p has 5 elements
> > > ///XXXX
> > > ///XXXX
> > > unsafe fn foo()
> > > {
> > > (unsafe{p.get_mut_unchecked(1)}.unsafe {x()}.unwrap().unsafe{y()?})? =
> > > (unsafe{p.get_mut_unchecked(2)}.unsafe {x()}.unwrap().unsafe{y()?})?;
> > > }
> > >
> > > Rust one is completely unreadable, wasting programmers time and probably even leading to slower compilation.
> >
> > Unlike C++; where it's impossible to be sure what something as innocent looking as "a = b + c;"
> > actually does without scouring the source code to determine who overloaded what; where compile
> > times have a reputation for being the worst of any language ever created (despite scavenging the
> > concept of modules from other languages and slapping it onto their huge pile recently)?
>
> This is red herring. The example is about some crazy and absurd code abuse, which is also complaint by average
> Rust users. In constrast, operator overloading is quite idiomatic and irrelavant to the point here.
>
> As of this C++ case, it should not cause trouble once the overloaded operator is well-designed
> to expose its intent properly. It is also ridiculous to blame the contextual-dependent nature
> solely of the overloading. The name lookup on variables "a", "b" and "c" also requires reading
> the declaration to ensure the meaning clear, so you are actually forbidden from being that
> innocent unless you don't use any languages having such kinds of scoped variables.

For C, you know "a = b + c;" is definitely addition involving some kind of numbers without looking at any variable's declaration, and that it's definitely not likely to be a performance problem (note: the introduction of complex numbers made this statement "slightly less true", but only slightly). ​For C++, even if you know one variable is a plain "int" it still might format your hard drive (or concatenate, or search a list, or take your cache out behind the back shed and slap it around for 2 hours, or ...). Alternatives to overloading (e.g. "a = b.add(c);") provide an unmistakable warning that natural assumptions may not apply.

> BTW, overloading, being a form of ad-hoc polymorphism, is certainly evil in many sorts. But in the context of
> C++, my hatred to the feature mostly comes from the effects that over-complicated overloading rules bloat the
> language specification (i.e. ISO/IEC 14882) a lot. As of Rust... well, where is the language specification?
>
> And thanks to Rust, reputation of compile time of today's C++ seems to be
> promoted a bit. (I'm against C++ module for some other reasons, though.)
>
> > > If the goal of Rust team is to make everything painful, why should I waste time to fight against
> > > the compiler? Instead of using that time to sanitize and fuzz? What's the benefit of using it?
> >
> > Heh. This is how I feel about "smart pointers" in C++. If the goal of C++ is to double
> > the (already 10 times worse) learning curve why should I fight against the compiler?
>
> Why do you feel C++'s smart pointers difficult to learn? Is
> Rc really simpler than shared_ptr besides the spelling?

Originally I went from electronics to assembly to C. When I learnt C++ in the 1990s my brain was in "decide what you want the CPU to do, then try to express what the CPU should do in whichever language you're using" mode. Higher level languages don't help you express "what the CPU should do" any more than C does, so I mostly just learnt to hate C++ due to all the extra stuff that had no value to me at the time. C++ has evolved since but the fundamental reason I didn't like it the first time persist (and first impressions are hard to break). Basically; it probably isn't hard to learn smart pointers, it's just hard to find the enthusiasm to try.

The strange thing is I didn't have the same trouble with Python, Java or C#. I think denying the ability to do anything low level up front forces me to accept that they're a "bubble wrapped plastic world" before I get frustrated (especially if it's the right job for the tool); while C++ gives people the choice to be frustrated (because of high level features) or to be frustrated (because of low level features).

Of course mostly what I'm doing here is reflecting cqwrteur's attitude towards Rust back at cqwrteur as an attitude towards C++.

> > Note: I'm not a Rust advocate (I'm just willing to let other people spend their time experimenting
> > so I can obtain better empirical evidence about the benefits and pitfalls of certain language features).
> > To me; the goal should be to reduce complexity of the language
> > (because I think "more complexity" translates
> > directly into "higher chance of mistakes" and that programmers have enough complexity to deal with
> > from the problem their code is trying to solve), and to reduce the time between a programmer making
> > a mistake and the programmer finding out a mistake was made (primarily by designing language to maximize
> > the practicality and effectiveness of "continual analysis while you type").
> >
>
> Professional empirical evidence (in the sense of programming language theory and authoring the language
> specification) shows both C++ and Rust are the kind of most evil ones about both complexity of language
> rules and learning curves for most users. There do exist a few worse, say, Haskell; but C++ and Rust are
> already enough far from easy and simple for non-specialists. And they will both become worse in the forseeable
> future. I don't see the essential differences here, besides "disgned by commitee v. community".

Alan Kay is teaching children to program Squeak in < 6 months, while everyone else seems to be trying to convince programmers who already have 4+ years of University to spend an extra 2 years retraining (for new features and new languages) every 2 years. ;)

- Brendan
< 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 avocado?