Yeah, Rust is an interesting and evolving language, which makes it a bold decision to allow use at a systems level.

I came to .NET via C++ in the early '00s and still use it occasionally but C++ is almost unrecognisable from those days.  So I thought I'd have a play around with Rust instead late last year but ended up slinking back to C#, temporarily defeated but plan to go back at some stage. It's well documented but can seem fairly cryptic at times.

Object scope/lifetime is baked into the type system and the compiler/checker is quite punishing compared to C/C++/C#.  Most languages let you learn as you go (mostly) but with Rust the trick seems to be having to know all the language idiosyncrasies up front, which as a beginner makes simple stuff seem hard, and hard stuff seem almost impossible.

-Tony

On 24/06/2022 14:02, David Connors via ozdotnet wrote:
I was doing some reading last night about Rust - https://www.rust-lang.org/ - mainly prompted by the fact that Linus Torvalds has now said that they will introduce Rust code into the Linux kernel. It will be interesting to see how this progresses - I've never heard of anyone doing kernel/device driver level type development in anything other than assembly, C or C++.

Rust's claim to fame is C-like performance but with memory safety and no garbage collector.

David Connors
da...@connors.com <mailto:da...@connors.com> | M +61 417 189 363
Telegram: https://t.me/davidconnors
LinkedIn: http://au.linkedin.com/in/davidjohnconnors



On Fri, 24 Jun 2022 at 10:18, Greg Keogh via ozdotnet <ozdotnet@ozdotnet.com> wrote:

    It's Friday and I promised to turn the heat up in the kitchen
    again and stir the possums. The text below is pasted from my
    latest Blog Post
    <https://gfkeogh.blogspot.com/2022/06/c-stupidity-and-delusion.html>.
    I can't apologise for what I say, I'm really angry about this --
    /Greg Keogh/

    _______________________

    C++ Stupidity and Delusion

    I recently returned to writing C++ after a 17-year gap and I have
    concluded that C++ has become the stupidest language in
    contemporary common use and fans of the language are living in
    some form of mass delusional insanity.

    When I wrote C++ from about 1993 to 2003 it was basically "C with
    Classes" and it claimed to guide you away from C spaghetti code
    into the superior and trendy OOP world of software development.
    That claim was generally fulfilled, but I often found myself
    creating classes that didn't need to exist, and there was always
    the risk of creating "spaghetti classes". /It's worth noting that
    opinions of OOP have not aged well and web searches for "OOP
    sucks" or "OOP is bad" will produce some withering criticism./

    Upon returning to C++ after a long absence, I am shocked and
    angered by what I have found. Several major enhancements over the
    decades have added so many features to the language with so much
    syntax that it looks like an unstoppable academic research project
    that went out of control and became a joke. And ironically, the
    community using the language don't seem to realise they're part of
    the joke.

    I have recently watched lots of videos about C++, and the ones
    taken at conventions are the most worrying because people like
    Bjarne and Herb come on stage and are cheered like heroes by an
    audience that uncritically drools over upcoming C++ features that
    are discussed in great detail. What makes me both angry and
    incredulous is that most of the recently added and upcoming C++
    features are either making the language more and more complex, or
    they are features that have been built-in to other popular
    programming languages for a lifetime.

    Languages like Java and C# have had parallelism, reflection,
    networking support, UI designers, modules and much more for
    decades, but here we are in the far distant science fiction future
    of 2022 and the C++ committees are only now proposing to add these
    features that are vital for software development. C++ is so far
    behind the ecosystem of other modern languages that it's another
    joke they don't get, and they continue to blindly cram the
    language with more libraries and syntax stolen from other
    languages to try and keep it up to date with its modern
    contemporaries.

    Writing C++ is so staggeringly complex that I need cheat-sheets
    always open, and sometimes I must Google search on how to write
    every line of code correctly. As a result, my C++ coding speed
    often hovers at around 10 to 20 lines of code per hour. It took me
    3 solid days of hair-tearing suffering to find a library that made
    REST web service calls, compile it, and make it work. A colleague
    took two days to get a zip library working and at one point he
    said, "lucky I don't live near a cliff". Both of those tasks could
    be coded in a few lines of a modern language in less than a minute.

    Have a look at the Working Draft <https://eel.is/c++draft/> or the
    C++ Reference <https://en.cppreference.com/> to get a feel for the
    astonishing complexity of C++. There are countless videos online
    as well that discuss all of the frightening traps and tricks of
    C++ coding and how to use the huge list of language features
    correctly (see Jason Turner's videos
    <https://www.youtube.com/results?search_query=C%2B%2B+Jason+Turner>).
    The complexity of C++ creates a huge learning hurdle for even the
    most skilled developer who could require up to a year of intensive
    experience to become an expert.

    C++ doesn't have a public library system (like packages
    <https://www.nuget.org/> or crates <https://crates.io/>), the
    error messages are beyond mortal comprehension, you can't tell
    which language features are "safe" to use on your platform,
    everyone argues about the best coding patterns, and most sample
    code won't compile. In my words (which can often be heard shouted
    from the other end of the house) … "Everything f***ing doesn't
    work!!". In C++, everything is as ridiculously cryptic and
    difficult as it can possibly be. I often joke that writing C++ is
    harder than building an atomic clock.

    The C++ fanbase brags about how widespread its usage is and how
    many diverse and performance critical systems depend upon it, but
    I think this is just a historical hangover because it grew out of
    the popularity of C back when there were no alternatives. I saw
    C++ become trendy and cool back in the 1990s and it developed a
    kind of aura or mystique about it, mainly because it was so
    complex and intimidating to average developers of the time. If you
    told people you were writing C++ you could often see reverent "Oh
    you're a /real /programmer" looks on their faces. C++ just
    happened to arrive at the right time to fill a void and I think
    the C++ community is still living in the 1990s.

    The other C++ brag is about how it is "close to the metal" and can
    produce apps with unequalled performance. C++ continues to ride
    high on its performance claims, but it's become an urban legend
    that's no longer a compelling argument. Recent research by my own
    colleagues with nearly identical cross-tabulation libraries
    written in C# and C++ finds that the C++ library only performs
    slightly better when very large amounts of data are being
    processed, which results in very large in-memory tables.

    Even if optimised C++ does produce more performant native
    binaries, who needs that? Typical business apps are not
    performance critical and writing them quickly in C#, Swift, Java
    or Python will save immeasurable money and suffering. Maybe C++ is
    vital in creating database engines, embedded systems or niche
    scientific applications, but in the last 15 years I have never met
    a single living developer who works in any of those industries and
    needs to expend enormous effort to squeeze out top performance.
    You would have to be out of your mind to consider using C++ to
    write a desktop app, or a background service, or a web service for
    business use in 2022. If you asked me to write a Windows desktop
    app or web service in C++, it would take at least 20 times longer
    than writing it in C#.

    In summary, I will reiterate without embarrassment that C++ is the
    most utterly stupid programming language in popular use, it's
    getting stupider, and its community is living in a world of delusion.

    C++ should be deprecated now and go into maintenance mode.

    One would normally recommend that all development effort be
    channelled into designing a modern replacement for C++, but what's
    the point, because robust and respected alternatives are already
    available.

    Bjarne often talks about the "ideal C++" and how it will never
    stop evolving. By the time it reaches his "ideal" it will be extinct.

    /June 2022/
-- ozdotnet mailing list
    To manage your subscription, access archives:
https://codify.mailman3.com/

Reply via email to