You know what I'd love? Framework or language authors publishing a curated set of FAQs and "best practices". It can't be that hard to get a list of the most common tasks people google for, and provide links to the commonly used libraries as well as code examples.
AWS for example puts out very high quality documentation - it's rare to find an AWS help page that has outdated commands these days, although I would love to see them publish some curated Terraform examples as well given how better IaC is compared to manual actions.
There's some amount that can be answered by providing a 'beaten path' for people to walk, but a) discoverability is a problem - people often don't know the right keyword to search for to find what they need, and b) people are often subtly off the beaten path, and need some adaptive guidance to their particular situation.
AI answers are great for both of these problems.
I imagine they'd rather you use CloudFormation?
Comparing issues is particularly irrelevant in this case since (as you say) the boto3 API is pretty much stable (since it is "just" a language-specific client to an established API), whereas there are regularly requests for higher-level Constructs in CDK.
You are once again assuming that the existence of feature requests implies that the existing tool is not fit for purpose. This simply isn't the case. The boto3 SDK "only" attempts to provide a client for the AWS API - feature requests are essentially meaningless until/unless a new AWS Service is launched. The nature of CDK (or Terraform), however, is that "higher-level" constructs can be created - Constructs defining patterns, rather than just one-to-one mappings with AWS Resources. These can be imagined and requested essentially infinitely; but those requests doesn't mean that the existing L1/2 Constructs are incomplete or flawed.
Candidly, to describe CDK/Terraform as "essentially API wrappers" betrays the fact that you didn't really try to use them seriously. Yes, they call AWS APIs under the hood; but if you're only using them as a drop-in replacement for boto3 calls, you are missing out on a lot of the power they provide.
> A lot of operations also don't fit nicely into the declarative model
Cool, in which case, boto3 is indeed the correct choice. But that's because it's the right tool for the job, not because CDK or Terraform are inherently flawed.
> I would love to see CDK become less buggy though!
I've been using it professionally for over 5 years and have encountered a single bug, which arose due to version mismatches in different libraries (and so was easily resolved). I certainly won't claim that _no_ bugs exist - though, skimming the Issues page, the considerable majority appear to be Feature Requests. Either way, I feel extremely confident claiming that a bug in CDK code is significantly less likely than making a mistake when attempting to reimplement-in-boto3 all the wiring and dependencies of a complex stack.
> Candidly, to describe CDK/Terraform as "essentially API wrappers" betrays the fact that you didn't really try to use them seriously. Yes, they call AWS APIs under the hood; but if you're only using them as a drop-in replacement for boto3 calls, you are missing out on a lot of the power they provide.
Well I actually reviewed the code as part of my evaluation, and even made the initial version with terraform that I contributed a patch for, so it's an accurate description. CDK is a wrapper for cloudformation...
> Either way, I feel extremely confident claiming that a bug in CDK code is significantly less likely than making a mistake when attempting to reimplement-in-boto3 all the wiring and dependencies of a complex stack.
If you were to actually compare CDK and boto3 examples, you would find they are very close in practice with the major difference being that you _may_ need to diff existing resources before performing updates with boto3. Not hard to do in practice and gives you the opportunity to choose exactly how to handle different scenarios, which I see as a plus. You still need to learn AWS concepts and have a strategy for error handling.
I'm glad CDK it works for your use case! I'm provisioning entire build and runtime environments as a service, and chose the API wrapper that is clearly given first priority at AWS.
These are certainly fair points.
Thank you for your civility - I re-read my previous comment and am not proud of the tone that I struck.
Also, not Amazon's fault, but I consistently get annoyed that when you web search the documentation for awscli, the top links always take you to the awscli v1, not v2.
To be fair again, I don't even know that it's a solvable problem. AWS offers too many services, too many ways to access them, and makes changes too frequently. They can't just unpublish anything because someone out there is still using some combination of each version of server and client side services. But it makes it very hard to find exactly what I'm looking for. Probably made all the worse by some of the subtle differences in GovCloud, but having very little GovCloud-specific documentation.
I agree with this decision. It's not as if there's any shortage of other places to ask for opinions and debate.
StackOverflow tries to be the site where "the answer to X is Y". Again, with varying success and not always consistently, but it'd be even harder to accomplish if it accepted "what are the best things about X?".
edit: example, from the article:
> If you try to post a comment.. wait, you can’t! Because you don’t have enough karma.
This is by design. Comments in SO are meant for correcting minor details or asking for clarification. They are not a form of "engagement" or debate; extended discussions are a symptom of impending flamewars and usually get promptly moved to the chat section of SO, where they belong. If you lack karma to comment, focus on asking & answering questions instead -- the primary active use of SO (other than just looking for answers, that is).
StackOverflow is widely known as the place to get insulted for asking how to do X with Y. It doesn't matter what X or Y is, the answer is always "you shouldn't be doing it that way, why would you even ask that?"
Did I get into pointless back and forths with aggressive users (and of course, sometimes I was the one in the wrong)? Sure! But so have I here on HN. I'd say of the last 5 years or so, the worst, most aggressive, and draining flamewars I've been involved in were here, in HN. Much worse than StackOverflow.
Would you say HN is useless or failing because of this? I wouldn't!
I think that's true, but lateral to the point being made above. Stack Overflow banning opinion based questions was done for good reason and not part of the reason for its loss in traffic.
Yes, because StackOverflow—like Wikipedia—is not about interpersonal communication. Neither is intended to be a forum. They're intended to be repositories of reference information. Nobody wants their encyclopedia or dictionary to engage in idle chit chat with them.
The question is not "should wikipedia/stackoverflow be a cold reference?", but rather, "do the editors of wikipedia/stackoverflow have to be such jerks about accomplishing that goal?"
Any web site that relies on humans for its content must accept humanity, and commit to serve the needs of the humane sides of its users. Otherwise, you'll end up with all kinds of toxicity, abuse, and finally abandonment that is observed with SO.
Stop and imagine if the search results you get for programming were as polluted with "personal touches" as the results you get when searching for recipes.
Your content contains opinions. Please rephrase your comment in a neutral tone directly addressing the arguments instead of the person without polluting it with your opinions. Your personal assessments on a person or a topic have zero value and considered a BS (baseless statement™). We only expect you to respond to the arguments in a logical, netural, unopinionated language to achieve purest form of information in JSON format so it can easily be digested by AI training machinae. This is your final warning. Otherwise, your account will be replaced with a more logical, analytical, objective user in the waitlist according to the terms of the license you agreed during the registration.
MOD27-123 XBOTMODX v2.7.1283
> This site is all about getting answers. It's not a discussion forum. There's no chit-chat.
That's been in the tour since the earliest captures. https://web.archive.org/web/20140113033915/https://stackover...
Stack Overflow was designed with the goal of removing personal biases from the writing and working from the content - not the person who edited it.
And with Wikipedia, for what it's worth. The amount of behind-the-scenes bullshit there is amazing - and on top of that come all sorts of "external" bad agents, anything from hired ghostwriters to whitewash a company's or a person's Wikipedia article to enemy nations' troll crews.
I think I more or less agree, but once again, this is lateral to the point above about causes for loss in traffic.
As for the substance of what you are saying, I think I partly agree and disagree. I think it is very true that the SO culture has broadly been felt to be pretty poisonous and bad in non-trivial proportion of interactions there experienced by many. My personal anecdote is about tetration, a kind of mathematical exercise that you could consider to be next in the progression from addition, to multiplation to exponentiation. Tetration is "next" after those.
In response to a question about tetration, someone responded with the most spellbindingly obtuse answer, not validating the intellectual curiosity of the asker, not answering any questions about the nature of a "tetration" operation, not identifying any of its peculiar, curiosity inspiring features, not discussing any circumstances where it has been researched, used, discussed previously, not surveying where it lies in the educational landscape relative to other fields of math. Instead, the answer was to opine about how one does not "need" tetration, which, again, I find so offensively against the spirit of asking questions that I genuinely become upset when thinking about it.
I make that point just to emphasize that I do agree, to some extent, as to the pervasive negative atmosphere on SO. Everyone has their anecdote, and there's mine. However, I think I partly disagree, because your criticism appears to be about the normal goings on, of SO even as it would function in its ideal state. I am not so sure I believe that people should need that kind of vague, generalized recognition of humaneness, as something understood to be at cross purposes with building a reference guide on subjects. It is fair, in service of that mission, to expect and request activity that serves that purpose, and not concede everything, and allow an inundation of low effort memes, lists, jokes, and off topic responses.
Those are the default state of internet comments, and one degree removed from those are the demands to amend standards to welcome such behavior, from people who would engage in such behavior if they could, who in fact probably were trying to engage in such behavior, but, upon realizing it was not allowed, switched to advocating for it. Every such internet-based project centered on accumulating information will experience pressure to lower standards, accept memes, anecdotes, trolling, which are either just produced, or advocated for, with both stemming from the same impulse, and rejecting those demands in favor of a real mission or purpose you can articulate is a legitimate response to those demands.
It does appear to be incredibly unfriendly to a lot of people, but honestly when I look at some of the questions that get downvoted, it seems that a lot of the questions that do get downvoted are "help me, I've done no research!"
That said, it's pretty hard to get a good answer on the site these days.
And, as a volunteer, most of the questions on the site, I don't have the inclination to answer. Most of the rest I don't have the requisite skills to answer. Which ends up meaning that I don't spend much time answering questions anymore either.
There should be other was to get karma.
Maybe through writing a post about how something existing helped you.
About the only use I see for comments is asking for clarifications or pointing out an obvious mistake in relatively recent answers.
Clearly I'm becoming a dinosaur. Back in the days there were newsgroups and IRC. What do the non-dinos use these days?
Like, not long ago I was looking for a library to X in language Y. Most of my questions are like that, so SO is almost never a fit for me. And I'd love to get some input from people who have tried the alternatives.
So yeah, where's the plethora of places to ask for such things?
These days I'd generally start with "awesome" lists on GitHub, use number of stars as a coarse filter to exclude obscure stuff, then dig into the documentation of each of the alternatives.
It works ok, but I really would like to have a better way of finding opinions about libraries or whatever.
For discovering the options it's probably ok, but the value I got from newsgroups and IRC were the experiences behind the opinions, potentially saving me from doing in-depth evaluations.
I never ask a question on Stackoverflow like I did before, anything useful I'd ask can't be asked.
The article points to Google search algorithm changes for the first big drop, and ChatGPT release for the second one.
The article points at two causes that coincide in timing with the change. But even if it's correct, it doesn't mean that those are the two only causes or even the most important ones.
It is so easy to post a "{background}, what do you think?" which is more of a discussion than a Q&A format... or "I'm looking for XYZ" and getting a page of recommendations... and then people keep adding them without checking for duplicates.
The administrative / curation time requirements of such content then grows faster than the number of people willing to do it.
There are other, smaller, SE sites where such questions are allowed because with the slower amount of daily activity they are able to handle every question every day and a post suddenly getting an abnormal amount of time isn't that much more time.
https://tex.stackexchange.com/questions/tagged/big-list?tab=... isn't a problem when they get 38 questions per day... while Stack Overflow gets 100x more, but doesn't have 100x more people doing curation.
The result of that is that the question types that are most time consuming for doing curation and moderation get cast out and it becomes the easier, more objective ones that remain.
As to answers... gamification hurt it there. While its part of the onboarding / understanding the site, people went after the numbers and so any answer, no mater how poor was ok. The culture became one of "don't remove an answer if it is any attempt to answer a question (not the question)" and getting 10 points for an upvote and only losing 2 points, unless you've written something awful, as long as you get one up vote its typically a positive point gain.
The example question that is in the article is from 10 years ago.
The current attribution of the comment is:
a -> a.id. Why are you using public fields in the first place? - JB Nizet Dec 14 '14 at 9:27
@JBNizet, I like public final fields in classes which are data structures. They don't implement interfaces or have deep hierarchies. - Daneel S. Yaitskov Dec 14 '14 at 9:31
You're making your own life (and the life of your coworkers) difficult (as shown by your question). This is anti-OO (encapsulation), doesn't respect standard practices, makes your code inconsistent, and unusable by all the standard frameworks and libraries which expect standard Java Beans conventions to be respected. I'd really not do that if I were you. If generating getters is what bothers you, then use a decent IDE, or use Lombok to generate them for you. - JB Nizet Dec 14 '14 at 9:42
There is no "lol" in that comment.The question is https://stackoverflow.com/questions/27467946/lambda-referenc...
The screen shot is old ( https://stackoverflow.com/posts/27467946/timeline - it was at +29 by Dec 14th, 2014).
In the article this is described as:
> For a community that is so gate-kept through imaginary Internet points, there is an incredible amount of disrespect on the forums not through just voting, but also through people commenting, such as people passive-aggressively calling you dumb.
I don't see this as a passive aggressive calling the poster dumb, but rather an attempt at understanding the shape of the problem.
The "7% of comments are unwelcoming" - if there's a problem, flag them. If a pattern of unwelcoming comments from a person, they can get suspended. Not taking action on unwelcomeing comments perpetuates them.
I would call out that calling someone a condescending asshole for asking about why public fields are being used is more unwelcoming than asking why public fields are being used.
>I don't see this as a passive aggressive calling the poster dumb, but rather an attempt at understanding the shape of the problem.
If you are asking a question on SO, you probably lack the knowledge to understand why a person wouldn't want to use $whatever. So adding a simple contextual clarification ("Public fields are generally frowned upon, as they violate the OO encapsulation principle. So, why are your using public fields here?").
Because there is so much nuance lost in text, some people have (and I think rightly) come to understand that when statements or questions are directed at an individual, the more concise you are, the less respectful the statement or question is. Something like "I don't care enough about you to clarify my intent at all"
The followup, where they say "use a decent IDE" presupposes that the person asking the question isn't. Indeed, this sentence here
>You're making your own life (and the life of your coworkers) difficult (as shown by your question).
reveals that we really shouldn't give this person the benefit of the doubt. If I was an e.g. wikipedia editor removing too much personal flair, the only sentence I'd keep is
>This is anti-OO (encapsulation), doesn't respect standard practices, makes your code inconsistent, and unusable by all the standard frameworks and libraries which expect standard Java Beans conventions to be respected.
This was a bummer.
You got a bunch of smart people with proven expertise in topics, and yet, I cannot ask about their opinion. This is stupid.
Math SE is a much nicer community and I have enjoyed contributing there and also got a ton of help there.
It is able to handle the wider scope more easily. The fewer questions per day and the more people there to help guide a not-quite-right question to become more useful the more that variation in scope can be handled.
Stack Overflow has the difficulty that as they scaled up in activity, the number of people willing to spend the time to curate and the corresponding tooling didn't scale with it. This resulted in a reduction of time that can be spent on a question to help it be a good question and so people do the least friction fastest action as they can.
If, for every person in https://math.stackexchange.com/review/close/stats you got 10 people to show up in https://stackoverflow.com/review/close/stats it might be feasible to have a more similar level of topic deviation. Note that Math, a small fraction of the size of Stack Overflow has done as many close vote reviews today as Stack Overflow.
They could’ve created different categories of questions where some are fact-based and some are opinion-based. Then, focused moderation on the precise questions that need higher quality. Their search engines can also put them ahead of opinion-based questions.
In that way, they keep the questions they prefer at a high, quality level while others are hit and miss. The latter are still there to benefit people. Users will then go where they prefer to go. StackOverflow would have both types of traffic.
Once they realized that it was going poorly, Jeff and Joel created "Not Programming Related" and had all of those questions asked there instead... and it went poorly.
https://softwareengineering.meta.stackexchange.com/questions...
The thing is that the site is poorly designed to handle opinion based questions and extra work is required by people who do moderation and curation to avoid problems ( https://stackoverflow.blog/2012/01/31/the-trouble-with-popul... ).
In order to support the opinion based questions, a more active curator group is needed than Stack Overflow users seem to be able to support... and the Q&A format that Stack Overflow is designed around is poorly designed to handle these questions.
While I was active there I saw half a dozen attempts to create that site for "primary opinion" that all failed - No one wanted to spend the time to manage it. https://news.ycombinator.com/item?id=6062876 is one such example.
Yes, the other type of questions are useful... it's just that Stack Overflow isn't necessarily the best place to ask those questions. It was designed with a very specific type of format in mind and in doing so makes it difficult to handle other types of questions.
The way to have those other questions be admitted is to reduce the individual burden on the people who are maintaining the site or make it easier for people to moderate the site so that less time is needed in order to help people use the site well (this requires improvements of tooling from corporate).
But Stack Overflow... it doesn't need to be able to handle every type of question. It wasn't designed to be able to handle every type of question.
If you believe that the discussions are useful... create the site. Honestly, when you get done with it, it will look a lot like Reddit or Discourse. They are better able to handle questions of that nature. The Q&A format for SO and the comments were designed to make discussions difficult and impractical - which are the exact things those discussion style questions need.
---
(from GP) > You got a bunch of smart people with proven expertise in topics, and yet, I cannot ask about their opinion. This is stupid.
You should go to the place where those people with proven expertise answer those questions instead.
Eric Lippert answers questions on Reddit from time to time - https://www.reddit.com/r/programmerchat/comments/37qwmm/i_am... - and he's there because wants to answer those questions then. But he's on SO because he doesn't always want to answer reddit type questions.
"If you believe that the discussions are useful... create the site."
That's a poor counter right there. It ignores both the rate of success/failures of new sites, network effects of old sites, and switching costs. Almost all projects to do site X with improvement Y fail for these reasons even when people on site X think Y is a good idea. A large number of people almost never move to the new platform. Knowing that, wiser people try to go where the people are already at and make improvements there.
For the network effect, try Reddit and consider why /r/AskProgramming doesn't have the mix of people that you're after. Or consider using AskHN here... but note also that this site (which has similarly smart people) isn't the right spot for such questions on a regular basis... why do we want to make Stack Overflow into something that both the software and the established community resist? ... and consider that it was designed that way to make it difficult and awkward to support those types of questions.
The collection of smart people answering questions on StackOverflow are doing so because it is StackOverflow and they can answer a question and then continue on. Eric Lippert and John Skeet don't want to be getting in discussions or they'd be more active in other places. If you ask "what is the best X" on Stack Overflow you'd still not be getting their answers.
As an aside to the "what is the best" - for a while I was recommending https://slant.co/ as a rather well done site (with even less comments) designed for that style of question. https://web.archive.org/web/20221104202743/https://www.slant...
I keep saying that Stack Overflow was designed a certain way. It was. Jeff was strongly influenced by Clay Shirky who wrote A Group is its Own Worst Enemy ( https://news.ycombinator.com/item?id=27706413 ). Clay was on the original board of directors for Stack Overflow. The "poorly designed" comments are in response to:
> 4.) And, finally, you have to find a way to spare the group from scale. Scale alone kills conversations, because conversations require dense two-way conversations. In conversational contexts, Metcalfe's law is a drag. The fact that the amount of two-way connections you have to support goes up with the square of the users means that the density of conversation falls off very fast as the system scales even a little bit. You have to have some way to let users hang onto the less is more pattern, in order to keep associated with one another.
---
https://stackoverflow.fogbugz.com/default.asp?W25450
Atwood: Maybe. But the cool thing about this is this is not just me, because that would be boring. It is actually me and Clay Shirky. You know, Clay Shirky is one of my heroes.
Spolsky: Oh...
Atwood: Yeah I know, it's awesome. So we get to talk about like building communities online and I get to talk about StackOverflow, you know, and all the lessons we've learned and, get to present with Clay. Obviously he's an expert so. That's one of the people that I have emailed actually, because I thought that would be good, because he is from New-York city as well. So we could A) show him the site and B) talk about the thing we are going to do together in March, because he needs to see the site to have some context. I mean I did meet him and talk to him about this earlier a few months ago, I think I mentioned it on the podcasts. But that was before we had sort of even going to beta, so there's really not a lot to show him. But I would love to show him in person. So we'll see if I'll hear back from him, I do not know.
---Just as Star Wars is a manifestation of Campbell's Hero's Journey (lots of Lucas Campbell links), Stack Overflow is an implementation of "A Group...". There are things that worked well, there are things that worked poorly.
The sites that compete with Stack Overflow for the other questions already exist. That they don't attract the experts or that they don't allow such questions is a statement about what would happen on Stack Overflow if you were try to make it so those questions were allowed.
Remember that https://news.ycombinator.com/ask exists and has those less well formed discussions that clearly doesn't match Stack Overflow's Q&A format.
That's the best way I've seen it worded. Any rationalizing about policies and manpower is a distraction from the fact that it's a stupid situation. None of that changes the fact that for a while you'd search "recommendations for x" and the first thing you'd get in your Google search results was a closed SO thread from someone asking for that thing.
I am an amateur developer and I am so glad that some people say "use X" instead of a block of code which is "native" and pure.
In Python this was requests and arrow, in Go it was resty (despite the Go community being extremely toxic in SO). These are fantastic for casual coders.
Answers with expensive code instead of a simple lib are useful too, but only when you gain expertise in the language.
Answers are also often more focused on the cosmetic aspects than actually answering a question. Just see the example in the article. The questioner asked about a lambda reference to a public field, and they got told "just don't use public fields lol". That's not help, that's just being a condescending asshole and not actually answering the question.
Combined with the toxicity and elitism rampant, I am not surprised.