tw061023
The very point of CS as an academic discipline is _generalization_.
If your biggest innovation of a decade is a carbon copy of a feature introduced in NT 3.5 in 1994 AND THEN it turns out most serious people disable it because you cannot even copy a feature without introducing new vulnerabilities - that's a sign of quality.
Linux is, just like most of successful open source projects, a resource pool. Without corporate code donations and support it would be just another hobby OS, and his personal contribution to success of Linux is negligible.
Linus just got lucky with timing and license, and that is pretty much the extent of his personal contribution.
Which begs the question, why exactly the community has tolerated him for so long?
IDL/DDL is the source of truth, moving the type definitions there is the whole point. There is only one definition for each type, which is in the *DL, corresponding C++ headers are generated and everything is statically known.
Which projects? Which features? What exactly was the impact on performance and reliability, how and why? How did critical projects adopt the stream of features, considering nobody sane touches nothing in a new C++ standard for a decade, waiting for DRs to settle and for codegen stopping to suck?
Reflection has been solved for years with custom codegen, including dimensions which std::meta cannot even touch such as stable cross-platform, cross-compiler ABI.
Which is far better than to rely on a party which, as I said, has precisely nothing to do with what anyone needs. Which will inevitably produce solutions that can only partially (I am being generous here) be used in any particular situation.
As for "possibly buggy" - look, I can whip up a solid *DL parser complete with a C++ code generator in what, a week? And then polish it from that.
The committee will work for several years, settle on a barely working design, then it will take some years to land in major compilers, then it will turn out it is unusable because someone forgot a key API or it was unfeasible on VAX or something like that.
And my build process is not complicated, and never will be. It can always accomodate another step. Mainly because I don't use CMake.
Which, precisely, additions do not fit my points?
No way anything std::meta gets into serious production; too flexible in some ways, too inflexible in others, too much unpredictability, too high impact on compilation times - just like always with newer additions to the C++ standard. It takes one look at coding standards of real-world projects to see how irrelevant this stuff is.
And like always, the problem std::meta is purported to solve has been solved for years.
Yep, I guess you can train an LLM on a bunch of binaries to get it to mimic a SotA compiler with some accuracy, which may or may not improve over time, but come on. Times where there were free performance increases are gone, and this is not the area where shipping any bullshit real fast will get you any sort of advantage.
* Which are unlikely to happen again in the foreseeable future.
It doesn't matter how many of Rust UI toolkits there are. Consider that there are a lot of Rust game engines, and pretty much zero games written in it, because even C++ gives you better trade-offs in that particular space.
It's especially funny when this happens in Rust, which is marketed as a "safer" alternative.
Would you like a segfault out of nowhere in safe Rust? The issue is still open after two years by the way: https://github.com/rust-lang/rust/issues/107975
153 comments as of time of writing, let's see.
C-F: Java: 21 C++: 31 Python: 23 C#: 2
And yet: Pascal: 1 (!) Delphi: 0 VCL: 0 Winforms: 0 Ruby: 2 (in one comment)
This is not a serious conversation about merits of OOP or lack thereof, just like Casey's presentation is not a serious analysis - just a man venting his personal grudges.
I get that, it's completely justified - Java has a culture of horrible overengineering and C++ is, well, C++, the object model is not even the worst part of that mess. But still, it feels like there is a lack of voices of people for whom the concept works well.
People can and will write horrible atrocities in any language with any methodologies; there is at least one widely used "modern C++" ECS implementation built with STL for example (which itself speaks volumes), and there is a vast universe of completely unreadable FP-style TypeScript code out there written by people far too consumed by what they can do to stop for a second and think if they should.
I don't know why Casey chose this particular hill to die on, and I honestly don't care, but we as a community should at least be curious if there are better ways to do our jobs. Sadly, common sense seems to have given way to dogma these days.
As an example, consider Infinity Blade, the poster child of mobile gaming: released in 2010, 595 MB download, 948 MB installed. Even the first version of WebGL is capable of providing this kind of experience, we just cannot get it to the user via browser.
The bigger issue is that WebGPU is basically dead on arrival for the same reasons WebGL is - it is impossible to get enough data to the client for it to actually matter, Awwwards-style design tricks notwithstanding.
I suppose browser vendors understand this and don't really care for either.
Comparison statements are meaningless if there's nothing to compare to.
Build a bit of confidence (gym being the simplest way) and get out there, because whoever you are, there is someone else out there who looks precisely for you. But you aren't gonna meet them if you sit tight, so get out.
Internalize this: you are attractive and you have worth, right now. You are good enough. And someone is waiting for you out there.
If you want a quick reference on a well-known topic, then sure, use an LLM. Or a search engine. Chances are it will even answer you correctly (but also chances are it won't, and if it is a new topic for yourself - strap in, you're in for a ride).
But if you want to really understand something, then you will have to do your research, and a lot of this research has already been summarized into tangible artifacts optimized for your consumption which LLMs would never be able to replicate.
Even if you can convince one to regurgitate a book verbatim, the narrative thread would be lost unless you weave it yourself with your prompts - but would you, the learner, be able to do re-enact the narrative better or even on the same level than the original author who posessed the knowledge on the topic?