Ask HN: Why is there no real programming community?
To me, the most puzzling thing about programming is that there is no real place to actually discuss programming.
As weird/absurd as that sounds, it seems like three major avenues where most discussion occurs are:
1. Reddit. Subreddits are nice and very effectively organize discussion of different topics. On the other hand, Reddit is virtually anonymous, and it's generally frowned upon to share anything of your own creation, in order to not be flagged as spam/self-promotion.
2. Hacker News. It's more than acceptable to submit your own content, or other people's content you found interesting. The downside is that it's very difficult to get to the frontpage, and most posts not on the frontpage are forgotten. There's also the fact that this site is far more anonymous than Reddit, and that features like downvoting are blocked off for most users.
3. Twitter. I like Twitter because it's very personal, and you can actually put faces to names (unheard of elsewhere). The downside here is that for anyone to hear anything you're saying, you truly have to have tens of thousands of followers. I have 4,000, but most of those people are not programmers, and thus there's less than a smidgeon of opportunity for any sort of programming discussion there.
So, I've always wondered.
Is the reason that there is no real online community, the fact that maybe we just don't need one?
Thoughts? Just wanted to discuss...
31 comments
[ 2.5 ms ] story [ 75.8 ms ] threadI suspect the answer is that if many (enough) others do too, it does already exist.
There's also the fact that programming chat rooms quickly devolve into "please do my homework." At least, in my experience.
I could be wrong, though.
Size varies. I'm idling in Mozilla's #rust and that has 1390 people in it alone. And small communities are still communities, I'd argue as well!
> There's also the fact that programming chat rooms quickly devolve into "please do my homework." At least, in my experience.
There will always be (attempted) freeloaders in any community. How they're handled varies - I've been in several with explicit no-homework policies, where the community will give you grief if you didn't even try to google, strongly steering people towards developing their ability to help themselves rather than relying on handouts. "Teach a man to fish" etc.
Which isn't to say people won't still try, but it can be managed and policed.
Even there, people will generally help out when someone encounters a totally strange/niche/not easily understood or explained edge case, if only to better understand it for themselves, or to spend a minute to save another person hours. But that's a win/win as far as I'm concerned - not much of a community IMO if you're not willing to do that!
Stackoverflow and kin are very focused on specific questions and are elitist. I've participated for years and find that I cannot add my comments because I don't have sufficient points. And DO NOT post a stupid question or someone will suggest you delete it. (I'm of the opinion that there are no stupid questions but I do see the occasional stupid answer.)
The communities I see are a bit more general than programming. A good example is the Raspberry Pi community. Many of their discussions involve programming but more generally are "how do I do XXX." That community is also fostered by the folks who bring us the RPi.
Some of the more recent languages like Rust and Go seem to be fostering too.
A related question is: why are developer communities balkanized by programming language, application domain, programming paradigm, educational background? In part this is tribalism. Often corporations take advantage of this tendency to gain market advantage, which amplifies the effect.
Finally, why should there be a single, unified, online community? There are many online communities of programmers and that seems to be working pretty well.
I cannot see how we could have a "single community" that is equally relevant to CS researchers and newbie programmers and all the other variations in between.
To take your example of "discussing programming", Lambda the Ultimate comes to mind. But even there how could reconcile the "conversations" of JavaScript hackers and Haskell gurus?
Increasingly in the west local communities are weakened, and these tasks are taken up by government services. That's why online communities thrive: they allow people who are dispersed all over the place to coordinate.
There totally are. Forums, chatrooms, mailing lists - they tend to be more niche than simply "programming", because that's simply such a huge topic... you can find better, if more niche, common ground. You don't have "the drinking" community - you have coffee lovers, the wine testers, microbrewers, etc.
I spent long enough on gamedev.net and it's associated chat channels (first IRC, now Discord too) for my relationships with people online to bleed out into the real world. It taught me a ton about programming. It got me my first industry job offer, from someone who I helped teach. In passing, I've seen various FOSS communities, programming languages, etc. - often focused strictly on shop talk, but not always.
There's a lot of pseudonymity to be sure, and you'll get pushback if the first thing out of your mouth is "hey check out my game/project/community, email me because I'm not sticking around long enough to hear any feedback here" - which happens surprisingly often - but there's plenty people can share relating to their projects, the tech they're using, or having trouble with, or finding new and interesting ways to (ab)use - even from the get go, that can be well received.
It's the difference between finding a topic of shared interest to discuss, vs broadcasting a topic of just your interest to talk at people with. The latter isn't a discussion.
http://dailyprog.org/chat/
They died mostly because Reddit and Facebook made them obsolete.
They won't come back at least until people stop losing their heads over GDPR compliance, although maybe self-hosted forums will come back with a general push towards strong anonymity.
I've created some programming communities, for example: https://hidifferent.com/clojure https://hidifferent.com/rust https://hidifferent.com/ocaml
It supports sub channels and anyone can create public or invite-only communities.
For a more controlled kind of discussions, the current preeminent site for such activity is stackexchange. Sure, it has its flaws - its strictly qna style, is filled with elitist and intolerant mods - but for most questions that are not of the form "how to do X with API Y on platform Z", you will find discussion in comments. Even on stackoverflow which primarily encourages questions of the above form, there are enough discussions. The softwareenginering site is much better for slightly opinionated discussions disguised as questions and answers; so are workplace, unix etc.
Probably the second largest community Stack Overflow. Real people commenting on real issues that crop up general programming problems.
Twitter is mostly bots or journalists talking about speculative technology problems that rarely crop in practical programming careers (no, I don't need 240 character advice on how to shut down skynet).