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/