Announcement

Collapse
No announcement yet.

GCC 9.1 Released As Huge Compiler Update With D Language, Zen 2, OpenMP 5, C++2A, C2X

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • #21
    Originally posted by sdack View Post
    No, it is. Only for a person with a short attention span may it seem ancient.

    I'm not surprised to now see Rust and C# being mentioned here.
    Why should you be surprised? It's perfectly normal and legitimate to mention them. D's philosophy is to be "C++ done right". Rust proposes to address C++'s issues differently but since both languages ultimately pursue a similar goal, it's only natural to compare them. C# was born as a knee jerk reaction to Java, but is nowadays often used as yet another alternative to C++ and it definitely belongs to the broad family of C++-like languages.

    Comment


    • #22
      Originally posted by jacob View Post
      Why should you be surprised? It's perfectly normal and legitimate to mention them.
      Do I sense some sarcasm there?! You must have noticed that the context these were mentioned in isn't the same as yours. You obviously have an understanding of the languages, which goes beyond just a random date. And yes, C# was a knee jerk, or something that was forced onto customers and just a spin of existing languages but not something ideologically new. And while Rust isn't the political child of a software giant do I have my doubts on its necessity. It seems half the time is Rust only being used to reimplement existing code (... who has asked for Linux kernel components to be rewritten in Rust?!), rather than to create something actually new, or when it's being used for making something new then it falls short on expectations as is the case for Firefox where the competition clearly wins by sticking to C++. So while C# may seem new is it actually old already and won't go further than it has goner so far, or where the politicians allow it to go. Whereas Rust is so squeaking young that we first have to take it a couple times behind the barn and shoot it before there is any chance for it to become old. And then you have Fortran, which on one hand is very old (more precisely are its first implementations very old), and yet still new enough for Nvidia to provide a frontend for it to LLVM. Of course is it not just any Fortran, i.e. Fortran60 or 77, which happens to have a year number to its name, but it is Fortran18 (aka 2018).
      Last edited by sdack; 03 May 2019, 06:48 PM.

      Comment


      • #23
        Originally posted by sdack View Post
        Do I sense some sarcasm there?! You must have noticed that the context these were mentioned in isn't the same as yours. You obviously have an understanding of the languages, which goes beyond just a random date. And yes, C# was a knee jerk, or something that was forced onto customers and just a spin of existing languages but not something ideologically new. And while Rust isn't the political child of a software giant do I have my doubts on its necessity. It seems half the time is Rust only being used to reimplement existing code (... who has asked for Linux kernel components to be rewritten in Rust?!), rather than to create something actually new, or when it's being used for making something new then it falls short on expectations as is the case for Firefox where the competition clearly wins by sticking to C++. So while C# may seem new is it actually old already and won't go further than it has goner so far, or where the politicians allow it to go. Whereas Rust is so squeaking young that we first have to take it a couple times behind the barn and shoot it before there is any chance for it to become old. And then you have Fortran, which on one hand is very old (more precisely are its first implementations very old), and yet still new enough for Nvidia to provide a frontend for it to LLVM. Of course is it not just any Fortran, i.e. Fortran60 or 77, which happens to have a year number to its name, but it is Fortran18 (aka 2018).
        No sarcasm intended. It's not about what's old or new. Fortran is being supported, and it should be, simply because old or new, it's still the best language there is for high performance computing. Besides Fortran18 has very little in common with the old F77; it's a modern, structured, high-level language. As for Rust, I don't think anyone can doubt its success. I'm not aware of any project to rewrite Linux kernel parts in it but if someone is doing it (which I doubt given Linus's love affair with C), why not? It's not whether someone is "asking for it". It's open source, which means that no-one has to run around and ask for everyone's permission to endeavour some project. But Mozilla is certainly rewriting parts of Firefox in Rust and it doesn't fall short of expectations. Those parts that have been rewritten so far, that is the CSS parser and Webrender, perform very well; Chrome's advantage is mainly in its faster JavaScript interpreter. GNOME is also rewriting some of its components in Rust, other than that yes, there are a lot of new developments in Rust: Dropbox, Netflix, Microsoft and Google use it internally, in the open source world there is Rav1E, Redox, Alacritty, Piston and others. Rust is certainly no silver bullet, but its promise of unmatched safety and security with no sacrifice in terms of performance is enough to draw many people in, even if it comes at the cost of a very non-intuitive and sometimes strange language. In fact its biggest issue I believe is that it decided to stick with a C-ish syntax, which was IMO a mistake. Its infamously steep learning curve, with the dreaded phase of fighting against the type checker and borrow checker, would be much easier if newcomers were not lured to think that this is another new C++ and write stuff that they believe just should work but doesn't. If the language looked different enough to stress the point that this is something else and you shouldn't expect to use it with the mindset of a C/C++ developer, it would probably be much smoother.

        Comment


        • #24
          Originally posted by jacob View Post
          Nice to see that D gets some support. It's actually a rather nice language in its own way, even though it never had the cool factor of Rust or Go, and with these two around, there seems to be little room for yet another "better-than-C" language at the moment.
          It just seems like a dead-end now. Many of the nice things D had when new, C++11 got without compromising other features like D did.

          Comment


          • #25
            Originally posted by carewolf View Post

            It just seems like a dead-end now. Many of the nice things D had when new, C++11 got without compromising other features like D did.
            I agree that D looks like a dead-end but I think it's mainly because people have moved on mainly to Rust and Swift on one hand, and on higher-level languages like Python and Ruby on the other hand. C++11/17/20 hasn't solved any of C++'s problems, which by design can never be solved. It just made it somewhat easier to work around them.

            Comment


            • #26
              Originally posted by jacob View Post

              C++11/17/20 hasn't solved any of C++'s problems, which by design can never be solved. It just made it somewhat easier to work around them.
              Seems your problem is not being a good enough C++ programmer. The problem with powertools is not that you can hurt yourself on them and the problem with planes is not that a pilot can fly it into the ground if they steer it downwards.
              Last edited by carewolf; 04 May 2019, 03:50 AM.

              Comment


              • #27
                Originally posted by sdack View Post
                So while C# may seem new is it actually old already and won't go further than it has goner so far, or where the politicians allow it to go.
                The async syntax is considered quite revolutionary and it's inspired many languages to follow it, including JavaScript. I don't understand why people who don't use or follow C# immediately assume it's some sort of evil version of Fortran. Also the transition to .NET Core was extremely intentional as it enables the language to evolve rapidly even if it breaks syntax, which is why it's now getting stuff like everything-not-nullable, etc. Well, I guess you don't know that stuff because you have a short attention span, like we do, right?

                But I'm pretty sure you're a troll judging from your previous comments so I'll digress.

                Comment


                • #28
                  Originally posted by carewolf View Post

                  Seems your problem is not being a good enough C++ programmer. The problem with powertools is not that you can hurt yourself on them and the problem with planes is not that a pilot can fly it into the ground if they steer it downwards.
                  Typical example of what I call the C++ Stockholm Syndrome. Any modern C++ compiler will for example accept the following code:

                  Code:
                  unique_ptr<foo> bar(foo& f)
                  {
                      return unique_ptr<foo>(&f);
                  }
                  
                  ...
                  auto f = unique_ptr<foo>(new foo());
                  auto f2 = bar(*f);
                  And presto! Two or more supposedly unique pointers now refer to the same object. And while this example is caricatural, it goes to show that if such things are possible while strictly adhering to the standard, then none of the problems have been SOLVED, just wrapped and kicked under the carpet. There is nothing inherently "powerful" about a language like this, it's just an irremediable trainwreck. A good programmer, in my opinion, is one who understands this, not one who insists that he wants to fly a cardboard plane whose wings fall off at any time, who claims that in some cases it is possible that it may not crash and that a good pilot can fly any old piece of junk.

                  The bottom line is that what I'm interested in is code provability and a language like Rust goes a long way, although not completely and not perfectly, towards being able to mathematically PROVE, not claim, that your program's memory management is sound. That's part of what I consider the signature of a Good Programmer, as opposed to a L33t "Real Programmer Who Knows What He's Doing" (but doesn't really).

                  Don't get me wrong. There ARE valid reasons to select C++. There is a wealth of libraries and frameworks for it that Rust doesn't come even close to. Debugging tools, profilers, benchmarks etc. are way more mature than what is available for Rust. There are many competing C++ compilers, Rust has only one non-toy compiler. C++ can be used on many more CPU architectures and target platforms than Rust. Etc etc etc. But its flaws are real and while you can decide to accept them as a price to pay for some of its other benefits as above, they don't make it a powertool as you say. It's still just a crappy tool that a skilled professional should recognise as such.

                  Comment


                  • #29
                    Originally posted by Ironmask View Post
                    But I'm pretty sure you're a troll judging from your previous comments so I'll digress.
                    No, you are and I'm sure you understand what I wrote about and only don't want to back off, but maintain your course of insult and pettiness, because you don't know any better, which makes you the troll but not me.

                    And should I ask?! What actually do you mean by "C# being an evil version of Fortran"?
                    Last edited by sdack; 04 May 2019, 05:53 AM.

                    Comment


                    • #30
                      Originally posted by carewolf View Post
                      Seems your problem is not being a good enough C++ programmer.
                      Your notion seems to rely on "C++ programmer", but it's also a problem. A programmer (of any language) needs to get a job done. If one first has to become a "good C++ programmer" then it hides the fact that C++ is a complex language to program in. Most people believe that tools are meant to serve them and not that they have to serve the tools, and wasting an enormous amount of time for using one particular language isn't attractive.

                      The more complex a programming language is the worse it is to maintain code written in it, because there will always be some who program badly, who use features incorrectly or excessively. This is probably the number one reason why C++ hasn't reached the popularity of C and why people look towards other languages instead. People want to achieve more, while doing less for it.
                      Last edited by sdack; 04 May 2019, 06:28 AM.

                      Comment

                      Working...
                      X