Stories
Slash Boxes
Comments

SoylentNews is people

posted by janrinok on Monday January 16 2017, @08:42PM   Printer-friendly
from the comparing-tools dept.

Eric S Raymond, author of "The Cathedral and the Bazaar", blogs via Ibiblio

I wanted to like Rust. I really did. I've been investigating it for months, from the outside, as a C replacement with stronger correctness guarantees that we could use for NTPsec [a hardened implementation of Network Time Protocol].

[...] I was evaluating it in contrast with Go, which I learned in order to evaluate as a C replacement a couple of weeks back.

[...] In practice, I found Rust painful to the point of unusability. The learning curve was far worse than I expected; it took me those four days of struggling with inadequate documentation to write 67 lines of wrapper code for [a simple IRC] server.

Even things that should be dirt-simple, like string concatenation, are unreasonably difficult. The language demands a huge amount of fussy, obscure ritual before you can get anything done.

The contrast with Go is extreme. By four days in of exploring Go, I had mastered most of the language, had a working program and tests, and was adding features to taste.

Have you tried using Rust, Go or any other language that might replace C in the future? What are your experiences?


Original Submission

 
This discussion has been archived. No new comments can be posted.
Display Options Threshold/Breakthrough Mark All as Read Mark All as Unread
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
  • (Score: 4, Insightful) by turgid on Monday January 16 2017, @10:16PM

    by turgid (4318) Subscriber Badge on Monday January 16 2017, @10:16PM (#454558) Journal

    The problem with C++ is that it keeps getting bigger and bigger and bigger and...

    Starting Score:    1  point
    Moderation   +2  
       Insightful=1, Informative=1, Total=2
    Extra 'Insightful' Modifier   0  
    Karma-Bonus Modifier   +1  

    Total Score:   4  
  • (Score: 0) by Anonymous Coward on Monday January 16 2017, @10:51PM

    by Anonymous Coward on Monday January 16 2017, @10:51PM (#454580)

    Yeah, but the good subset keeps getting more and more and more well defined.

  • (Score: 2) by rleigh on Monday January 16 2017, @11:21PM

    by rleigh (4887) on Monday January 16 2017, @11:21PM (#454594) Homepage

    Why is this a problem? The subset of C++ you knew before the new standard comes out is just as valid afterward. If I use C++98, I can carry on using it indefinitely. My work projects made the switch to C++11 just last week, six years after it came out, and many projects will never switch. The new keywords are optional, but make the language vastly easier to use, likewise with the library features. I for one am not complaining; it's a long overdue improvement that actually makes the language easier and safer to use. Use the subset of the language and library that makes sense for your project, and ignore the rest.

    • (Score: 2, Insightful) by Anonymous Coward on Tuesday January 17 2017, @01:53AM

      by Anonymous Coward on Tuesday January 17 2017, @01:53AM (#454667)

      The problem is that C++ is an insanely complicated language and the 80/20 rule applies: 80% of C++ programmers know at most 20% of the language.

      The real kicker is that no two programmers are likely to know the same 20%.

      C++ appears to be designed under the assumption that extra features cannot cause any problems, only missing features can. But C++ features often have complex interdependencies that very often mean that you can't just avoid using them.

    • (Score: 5, Insightful) by cubancigar11 on Tuesday January 17 2017, @04:18AM

      by cubancigar11 (330) on Tuesday January 17 2017, @04:18AM (#454724) Homepage Journal

      You are assuming everyone is working on their pet project. The biggest problem of C++ is that it is extremely difficult to market. Every project is working on a subset of language and every interviewer wants someone who knows exactly that subset.