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 | 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/