DEV Community

Discussion on: Stop Fighting About JavaScript Frameworks

Collapse
 
differentsmoke profile image
Pablo Barría Urenda • Edited

There has been over the past few years a move towards policing the tone of developer communities discussion, the amount of gate keeping that goes on in them, the erection of codes of conduct to foster inclusive and civic behavior and I firmly believe that this is a good thing. However, you can have too much of a good thing (see water and drowning).

I understand there's concern about petty squabbles and gate keeping when shaming people for using framework X, for using outdated technology or for favoring the wrong paradigm. However, if a software developer community can't critically examine the tools of its own trade, then what's the point of having a developer community at all? Other communities could fill in the need for social interaction or the need for moral/emotional support, but the point of a developer community is that we can talk about development issues. The problem is how we do it, but not that we do it.

To give an example, any JS beginner should be told that relying on jQuery in 2018 is a bad idea, that a transition to Vanilla JS and/or other tools will save him a lot of trouble in the long run. But this doesn't mean:

  • That they have an obligation to comply.
  • That they should be shamed for having used whatever particular set of training wheels helped them get to where they are at the moment (I know I used them, to this day).
  • That they need to drop what they're doing and give top priority to becoming better in the eyes of their peers.

There are objective cases to be made why jQuery is a relic (that we're grateful to), why the class keyword was a mistake, or why React is better than Angular. And objective cases to be made for the counter points to all of those arguments, and probably none of them are going to be universal but depend on the specifics of any situation.

The problem is not in making those cases, the problem is making them in a manner that does not encourage tribalism and gate keeping, but in a manner that helps the community as a whole self-reflect on what our common assumptions and best practices are. Because in the end we're all in this together, and while

"Use what makes you happy."

is great advice for a passion project, anything that expects to enroll more than one developer has to take into account what's best for the group, not just for the individual. Ultimately the objective is not to determine "who's right", but to have a better collective understanding of why, say, framework X chooses to do Y, but framework Z does the opposite.

The objective, I'd say, is to think as a group while avoiding groupthink.

I have not read the whole State of Javascript 2018 results, and I will agree with you that the idea of a battleground where there are frameworks left standing does conjure up the wrong imagery, but overall, I believe the survey is quite transparent about what it is: a survey documenting the preferences of a pool of developers who willingly participated. There's a bunch of statistics about the survey itself, so you can get an idea of how that particular consensus is arrived at. Surveys such as these are never going to be totally neutral, but I believe this one does its due diligence towards neutrality, within reason.

One final thing, and my apologies if you feel I'm out of line here, but I feel this needs to be pointed out: from your profile, you seemed to be quite heavily invested in Angular, you complain about people wanting to migrate to React form Angular based on surveys such as this, you complain about the survey being skewed towards React and you even cite a survey with "better representation" that also just so happens to put Angular above of React. I believe, and I may be wrong, that you are staunchly in the Angular camp. That is absolutely OK, but since you don't come out and say it outright, it makes me wonder if you're aware of this bias, and I think it is worth asking yourself, seriously: would you feel the same about this survey had Angular come up on top?

(Full disclosure: I'm at the moment 100% camp React, but I don't intend to be forever)

Collapse
 
johnbwoodruff profile image
John Woodruff • Edited

Thanks for the well thought out response! I love the discussion! :)

You're absolutely right that developers should be critically thinking about the tools and technologies they use at all times. I tried to make that clear but probably didn't do as good of a job as I thought. What I was hoping to put across is the negative effects of promoting this "framework war" where there's a winner and losers. I argue that there are many "winners" in the sense that there are many excellent options for people to use, and it depends on your situation, use case, and preference.

When it comes to use what makes you happy, I definitely meant to refer more to personal projects, not larger group projects where a consensus should be made over what to use. That's why I brought up the developer who insisted they rewrite their whole product in Angular, simply because it was a preference. I believe that is damaging to the group involved. I'm seeing many places where I wasn't as clear as I thought. ;)

You said a lot of this really well, particularly the following:

The problem is not in making those cases, the problem is making them in a manner that does not encourage tribalism and gate keeping, but in a manner that helps the community as a whole self-reflect on what our common assumptions and best practices are.

That's exactly what I was attempting to put across, so I appreciate you helping me out there. ;)

Final note: While I definitely enjoy Angular, I'm actually a fairly heavy React and Stencil user, I just have very little of that on my GitHub because most of it is through work with non-public repos. So I definitely wasn't trying to complain that Angular wasn't in first. The results weren't my issue, but rather the way in which they were framed. (i.e. Battle of the Frameworks)

Thanks again for your comment!

Collapse
 
Sloan, the sloth mascot
Comment deleted
 
differentsmoke profile image
Pablo Barría Urenda

Rick,

  • I believe this post is unnecessarily disrespectful and may be against the code of conduct. I'd consider editing it and toning it down.
  • My whole point is that it shouldn't be respect or criticism, but there are good ways of getting away with doing both, because both are equally important.
  • Specially, you can make argument of the type "X is better than Y", but those are almost always framed by "under this specific circumstances".
  • This may be followed by a debate over which circumstances are more common, but eventually this may be settled, in the form of not a clear winner, but of guidelines of how to do things depending on what you need to accomplish.
  • Because the objective shouldn't be to "win", but to clarify this issues, as a community.
  • A community where you cannot discuss which approaches to software development are better is not a good dev community, but a community where everyone insults each other is not a community at all.
  • Tribalism actually encourages groupthinking, and prevents meaningful discussion as much, or maybe more, than excessive caution.
Thread Thread
 
Sloan, the sloth mascot
Comment deleted