Why bring these ancient home computer platforms into play? Those were totally different to program for. Why not compare a C compiler from 1998 to one from 2018, on x86 (no SSE of course)? C compilers have gotten better, but not spectacularly.
>> The code that current C compilers don't generate, many times is related to taking advantage of UB
Compilers are really smart in optimizing things that aren't relevant to the real world.
For example, this code would reduce to "return 32" in most modern compilers:
int return32(){
int x=1;
for (int i=0; i<5; i++){
x*=2;
}
return x;
}
Does that make impact in real-world code? Almost certainly not, it's a contrived case. Most UB cases fall into the same category.
>> They also generate extra code for handling stuff like floating point emulation though.
Huh? C is fast (compared to Swift) because using it doesn't imply sprinkling lots of sugar (like ARC) into the resulting machine code.
Simpler languages like Fortran can turn into even faster code than a C implementation. UB optimizations aren't that relevant for real-world performance.
If someone literally gets hired over some white dude by "virtue" of their gender and/or race, then they aren't there by merit. That's exactly what some ideologically (or PR) driven HR departments do. The suspicion is entirely warranted.
The thing is, such practices also damage the self-image of the hire in question. Am I being hired for my abilities, or for being a number in some statistic?
In my experience, programmers are generally less socially inept than people would think, while people in most other professions are less socially adept than they think they are.
The thing is, some programmers really are socially inept and CS work is one of their last refuges. That includes a bunch of socially inept women, too! Let's not disturb their natural habitat by bringing all these overly social people in, those will thrive in many other places as well.
>> ...the truth is that they have beautiful offices, close-knit teams, a lifestyle with time for friends, a lot of influence, and a huge impact on real people’s lives through the software they create.
That's not "the truth", that's your experience in the amusement park that has been created for the pampered developers of the current dotcom bubble at companies like Google. Enjoy it while it lasts.
Regardless of gender, I'd rather have the doubters weeded out by an unrealistic negative perception than have them lured in by an unrealistic positive one.
It's not about eye-candy, the Web has become an application platform (against all resistance) and it can't thrive on standards bodies to deliver every bit and piece required. Even in 2018, web applications are shunned by many professionals for their poor quality and performance.
>> The majority of game engines scene graphs are retained mode 3D abstractions.
... but they are not built on an abstract retained mode API. That would be the wrong level of abstraction for a Web API that people can build on properly. I think that's the point here.
Unfortunately, Web APIs tend to be far too high level while missing out on low-level hooks, like the disaster that is Web Audio (and media playback in general).
>> This basically assumes that there's a tree of UI objects in memory, which is the case for all mainstream toolkits as far as I know.
This is also the reason why they are a pain in the butt to use, at least from the perspective of an IMGUI advocate. Those people usually have a game development background, so they're used writing bespoke solutions for everything.
Statelessness is a strength but also a big weakness, I doubt IMGUI will ever catch on its pure form. However, tools like React provide a fairly similar experience and they do produce object trees usable for screen readers. The missing piece here is something like a lightweight DOM for C/C++ projects.
>> The code that current C compilers don't generate, many times is related to taking advantage of UB
Compilers are really smart in optimizing things that aren't relevant to the real world.
For example, this code would reduce to "return 32" in most modern compilers:
Does that make impact in real-world code? Almost certainly not, it's a contrived case. Most UB cases fall into the same category.
>> They also generate extra code for handling stuff like floating point emulation though.
Not necessarily.