This weekly roundup thread is intended for all culture war posts. 'Culture war' is vaguely defined, but it basically means controversial issues that fall along set tribal lines. Arguments over culture war issues generate a lot of heat and little light, and few deeply entrenched people ever change their minds. This thread is for voicing opinions and analyzing the state of the discussion while trying to optimize for light over heat.
Optimistically, we think that engaging with people you disagree with is worth your time, and so is being nice! Pessimistically, there are many dynamics that can lead discussions on Culture War topics to become unproductive. There's a human tendency to divide along tribal lines, praising your ingroup and vilifying your outgroup - and if you think you find it easy to criticize your ingroup, then it may be that your outgroup is not who you think it is. Extremists with opposing positions can feed off each other, highlighting each other's worst points to justify their own angry rhetoric, which becomes in turn a new example of bad behavior for the other side to highlight.
We would like to avoid these negative dynamics. Accordingly, we ask that you do not use this thread for waging the Culture War. Examples of waging the Culture War:
-
Shaming.
-
Attempting to 'build consensus' or enforce ideological conformity.
-
Making sweeping generalizations to vilify a group you dislike.
-
Recruiting for a cause.
-
Posting links that could be summarized as 'Boo outgroup!' Basically, if your content is 'Can you believe what Those People did this week?' then you should either refrain from posting, or do some very patient work to contextualize and/or steel-man the relevant viewpoint.
In general, you should argue to understand, not to win. This thread is not territory to be claimed by one group or another; indeed, the aim is to have many different viewpoints represented here. Thus, we also ask that you follow some guidelines:
-
Speak plainly. Avoid sarcasm and mockery. When disagreeing with someone, state your objections explicitly.
-
Be as precise and charitable as you can. Don't paraphrase unflatteringly.
-
Don't imply that someone said something they did not say, even if you think it follows from what they said.
-
Write like everyone is reading and you want them to be included in the discussion.
On an ad hoc basis, the mods will try to compile a list of the best posts/comments from the previous week, posted in Quality Contribution threads and archived at /r/TheThread. You may nominate a comment for this list by clicking on 'report' at the bottom of the post and typing 'Actually a quality contribution' as the report reason.

Jump in the discussion.
No email address required.
Notes -
I think you do have a point that C and C++ projects are less likely to have "bad program" bugs like silent failures, because C and C++ developers must be competent enough and spend enough time to avoid fatal and hard-to-detect crashes. But I think anyone that competent devoting that much time would write comparable quality code in a more forgiving language. Maybe the version of Zed written in C++ wouldn't have its issues, but the version of Zed written in C++ doesn't exist, because a production-grade entire IDE is already ambitious, writing it entirely in C++ would be too overwhelming. Even for Microsoft, hence why VSCode outside its core is TypeScript.
Microsoft also wrote and maintains (and seemingly occasionally mostly rewrites) Visual Studio proper, though, and there are many other production-grade IDEs written in C++. Sublime Text, afaik, is C/C++ and has more than feature parity with Zed; CodeLite and Code::Blocks both are C/C++ and are also not lacking particularly much (though the latter is also kind of buggy and the former became enshittified in what seems to have been an overambitious rewrite). Rust is really not easier or faster to write, even if you suffer from a peculiar disease that makes you introduce memory-related bugs at a much higher rate than anything else.
The point I'm converging on is that C/C++ actually makes the Github community-driven development model easier, precisely because it makes bugs so apparent that you don't get away with tech debt. Perhaps the synthesis of my views and those of Rust acolytes is something like that there are multiple abstraction levels of "badness", and failures at each of them happen to correlate decayingly with failures at the higher levels. At level 0 you have local failures of consistent memory management, of the type the Rust borrow manager catches. At level 1 you have macroscopic failures of logic, including a big number of ones that turn out to involve the flow of data ownership around your program and may result in characteristic double-free or null-pointer errors of the type that crashes under specific circumstances to the surprise of the programmer. At level 2 you have even more macroscopic failures of program design, such as a fundamentally inappropriate modularisation of your program that causes you to repeat yourself, or not exposing a sensitive and fragile process (such as Zed's tool call parsing) that really ought to be exposed for diagnostics. Rust's compiler flags level-0 failures really well, thereby exposing and forcing the programmer to deal with level-1 failures; but it turns out level-1 failures, if not suppressed, are a good way to expose level-2 failures, so Rust actually increases the number of unaddressed level-2 failures. (In concrete terms, being flooded with Github bug reports that contain actual crash stack traces winds up forcing the developers to deal with level 2 if they want to stop the flood.)
Visual Studio is a better IDE on Windows for some projects like .NET, VSCode targets more OSs and languages/frameworks.
Sublime Text doesn't have feature parity with Zed without plugins, which are written in Python. Here's a comparison on Zed's website, which is obviously biased but still true.
To a programmer trained in both I think this is true, but there are still two major benefits: it's more fun, and it guarantees zero undefined behavior if following basic rules (which is important for security, apparently even in an IDE because of supply-chain attacks). Meanwhile, they can write Rust code that is high quality like C++ (e.g. doesn't silently fail) as long as they plan ahead like C++ effectively requires them to. And even though C++ effectively requires planning ahead and Rust doesn't, C++ doesn't really encourage it, so I don't think it's less likely they would in Rust ("requires" = for a while your code compiles and runs OK, but eventually it randomly crashes in ways that are a nightmare to debug, and by then it's too late).
C++ doesn't make memory safety bugs apparent, often undefined behavior bugs (like race conditions) only trigger in rare circumstances.
But your main point, I also don't think C++ makes "bad code" bugs like silent failures more apparent than any other language. Rust does require more level 1 bug-fixing in exchange for eliminating level 0 bugs, but level 2 bugs are addressed completely outside of code, most commonly by planning a feature before writing any code, so the time and effort spent wrangling the borrow checker shouldn't affect them.
Most C++ projects on GitHub are better I think primarily because 1) developers who manage to ship C++ are experienced and skilled enough to avoid those bugs, while less experienced developers give up and/or choose other languages, and 2) projects are usually written in C++ if they're well-speced or exist in other languages, experimental projects are usually written in higher-level languages.
More options
Context Copy link
More options
Context Copy link
More options
Context Copy link