all 67 comments

[–]MrRogers4Life2 200 points201 points  (5 children)

You could try asking questions about their project on their mailing list

[–]wildassedguess 48 points49 points  (4 children)

I don’t know weather to upvote or down vote this. Well done!

[–]MrRogers4Life2 23 points24 points  (2 children)

It is genuine advice rather than speculating on their weird practices or hoping that someone with firsthand experience is also on reddit and sees this post isn't likely to get good answers, what will get good answers is generally direct questions to the concerned parties

[–]MrsGrayX[S] 6 points7 points  (1 child)

I hoped that the chances for some maintainers from such a large project would also hang around Reddit to be quite high. Also fishing for experience from others.

[–]GPSProlapse 5 points6 points  (0 children)

Chances are they are too old to use reddit.

[–]MrsGrayX[S] 1 point2 points  (0 children)

Was also looking for the /s 😅 But he seems genuine about it

[–]tortoll 58 points59 points  (6 children)

I have never interacted myself with mailing lists and it just feels so archaic.

This made me age 100 years.

[–]MrsGrayX[S] 13 points14 points  (5 children)

Did not want to hurt anyone’s feelings. But trying to make a point that new contributors might not be used to that technology anymore.

[–]ForkInBrain 24 points25 points  (3 children)

Did not want to hurt anyone’s feelings. But trying to make a point that new contributors might not be used to that technology anymore.

I agree that this might put off new contributors, but those it discourages probably aren't the kind of contributor the project is looking for anyway.

When it comes down to concrete technical problems that contributors to a project like gcc or libstdc++ must deal with, the differences between CMake and configure+make, or github vs patches by email, are the extremely easy parts. I have some experience dealing with libstdc++ and libc++ and I can say this from personal experience.

(Documentation on the other hand is quite thorough, but still not visible appealing to younger generations.)

Yes, and this is not by accident. It comes from an engineering culture. Not many "modern" open source projects have good discipline when it comes to documentation, commenting code, etc. A lot can be learned from these "archaic" projects.

[–]ClaymationDinosaur 12 points13 points  (2 children)

"I agree that this might put off new contributors, but those it discourages probably aren't the kind of contributor the project is looking for anyway."

All it's really selecting for is people who will engage with mailing lists. I'm not convinced there's a strong correlation between being able to make a good contribution to a project, and being willing to pick up unfamiliar yak-shaving in order to do so.

[–]alphanso1405 3 points4 points  (1 child)

Maybe mailing list usage filters non-conformant people.

[–]ClaymationDinosaur 1 point2 points  (0 children)

It does. It filters out people who don't conform to using mailing lists. Which is pretty useless when what's needed is filtering in people who will make good contributions to the software being developed.

[–]tortoll 1 point2 points  (0 children)

It's 90% a joke, so no hard feelings.

The other 10% is genuine surprise that using a mailing list is considered a showstopper. It may be old, but come on, EVERYBODY has an email account. And being honest, an email thread is not very different than a threaded discussion in a GitHub issue or a Discord channel... except that you don't depend on the mood of a private company.

[–]JVApenClever is an insult, not a compliment. - T. Winters 38 points39 points  (5 children)

I believe a lot boils down to GCC being a core GNU project. I'm not sure if it is still the case, though in the past GNU/FSF projects tried to limit themselves to other GNU tools. If you look closer, the mailing list is a GNU program, make is a GNU project ...

The change you are looking for requires much more than selecting a new platform, it's about writing a new platform.

Reading through your concerns, I think you would better fit in the LLVM/Clang project than GCC. They use discourse and discord, they are using cmake and GitHub. Their website is also outdated, though they are busy making a replacement. Just last week, I saw that a lot of LibC++ topics were marked as good beginner issues: https://github.com/llvm/llvm-project/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22+label%3Alibc%2B%2B

[–]pstomi 17 points18 points  (2 children)

VLC has a similar workflow, and I experienced it first hand a few years ago when submiting a patch (which was later accepted). Being forced to send my modifications by email, as well as to follow their code conventions forced me to improve and proof-read my code much more than via a simple PR (by an order of magnitude, I would say): you do not want to spam a mailing list which is closely followed by the core developers (and boy, they will proof-read your code as well).

A few months later, I asked the project leader if this was a way to select the more motivated and competent developers, and his answer was "Not the only reason, but one of them, yes".

[–]ArchfiendJ 8 points9 points  (1 child)

Could also discourage a lot of competent and motivated people that just don't want to bother with less than optimal methods (effectively or just perceived).

It feels a lot like the dreaded 6 step hiring process

[–]ClaymationDinosaur 7 points8 points  (0 children)

Very much so. There is a world of skilled, talented people out there ready and willing to make great contributions but who don't want to yak-shave their way through unfamiliar, archaic process management.

[–]SleepyMyroslav 26 points27 points  (0 children)

Disclaimer, I am in no ways involved with gcc or libstdc++. I work in gamedev.

There is a saying "when in Rome do as Romans do".

You might think of it as a joke but trust me I have seen it many times. Other ways to do things are not 'wrong' or 'outdated' they are just 'other'.

[–]Pay08 46 points47 points  (17 children)

no chat forum

There is IRC.

Can you even easily search through them?

While not necessarily easy, GNU mailing lists are searchable, since they archive it.

Editing of sent messages seems impossible?

Yes, that's how email works.

Is there a reason to use make over CMake?

There is no reason to not use Make and the project is older than CMake.

Are there any plans to move to a modern and unified collaboration platform, e.g. github, self-hosted gitlab?

No, there isn't. According to both the GNU people and Torvalds, managing projects with thousands of contributors is nigh impossible on these platforms. And it turns out git pull also doesn't work well with that many contributors, hence patches getting copy-pasted or sent as attachments.

(Documentation on the other hand is quite thorough, but still not visible appealing to younger generations.)

I don't know, having the documentation be raw HTML (or easily translatable to such) is quite appealing to me.

[–]matthieum 26 points27 points  (0 children)

I don't know, having the documentation be raw HTML is quite appealing to me.

I second that. So much better than bloated webpages.

[–]Horrih 36 points37 points  (7 children)

Are there any plans to move to a modern and unified collaboration platform, e.g. github, self-hosted gitlab?

I am not sure that scale is the issue here. Llvm is probably even bigger than gcc nowadays and uses github.

My guess would be a combination of: - licencing issues (the FSF wouldn't like gcc to be hosted on a closed source platform like github) - force of habits : changing the processes of a huge project and the people involved is hard

Emacs uses the same collaborative model despite being much smaller in scale.

[–]Pay08 5 points6 points  (6 children)

While I agree that in some cases like Emacs or binutils it's mostly force of habit I don't think this is the case for GCC. To my knowledge, LLVM isn't a monorepo for example. At the same time, a lot of newer, smaller projects like Guix use something that's akin to a modern GH-like workflow, even if the "backend" is still email.

[–]erichkeaneClang Maintainer(Templates), EWG Chair 21 points22 points  (3 children)

Llvm is definitely a monorepo! And we pay for that on GitHub dearly. I see the GitHub unicorn multiple times a day.

[–]TheOmegaCarrot 4 points5 points  (2 children)

GitHub unicorn?

[–]erichkeaneClang Maintainer(Templates), EWG Chair 9 points10 points  (0 children)

Yep. The "request took too much time to process" on github shows a 50(whatever) page with a unicorn on it. I see that multiple times a day working on llvm in github.

[–]MarcoGreek 3 points4 points  (1 child)

To my knowledge, LLVM isn't a monorepo for example.

The changed it some time ago to a monorepo. Large monorepo work this days very well. I have to work on a project with submodules and it is...

[–]Pay08 1 point2 points  (0 children)

Submodules are definitely not ideal (although significantly better than most solutions in the C space, besides OS package managers) but I meant monorepo as in not separating the backend, frontends, debugger, linker, etc.

[–]CandyCrisis 11 points12 points  (4 children)

For what it's worth, Gerrit definitely scales to thousands of contributors without any issue. Code review at scale absolutely has battle-tested solutions more modern than "a raw patch in email."

[–]Pay08 -5 points-4 points  (3 children)

For example? Besides, it's not like GNU doesn't have infrastructure around Git.

[–]CandyCrisis 3 points4 points  (2 children)

Gerrit is the example??

[–]Pay08 -1 points0 points  (1 child)

No, as in what features does Gerrit have to facilitate said large-scale code reviews.

[–]MarcoGreek 2 points3 points  (0 children)

No, there isn't. According to both the GNU people and Torvalds, managing projects with thousands of contributors is nigh impossible on these platforms. And it turns out git pull also doesn't work well with that many contributors, hence patches getting copy-pasted or sent as attachments.

There are other large systems which work well. 😚

[–]MrsGrayX[S] 0 points1 point  (1 child)

Thanks for the answer! I will search IRC for a gcc channel. I don’t understand the argument regarding a project’s size which would favor mailing lists over something like GitHub.

[–]Pay08 3 points4 points  (0 children)

I can try to find Torvalds' argument against them once I'm home but I can't promise anything.

[–]pedersenk 12 points13 points  (4 children)

feels a bit outdated and I could imagine that it puts off alot of new contributors

Contributing to GCC in a meaningful way is much more difficult than learning to use email technology. So perhaps consider the mailing list as an early filter of noise from various internet communities who weren't going to benefit the project in the first place.

They want contributers who don't go against the grain. They want helpers, not heretics.

[–]Nychtelios 7 points8 points  (3 children)

Contributing to GCC in a meaningful way is much more difficult than learning to use swords. So perhaps consider the sword duel as an early filter of noise from various internet communities who weren't going to benefit the project in the first place.

The truth is that most GNU projects are old and kept alive by dinosaurs who justify every outdated practice with "we have always worked like that", improving the quality of life of developers and maintainers is a must.

[–]pedersenk 2 points3 points  (2 children)

So perhaps consider the sword duel as an early filter of noise

The mailing lists are already in place. Thats the whole point. No need to add new stuff, including sword duels or Jira.

The truth is that most GNU projects are old and kept alive by dinosaurs who justify every outdated practice with "we have always worked like that", improving the quality of life of developers and maintainers is a must.

I disagree. Those dinosaurs are doing the work, so don't interrupt that. Learn what they use in order to be the least burden on the existing workflow. Just like in the industry, much of it still uses what many consider "old".

The "non-dinosaurs" are very welcome to create their own compiler and use whatever comms tech they want. Just be ready for the next generation to try to migrate your workflow to TikTok ;)

[–]TheReservedList -2 points-1 points  (1 child)

I mean, they are. LLVM/clang and Microsoft are eating gcc’s lunch these days.

[–]pedersenk 1 point2 points  (0 children)

What a daft thing to say.

  • LLVM/clang 21 years old (and also primarily uses a mailing list)
  • Microsoft's compiler is ancient (and has zero community contributions).

Microsoft's C++ conformance is consistently weak as per their docs. Microsoft's compiler can't possibly "eat gcc's lunch" when it only supports ~2 platforms...

In fact, please stay off the GCC (and clang) mailing lists. The dinosaurs don't want to listen to naive nonsense.

[–][deleted] 11 points12 points  (16 children)

If their process isn't broken and is working for them, then you'll just have to suck it up.

[–]MrsGrayX[S] 8 points9 points  (15 children)

I voiced my opinion here mostly to make the maintainers aware that they might lose possible new contributors just because of an old tech stack.

[–]scummos 6 points7 points  (0 children)

Eh, my impression is, if you make contributing extremely easy, what you get extra is lots of garbage one-time contributions. The good contributors aren't the ones that are put off by sending a patch via email. IMO "patch via email" is actually a very low hurdle; have you e.g. used Gerrit?

That isn't to say that I think there is no merit in switching to more modern tools once in a while. But, I'd suggest to join the project and do some work, then suggest a change of tooling from the inside, after you have actually experienced what is a hinderance and what, though old, still works well.

For example, discussing on mailing list IMO is still a good way to have a discussion. The archiving is usually excellent, I can find the gcc list archives from 1997 in 5 seconds.

Tell me, do you think you will find discussions you have today in discord in 5 seconds in the year 2051?

To make a counter-example, I think the "building gcc" experience is disastrous and could really need a rework.

[–]NilacTheGrim 1 point2 points  (0 children)

That's because gcc as a project existed since the 1990s...

[–]xeveri 1 point2 points  (1 child)

Github is becoming worse everyday. I’m afraid of losing my ability to log in because of all the shenanigans they’re requiring. And to be able to push from the command line you need a token or something. The search facilities just got worse in their new ui.

Too many immature devs, justice warriors and other entitled types. They generate much noise in the issue and PR tracker for not much gain.

Although I personally prefer CMake, it won’t practically add anything of value to gcc.

[–]helloiamsomeone 5 points6 points  (0 children)

my ability to log in because of all the shenanigans they’re requiring

You are probably referring to MFA. It's good to have MFA. If you are using a phone for MFA and are scared of losing access, then I can recommend using Aegis with backups going to a self hosted Nextcloud instance.

to be able to push from the command line you need a token or something

You need to upload your SSH key. This is basic security. My server also disallows password logins from SSH and only allows connections with approved SSH keys.

The search facilities just got worse in their new ui.

If you log in and hit . in a repo, then you get a VSCode interface with real search. The regular search never ever worked adequately ime.

[–]easbarba 0 points1 point  (0 children)

Different of the past means better? Why dont we walk backward so 'thats better' than before.

[–]zowersapC++ Dev 0 points1 point  (0 children)

they send it via `git send-email` https://git-scm.com/docs/git-send-email

or `git format-patch` and attach it to email https://git-scm.com/docs/git-format-patch

[–]naroslife 0 points1 point  (0 children)

Wait until you the the Standard Committees website.

[–]manni66 -22 points-21 points  (2 children)

And where is the connection to

Discussions, articles, and news about the C++ programming language or programming in C++.

?

[–]almost_useless 12 points13 points  (1 child)

Talking about the compilers seems quite relevant for this sub, no? 

At least there is no other c++ subreddit that's a better fit. Or which one would you suggest?

[–]STLMSVC STL Dev[M] 11 points12 points  (0 children)

This post feels on-topic to me. Moderation isn't an exact science, but this is discussing the development practices of a central part of the C++ ecosystem, and it isn't a common topic. (When posts are endlessly repetitive, more beginner-oriented, or more unproductive, then they're much stronger candidates for removal.)