I'm not sure how often I've directly articulated this fundamental change in my thinking. Many people have been convinced that arguing and debating your goals and values with those in the opposition is the best way to influence people. I just don't believe that anymore. Debate has it's place. But it's not the best lever to reach the people I want to reach. https://social.polotek.net/@polotek/112050290234438314
React starts off really easy. Because it hides a lot of the complexity from you. "Easy to get started" is also at the root of a lot of dysfunction today in my opinion. Getting started is cool. But you know what's even better? Finishing the thing. Expanding the thing. Maintaining the thing as is scales. Changing the thing when the goals or requirements change. Improving the performance when users report that it's slow. All of those things matter way more than "getting started".
Another controversial issue I see is that the frontend community has over-indexed on "developer experience" as a goal. I've ranted about this as a related but separate topic. Most of the discourse that compares frameworks is either about "performance" or "I like this better because I think it's a better experience". Those are fine things to discuss. But I think there are way more factors that matter. Complexity should be a much bigger part of the discourse.
There are a ton of options for frontend development today. The landscape is actually dizzying. And that's also a different kind of problem. Choosing react is the easy option. Wading through the long list of other tools and doing an actual evaluation of the tradeoffs is very hard. I want to see more trusted professionals doing that work and coming to solid conclusions and recommendations. What should we choose besides react, and why?
So what are we missing in this discourse about frontend development? A few important things.
In order for people to change their current decisions, they need a better option. And not just a little bit better. It has to be better enough to outweigh the cost of actively switching. The cost of switching frontend tools is super high today. That's also partly due to the complexity. So it's a long game. We're really trying to influence devs at the moment they start a new project.
Yeah this is the primary reason that I'm working hard to be less acerbic in my messages. I know a lot of people agree with me. But if I want those people to share my messages in hopes of influencing their colleagues, it helps if I'm not actively being an asshole. 😂 https://social.jvns.ca/@b0rk/112050518679394179
Folks like @slightlyoff have been fighting this fight for a long time now. He ends up battling with framework developers. (They all seem to think the complexity they are creating is fine and totally worth it. Go figure.) But he also engages directly with engineering teams. Average engineers who don't care what tools they use. Or don't feel like they have a choice. Or just go with whatever is most popular and thus most marketable right now. Those are the folks we need to influence.
I've ranted about it a lot. (I made a lot of nerds mad in the thread below). The ranting is cathartic. But more importantly it's actually part of my own personal process of collecting my thoughts and organizing them. But I've done enough of that. Now I'm trying to figure out how we can push for change.
I'll provide one concrete example just for clarity. I really want frontend development to go through a change. The complexity is out of control. The react ecosystem has the most mindshare by far, but is actually the worst solution in my opinion.
What do I want to happen? I want to influence a wider range of developers to choose something besides react for their projects. And I want to help galvanize a movement towards reducing the complexity of these systems in several important ways.
This might be a controversial statement. But none of these people are the best groups to influence. They all represent a small minority of the larger population. Not that these folks don't matter. They're just not sufficient to create change.
We want to reach a wider group. Those who we need to convince to do something different if we want to see change. Those are the people I want to impact. But it's tough to know when you're actually in conversation with those folks.
3. There are a set of people who have a lot of feelings about the topic. They are *not* the same as the people who just want to argue. They actually care a lot, and their feelings are valid. But sometimes their feelings don't allow them to have a reasonable conversation about the thing.
Here are some things I do feel that I've learned about influencing people: 1. The people most eager to respond will be people who want to argue. I don't spend a ton of time on that. 2. There are always a set of people who like to debate because they find it intellectually stimulating. That's also generally a waste of time. Those folks are unlikely to take any action. Because often don't really have a stance themselves. They just like to talk about things.
I realize that I haven't even described what things I want to influence people on. That's because I'm speaking generally. This can apply to things both big and small. Politics is the most obvious. (I really wish the voters in SF hadn't just voted to expand police budgets and give them more tools to oppress.)
But it's more niche stuff too. Frontend development is in bad shape right now. And so is interviewing for technical roles. I care about a lot of things.