DEV Community

James
James

Posted on

To React or Not?

We're building a SaaS platform at work and have a choice of JS framework to make.

In my last two roles leading dev teams we had similar choices to make and shortlisted React, Angular and Vue. In both teams, we decided (democratically) to select React as our framework of choice and merrily cracked on with that.

I won't bore you with the reasons why, there are a million posts about which framework to choose, and we referred to some of these, set our own criteria of importance and then reviewed and rated each of the contenders before voting.

But, crucially, this was before Cambridge Analytica, the undermining of democracy and live streaming of murder.

Re: Angular, Google also has issues regarding some of its practices, (maybe this is just a defining characteristic of tech unicorns?), for example regarding content on Youtube, if you can monitor and take down copyright infringing content surely you can monitor content designed to spread hate and fear?

But, is it fair to level criticisms of the creators of these tools and frameworks at the tools and frameworks themselves? To put it another way, can you separate the creator from the creation?

What if we take an analogy from art? Whether or not you consider software development an art form (which is an interesting but wholly different topic, let's leave that for another day, or perhaps a dev discuss?) it doesn't matter for the purposes of this comparison; can you separate Michael Jackson's music from Michael Jackson?

It can be easily argued (especially given the recent documentary) that you can't, and there is a very clear case for boycotting his work, at least not providing further remuneration to his estate for this anyway. (Can you listen to a 2nd hand copy of one of his CDs though?)

Can the same be said for use of a software tool or framework? Even if that tool is open source by using it are you lending support to that software, and so by extension to its creator?

Can, or more importantly, should the behaviour and/or practices of the creator of a piece of technology be a criterion for selection of this technology?

And if we do, what weight do ethics have on selection, is this on an even footing with say community support, potential talent pool, extensibility, learning curve, or any other criteria you may choose?

From a purely pragmatic point of view, my head says weigh up the needs of the team, company and users and make the best practical selection, but it doesn't feel right, technology doesn't exist in a vacuum, it is increasingly interwoven in our lives and if we are concerned with improving user's lives through better technology, shouldn't we who are in a position of choice make an ethical one?

What are your thoughts on the ethics of software selection, am I just indulging myself, does this chime with anyone, would love to hear what the community thinks.

Thanks for reading,
James

Discussion (15)

Collapse
rhymes profile image
rhymes • Edited on

Hi James, love your post and the questions you posed to yourself.

Let me start by saying that I don't think there's a "good" or a "bad" answer regarding the choice of React/Angular/Vue. Choosing one over the other won't make you a bad person. But I think that we're asked to do as human beings is at least think about some of the issues you raised here.

Regarding art created by people that are then discovered to be bad this, among other things, helped me frame the issue: What Do We Do with the Art of Monstrous Men?.

Going back to programming and the "React or not question", let me reiterate the fact there's no easy nor right/wrong answer, just what you and your colleagues feel it's okay and comfortable for you, because it's quite obvious that the company won't care if you James use or don't use React (they won't care about me either, they might care if "me/you" is multiplied by tens of thousands but that's an entirely different argument).

Let me add some food for thought: let's say you choose Vue, which clearly is the most "independent" one among the three you quoted, what happens if you find out that a despicable programmer or a programmer that works at company you strongly dislike has contributed a feature to the framework?

Clearly, it's not an easy choice the one based on ethics because it's not infallible and because as humans we're born with the ability of navigating grey areas and be fine with that. Otherwise we'd have never ending migraines because well, the world is full of these conundrums, every second of every day.

So, if choosing X over React makes you comfortable, you already have your answer.

technology doesn't exist in a vacuum, it is increasingly interwoven in our lives and if we are concerned with improving user's lives through better technology, shouldn't we who are in a position of choice make an ethical one?

I really do agree, I raised the issue in my post Unethical programming. The problem is that there's no clear answer every time, it would be too easy :D. In the series Goodbye Big Five (that I urge you to read), the journalist Kashmir Hill, tried to block each of the biggest tech companies for a week at the time and well, it was painful, the hardest being Amazon because through AWS they they provide uptime for a lot of services (Signal included for example).

What should you ultimately do? I have an opinion which is mostly based on my preferences of library/framework but I think you should come to your own decision on your own terms. I think your gut already has the answer you seek though, otherwise we wouldn't be here discussing :D

Collapse
jdheywood profile image
James Author

Thanks for your considered reply, and the links, really interesting reading :-)

Collapse
skatkov profile image
Stanislav(Stas) Katkov • Edited on

I don't think that ethical behavior of facebook affects my decision not to use react. I'm more opposed against hyper-marketed open-source projects, In a lot of cases there over better projects out there (khe-khe vue).

but somehow everyone defaults to "bigco is using this, let's us it too" option. And that sucks

Collapse
thiagodebastos profile image
Thiago de Bastos

Don't forget that big frameworks also mean lots more documentation and easier to get answers for issues. 'Big' also means reliable, tested. People think "if [big company] trusts [framework X] its good enough for me".

Its a tough choice!

Collapse
jdheywood profile image
James Author

Peer pressure is high, especially in the JS framework world!

Appreciate your honesty, thanks for reading

Collapse
jleblanc profile image
Josh LeBlanc • Edited on

React is made by developers who happen to work at facebook. The same can be said for every piece of software that comes out of a big company.

The company had a problem to solve, they solved it, and management gave the developers the go-ahead to make it open source.

I have absolutely zero problem seperating these from the company they originated from.

Regarding which one to actually pick, I think it's largely inconsequential. Just pick something and be consistent. That's really the hardest part :D

Collapse
jdheywood profile image
James Author

Fair point, and thanks for posting, I'm less worried about the actual choice of framework than I am about the way we choose.

Agree that consistency is key though - once you pick you have to stay the course or pay the rewrite cost!

Collapse
thiagodebastos profile image
Thiago de Bastos

Good point! Where does one stop? What about a single individual who is otherwise great but has one view you are disgusted by? I wonder if this is even a question that can be answered!

Collapse
xngwng profile image
Xing Wang

Interesting take on choosing technology based on its creator's morals.

I think many art, music, scientific or technology we use and depend on everyday are often made by people, whose morals or opinions may not be what you would agree to (especially viewed from modern lens.). Examples, many famous scientists support eugentics, most founding father of USA are slave owners.

But I think the scienctific or technology discoveries still stands on their own merit. Because if that particular person didn't create/discover them, someone else will/would have.

Collapse
jdheywood profile image
James Author

Hi, fair point and poses a valid question, if the creator of a thing is long gone does that affect a moral decision to appreciate or use a thing?

Ethics seems like a very difficult area of discussion, but one I would welcome as I feel I need to educate myself.

I appreciate it is also somewhat of a luxury and that some people do not have time or resources to consider this. Sometimes you just need to build something and pick the best tools without considering the producer of those tools.

Collapse
tobiassn profile image
Tobias SN

I think you should use whatever framework fits your needs regardless of what people have said about the creator or their other stuff. I mean, even though Apple Maps is inaccurate, I still use an iPhone. Besides, Facebook doesn’t care if you use React or not, they just released it as open source because why not? And it might’ve also scored them some brownie points.

So my point is that even if everyone stopped using React, Facebook will still continue to develop it, because they use it for their own site.

Collapse
jdheywood profile image
James Author

Thanks for your comment :-)

Collapse
juggerjosh profile image
Josh Juggernaut • Edited on

The fact that you are having a moral dilemma about which framework you should use based on the Creator's actions (outside of the maintenance and development of the code you are using) shows that you got too much free time. It's easy to point at Google or Facebook and disagree with how they handle specific events that have NOTHING to do with their code. Imagine pulling in third party libraries into your project, do you make judgements about the personal lives of each developer involved in the making of that library? Or just the company? Does it make you feel good that you are not under the same level of scrutiny that larger businesses are in? Who are you to make criticisms and what's your moral high ground? As others have stated, Facebook and Google don't care if you use their open source projects. You and your company ought to be grateful to be able to use high quality code, free of charge.

Collapse
jdheywood profile image
James Author

Thanks for your comments Josh, did you create a DevTo account just to leave this comment? I'm honoured.

Each to their own opinion, although I take issue with your assertion about my free time and level of scrutiny. My question was around the actions of the entity that is Facebook not individual contributors, it would be more constructive to keep the discussion non-personal in my opinion.

As a consumer of services, whether free or not, I am as entitled as anyone else, indeed as we all are to consider the results of our actions, however insignificant they may seem (such as choosing an open source framework), but that's just my opinion feel free to ignore!

Finally re: Facebook or Google not caring, I think the 180 Facebook did on their licensing of React in 2017 shows they do care surely?

Anyway, thanks for reading

Collapse
thiagodebastos profile image
Thiago de Bastos

I would argue that Google and Facebook care very much that you use their OS projects. By open sourcing, they have created a global talent pool of developers who all know their framework of choice and are thus pre-trained before ever being employed. Open-sourcing also means you get global talent, working for 'free' for you. None of these companies ever do anything to be nice, they do whatever they can — and I mean anythning they can get away with — to pay out their shareholders. That is a company's main drive. To pretend otherwise is to seriously overlook what is really going on.