5

I'm mainly an Stack Overflow user. I'm used to moderate there voting and flagging and I believe that I know their rules quite well.

However, I'm new here and I'm still getting used. One thing that I've noted is, as this site has more subjective terms than SO, it keeps getting a huge amount of opinion-based and forum-like questions (that are properly closed). Before writing my question, I've tried my best to avoid this behaviour, but in the end it was closed with the same reason.

The main question was:

What are the specific characteristics of JavaScript that makes Node.js so special and why other languages can't build similar frameworks to rise in popularity in their own community?

My objective was to attract answers like:

  • JavaScript has an unique way to handle threads that is X and no other language have it.
  • libuv was the key of Node's success. As it would be very hard to port it to Python for reason X or as it would be so slow in Ruby for reason Y, these two languages don't have successful event-driven frameworks.
  • Async is already becoming standard and successful for other languages. E.g: RxJava. The code just don't need to be fully async because those languages are more structured than JavaScript regarding X.

However, in the end, it attracted some answers/comments like:

  • JavaScript is a terrible language but is used because is the only language available for front-end.
  • JavaScript is so poorly designed and demands so many workarounds its gotcha minefield that stuff like Node.js seems glorious by comparison.
  • Your answer really is "A language to rule them all" because JavaScript is ubiquitous.

Its my fault but where I did it wrong? I'll create another question soon and I hope to learn with this mistake to avoid another closed one. So, how could my question be reworded to fit in this site? If its not possible, why?

I've already read some meta questions before posting this meta question.

  • You misunderstood the one language comment -- it has nothing to do with ubiquity or one framework being better than another. It has to do with doing the front end and backend in the same language. It's the same reason javascript has become a popular target for compilers. – jmoreno Nov 14 '15 at 19:01
8

I would suggest narrowing the scope, ideally to focus on a concrete problem that you would like to solve.

This question was as much "too broad" as it was "opinion-based", because there's a potentially endless list of believable reasons people could post. You've listed three good ones just in this meta post, a few of the commenters and myself have a fourth one in mind (namely, Javascript is the only option on the client, and being able to use the same language on the server is nice), and I'm sure there are plenty more. This is great on other sites that encourage subjective polls/discussions, but here it's a problem because there's no way to know whether one of these answers is better than another. They're all equally plausible, and this sort of thing never has hard statistics to go look up, so whose answer do I upvote? Whose do you accept?

And that's why the best questions are the ones that start out with a clear problem statement. While we don't do tool recommendations (those are fraught with similar issues), there are plenty of questions you could ask about, such as whether the single event loop model of asynchronous programming is a good idea for a CPU-bound web service. For focused, goal-oriented questions like that (assuming you provided more details of course), we can clearly tell if one answer is more helpful than another, and everything just works.

(Note that this is not intended to be an accurate description of all the good, on-topic questions we have here, just the subset that I believe comes closest to what you asked today.)

  • 1
    Thank you Ixrec! I've liked your reasoning. I understood that my problem was creating a "too broad" question and, by consequence, it invited "opinion-based" answers. – Zanon Nov 10 '15 at 23:21
2

(I'm mostly a Stack Overflow user too, but here are some potential reasons I would guess some of the Programmers.SE community would consider for closing your question.)

What are the specific characteristics of JavaScript that makes Node.js so special and why other languages can't build similar frameworks to rise in popularity in their own community?

I can't read the full original question (since it seems to have been deleted), but looking at this quote, two expressions seem to stand out: "so special" and "other languages can't". Whether this was intentional or not, this seems to imply some sort of JavaScript/Node.js superiority over the rest. Asking a language or framework comparison question is generally quite subjective as it is, but if you imply some sort of superiority for the framework of your choice, I would suggest this is very likely to make the whole Q&A opinion-based.

Another problem is that you're talking about popularity, which can vary with time quite easily. Being able to pinpoint exactly why something is popular is also generally quite difficult and subjective in itself.

In addition, you seemed to be asking to compare apple and oranges. When you talk about Python and Java, you almost always talk about their standard libraries and API at the same time, which have been there virtually from the start. This is not so much the case for JavaScript (which has historically been far more dependent on the browser's capabilities). This may mean that there was a need for a "standard" JavaScript library, whereas Java/Python/C# already had one effectively, which in turn lead to a multitude of frameworks on these platforms addressing various other needs. Without putting some scope regarding how you want to compare JavaScript and Node.js to other languages, frameworks and platform, the question seems rather broad.

  • I have to agree. Great arguments. – Zanon Nov 23 '15 at 19:56

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .