|
If you had to pick a song that described you, what would it be? I'll kick things off with mine:
I can't help about the shape I'm in
I can't sing, I ain't pretty and my legs are thin
But don't ask me what I think of you
I might not give the answer that you want me to
Oh well
This describes me so well... I probably think this sone is about me... don't I.
|
|
|
|
|
I believe the title is
" everyday people"
...different strokes for different folks...
|
|
|
|
|
|
As an incredibly enthusiastic user of C++ from its very first release, I've expressed this (personal) opinion a number of times over recent years: C++ has lost its way - it now takes more time, learning, effort and skill to make good, efficient use of C++ than it takes to solve the problems one is using it for.
A caveat: I am thinking specifically of business tasks and related domains - I accept that for the most cutting edge stuff near to the metal it still offers the one of the best overall effort/performance ratios.
In part, the effort to maintain backwards compatability at almost any cost (despite the fiasco of i(o)streams and manipulators between versions 1,2 and 3) whilst adding ever more features adds huge amounts of technical debt that then has to be fought against in other ways.
This article I think demonstrates this nicely Speeding Up C++ Build Times | Figma Blog[^]
Discuss! (ducks for cover...)
|
|
|
|
|
Quote: However, there are other common solutions that we also employed to reduce build times, including local caching, remote caching, and precompiled headers. From the rest of the writing, it seems they haven't implemented precompiled headers correctly, because all their efforts to eliminate redundant headers amount to very little savings if the precompiled header gets each precompilation unit added once and then not again with additional redeclarations. At least that is the way I understand precompiled headers, and they have saved me a bunch of time in the past. I wish they would have talked about that aspect more as my understanding could be deepened.
PS - Mike Winiberg wrote: In part, the effort to maintain backwards compatability at almost any cost (despite the fiasco of i(o)streams and manipulators between versions 1,2 and 3) whilst adding ever more features adds huge amounts of technical debt that then has to be fought against in other ways.
This article I think demonstrates this nicely Speeding Up C++ Build Times | Figma Blog[^] I don't see that article supporting your assertion in any meaningful way. All it seems to be saying is that their coders haven't kept their headers clean, and often included unneeded headers that they had to take out. That doesn't seem to be speaking about the difficulties inherent in modern C++.
|
|
|
|
|
"I don't see that article supporting your assertion..."
Well, YMMV indeed, but it demonstrates quite nicely, I think, how - in an attempt to maintain backward compatability - the C++ environment has required ever more esoteric procedures to keep it usable both compiling the code and learning the language and its libraries etc. That one should need to have precompiled headers, write add-ons (which even google had to do) to make compilation times acceptable etc speaks very well to the increasing complexity of the whole ecosystem, in my view.
Don't get me wrong, I'm not saying it isn't a good powerful dev environment - my team developed a whole airline/shipping/freight system in C++, and financial applications using parallel C++ for market-maker using a Transputer farm. But I reached a point where I realised it was taking far longer (for us anyway) to learn how to make good use of the ever increasing new features than it was to solve the problems we were facing.
Having made extensive use of one feature (manipulators on streams) to control printing, only to have that broken - and hence needing a rewrite - in version 2, followed by a partial regression in version 3 (another rewrite!), then complete collapse of our system after a third-party database library we were using was updated and broke references (implementing them by copying FFS) we came to the conclusion we were spending more time fighting the language environment than writing software.
Switched to Java, then later to Python, and heve not used C++ in a meaningful manner since.
If there is one thing I have learnt in my altogether too-long time in software dev, it is that - with a few domain specific exceptions - the language you develop with is largely irrelevant, so the less it gets in the way of the task you want to accomplish, the more productive you can be.
|
|
|
|
|
I agree with you that C++ is in danger of becoming a modern version of PL/1, containg something for everyone. I also agree that learning the entire language (and standard libraries) is becoming more and more difficult. However, C++ shares with C the philosophy that "if you don't use it, you don't pay for it" (or words to that effect). There is no reason that you can't use C++ as "C with classes", or at any other level between that and C++20/23/xx.
The language features I most use are RAII (exists from the ARM), templates & exceptions (C++98), threads & atomic variables (C++11), smart pointers (C++11?), and a few more advanced features (various, up to C++17). These have changed slighly over the years, but the changes are manageable.
Obviously, I use the standard library as well, but most changes to that have not been breaking changes.
Mike Winiberg wrote: Speeding Up C++ Build Times | Figma Blog[^]
Lastly, a decent developer spends most of his/her time on designing, writing code, and thinking about the code (debugging). The compilation time should be a small fraction of the total development time, and even that (as the article points out) may be optimized with a good design of your system.
Freedom is the freedom to say that two plus two make four. If that is granted, all else follows.
-- 6079 Smith W.
|
|
|
|
|
Damn, that article is making the rounds !!
The (one of) problem with C++ is that it's an old language that needs to compete with more modern languages.
It can only be incrementally improved.
We underestimate how large the C++ code base is actually in production.
You can't just break backward compatibility (as much as I would like them to do it)
If that happens, many, many large organisations will never upgrade their toolsets.
CI/CD = Continuous Impediment/Continuous Despair
|
|
|
|
|
No, I am NOT posting programming question , the post is clearly marked as "rant".
The unnamed site , to protect the guilty , rejected the attached code as " poorly formatted".
until I deleted #ifdef ...,#endif. Then it passed.
I am a believer that Alan Cooper was right when he stated that coders will take the path of least resistance / use less brain , when coding.
(Not to be confused with KISS...)
Apparently adding " post it anyway , WE can make an exception " would indirectly indicate that
the code is void of better analysis, hence more code / brain usage would be required.
void SettingsDialog::closeEvent( QCloseEvent* event )
{
#ifdef RETILE
text = "\t#i#ifdef RETILE \n";
text += "TRACE START Retile mdiArea subwindows .... ";
text += " ";
text += Q_FUNC_INFO;
text += QString::number(__LINE__);
qDebug().noquote() << text;
#endif
text += " ";
text += "\n\t test send text to child";
|
|
|
|
|
|
You could have simply indented the # lines instead of deleting them. Hashdent is bad formatting in my opinion.
|
|
|
|
|
The fact that AI rejected your post demonstrates that AI is not completely devoid of real intelligence.
The difficult we do right away...
...the impossible takes slightly longer.
|
|
|
|
|
you forgot to highlight "your"
other than that - nothing new , just another version of saloon put-down
" ... verrry interesting , but stupid " - end of quote
|
|
|
|
|
Hmm, I know I saw this somewhere....
Quote: if you cannot say something nice , DO NOT SAY ANYTHING AT ALL
"the debugger doesn't tell me anything because this code compiles just fine" - random QA comment
"Facebook is where you tell lies to your friends. Twitter is where you tell the truth to strangers." - chriselst
"I don't drink any more... then again, I don't drink any less." - Mike Mullikins uncle
|
|
|
|
|
Patient: "OK...er... give me the good news"
Doctor: "you have a fatal cancer and have 24 hours to live"
Patient: "Doc, if that's the GOOD NEWS, what's the BAD news?"
Doctor: "I should have called you yesterday"
Check out my IoT graphics library here:
https://honeythecodewitch.com/gfx
And my IoT UI/User Experience library here:
https://honeythecodewitch.com/uix
|
|
|
|
|
Further:
Patient: I am already dead. This is my ghost speaking.
|
|
|
|
|
I think I have submitted this one but here it is
Man goes into hospital with with a bad leg.
Dr: "That looks bad. Time to go to Surgery."
After surgery, patient asks "How did it go?"
Dr: "I have some bad news and some good news."
Patient: "What's the good news?"
Dr: "The leg is getting better."
Patient: What's the bad news?"
Dr: "We cut off the wrong leg."
Grrrr
"A little time, a little trouble, your better day"
Badfinger
|
|
|
|
|
The classic version in Norway goes:
"I have some bad news and some good news for you.
We were supposed to remove your left leg.
But we made a mistake, removing your right leg,
and we had to remove the left leg afterwards.
We are sorry, but you have no legs any more.
But there are some good news:
The guy in the next bed wants to buy your slippers."
Religious freedom is the freedom to say that two plus two make five.
|
|
|
|
|
The doctor gave me six months to live. I didn't pay him, so he gave me another six months.
Freedom is the freedom to say that two plus two make four. If that is granted, all else follows.
-- 6079 Smith W.
|
|
|
|
|
Rodney Dangerfield?
The difficult we do right away...
...the impossible takes slightly longer.
|
|
|
|
|
I don't remember where I first heard it, but it isn't original with me.
Freedom is the freedom to say that two plus two make four. If that is granted, all else follows.
-- 6079 Smith W.
|
|
|
|
|
Too close to home for me.
|
|
|
|
|
Wordle 1,046 4/6*
⬛⬛🟩⬛⬛
⬛🟨🟩🟩⬛
⬛🟩🟩🟩🟩
🟩🟩🟩🟩🟩
|
|
|
|
|
Wordle 1,046 4/6
⬜⬜⬜🟨⬜
🟨⬜🟨⬜⬜
⬜🟩🟩🟩🟩
🟩🟩🟩🟩🟩
|
|
|
|
|
Wordle 1,046 5/6
⬜⬜⬜⬜⬜
⬜🟨🟨⬜⬜
⬜⬜🟩🟨⬜
🟩🟩🟩⬜⬜
🟩🟩🟩🟩🟩
|
|
|
|