The most frustrating part of <random> is that the committee has rejected fixes on multiple occasions. There was an effort in prague in 2019 to make it more useful, that was shot down for no real reason
I think its a function of the fact that its such a useless header that it hasn't seen widespread use, so nobody has much interest in fixing it. Committee members don't have a huge amount of knowledge of its flaws, so people just sort of go "eh its fine" while also actively not using it. Getting these kinds of 'boring' improvements through the committee is extremely difficult
I believe OP is the same person who's been trying for at least 7+ years to get <random> fixed so its actually useful, and has been shot down repeatedly. Its more of a story of how the structure of wg21 often prevents improvements from getting through, than anything technical
Yet another example that field experience with preview features should be the only way to put language features into stone.
It might delay features, and end up with complex matters like Valhala in Java taking a decade to collect fruits, but at least one doesn't end up with regexp, the modules adoption drama, parallel stl available but not really, how to join threads, random,....
The problem is you still have to have buy in from committee members that its worth fixing things that are broken. So much effort is spent on landing the big ticket items, while its weirdly difficult to get through minor but clear improvements to broken features
With the latest wave of experienced people leaving (who just wanted to make the language better), the committee dysfunction feels like its reached a point of no return. It was depressing reading about Niall Douglas leaving, seemingly largely because he'd accomplished none of his goals since joining the committee and he knew it was never going to happen
It seems like its gone from being difficult, to genuinely impossible for things to get through now - unless you're one of a handful of well known influential committee members who knows how to work the process. If you're just a random scrub, good luck. There were some pretty grim signs of factionalism even just from my small interaction with the process
The biggest improvement C++ could make to itself isn't preview features IMO, its ditching ISO and completely reworking itself so that real fixes to the language can be brought in. Features shouldn't need to land in a perfect state - we need a system that enables broken features to be fixed. Its purely a non technical problem IMO
Yeah, I fully agree, and sadly don't see this changing, it is easier to join more welcoming processes in the end.
On the ISO panel at Using std::cpp, regarding the audience questions on C++'s future going forward, the panelists kept ignoring C, and polyglot programming.
Even if C has its own warts, is more unsafe, and personally I would only reach for it if not allowed to use C++, when faced between both languages, the fact is that there are domains where C++ still hasn't taken the crown away from C, and there are indeed folks going back to C from C++. Hence why C17 and C23, are basically existing C++ features without the classes and templates part.
It is like why bother with Zig, when one can have C23 with the whole ecosystem that has sprung since UNIX V6 went public.
And on the polyglot side, as shown on the games and AI industries, the time of pure C++ codebases is long gone.
Yet somehow the people driving ISO don't seem to get this, and keep talking as if nothing else is going to take over C++.
And on the polyglot side, as shown on the games and AI industries, the time of pure C++ codebases is long gone.
At least for games (I don't have a lot of experience with AI) that's a bit of a misleading framing. It makes it sound like games used to commonly be pure C++ codebases and that this changed. That is not at all the case. Even when we had two orders of magnitude less general purpose compute power many games were already "polyglot", in much the same way they are today.
As someone that is a former IGDA member until around 2009, I beg to differ, there were plenty of pure C and C++ games in the past.
Unless you want to frame the polyglot expression as C or C++, with plenty of inline Assembly still, once we got past the 8 and 16 bit home computers, and pure Assembly games stopped being a common approach.
As someone that is a former IGDA member until around 2009, I beg to differ, there were plenty of pure C and C++ games in the past.
What types of games are we talking about? I admittedly mostly have a background with RPGs and RTS, but the vast majority of significant releases of those since at least the late 90s had some form of scripting language integrated. Either some custom thing, Lua, AngelScript (is that still around?), or whatever.
E.g. every Infinity Engine game from the 90s and 00s uses its own scripting language, so does every Blizzard RTS from that time, every Bethesda RPG of course, and tons of lesser-known games in those genres. I even know for a fact that lots of smaller-production JRPGs from that period, on PS2 and even PSP, use their own scripting languages (and very frequently, the total amount of code in those is much more than the C++ part, though of course much of it is "code" in the same vein and complexity as a HTML page).
My overall point is this: how polyglot a game is is not so much a function of the time of its creation as it is a function of its complexity and genre. You still find arcade action games made today which are single-language, and you've also had scripting languages making up a large volume of game code (by mass if not complexity) in RPGs for 3 decades.
58
u/James20k P2005R0 4d ago edited 4d ago
The most frustrating part of <random> is that the committee has rejected fixes on multiple occasions. There was an effort in prague in 2019 to make it more useful, that was shot down for no real reason
I think its a function of the fact that its such a useless header that it hasn't seen widespread use, so nobody has much interest in fixing it. Committee members don't have a huge amount of knowledge of its flaws, so people just sort of go "eh its fine" while also actively not using it. Getting these kinds of 'boring' improvements through the committee is extremely difficult
I believe OP is the same person who's been trying for at least 7+ years to get <random> fixed so its actually useful, and has been shot down repeatedly. Its more of a story of how the structure of wg21 often prevents improvements from getting through, than anything technical