Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- I made up my mind about these technologies many years ago and decided they were shit. I just knew...like, they would create problems, and then add on more complexity to solve the problems they created, which then would create more problems and so on.
- I knew I didn't want to use them for productivity reasons.
- But I loved the core ideas of both:
- - type checking can be helpful to write more robust code and catch slips or bugs more quickly
- - make view a pure function of state and enforcing a uni-directional data flow is genius and greatly simplifies things
- My issue is with the implementation of these ideas as carried out by FB and MS. I just don't think it helps, I think it creates more resistance and lowers productivity.
- This was my view many years ago. It's not like I don't know React. I wrote a "mimic react in 500 lines of JavaScript" library that copied the core functions of react so that I could understand it. I wrote my own framework that did minimal DOM updates using granular updaters instead of virtual DOM. I deeply understand some of the tech, I'm not expert tho, but I know what works for me.
- I don't know why the FB/React made API decisions like they did, and I don't really care about their reasoning, because I think the main thing is: you have to aggressively raise productivity, not anything else.
- I have used TypeScript, I still use it but only as a guide "tsc --checkJS" and ignore the nonsensical errors. I love the idea of like "type linting" but TS just does not live up to that in terms of max productivity.
- I think it's cool that there are all these "visualization" dev tools to help you dev in React and TS, but I fundamentally think that you shouldn't need sophisticated tools to help you develop well in some library, the tool or library itself should make it easy to develop. This is a subtle point and people will take issue with many nuances, but the fundamentals are strong.
- I find it hard sometimes to express clearly what I dislike about a certain tool, but I know, and I'm right.
- Nowadays I see more people speaking up against these tools, but it still seems like a fringe view. It's actually scary to raise this contrarian point of view (I'm hoping less scary now that my experiences of raising it a couple years ago), because of the intense pushback you get.
- I can understand some of the pushback as: people have struggled to use these tools themselves, and through that struggle and pain, they've formed a bond, even if it is a pathological bond, of love. The same thing happens to people in relationships...you struggled together and it bonds you, like brothers and sisters in arms.
- I also understand that there's probably some truth to the notion that these tools are not the best technologies, but they are the best at marketing. The marketing behind React and TS are excellent. Their narrative and spin is excellent. But I'm not an expert and dev marketing and I would love to read a deep dive analysis of how, from a marketing point of view, these tools came to dominate so much "engineering mindshare", and create so many zealots. I don't believe React and TS are winning because of superior technology (similar to the Beta video tape argument? purists will probably point out nuances where it's "completely different" but it's an analogy).
- So that's the background, but it's not the question. The question is:
- What if this is actually true? What if it's not just me and lots of other folks that find these tools burdensome and unproductive...what if they're actually *bad* for everyone's productivity (as much as anything can be for "everyone" individual differences accounting)?
- The question is: What if they are bad? Then what do we do?
- Obviously we just "stop using them". That's possible, but far more complex and important to understand is how to unwind the zealotry that leads people to obsessively defend things that I see as getting in the way of them being their best developer-selves.
- I guess what I'm really asking is: in the absence of a truly great developer experience (sure, it's "better than jQuery", but uh...), and in the presence of many flaws, what can explain the, to me anyway, irrational obsession of people with these tools?
- You think this question is stupid, but I think it's important to understand how to make sure this doesn't happen again.
- Is it just advertising? Are developers different beasts to other "segments" with a different "group psychology" that makes them have particular proclivities and vulnerabilities to certain types of messaging?
- In all of this, I mean provoke your critical reasoning and analytical response, not the fear response of, "Well, we can't chuck them, because there's no alternative!"
- I fully understand that, there's no apparent alternative. I'm sure there are good alternatives out there (I'm not including my own frameworks in this, they work for me, wonderfully, but other people using them probably wouldn't be great)...but they don't have enough developer eyes on them to make people feel like: "this project is well looked after", "this project is mature". And these are all important things.
- Also, one more question (I'm sorry, this is like meant to prompt a wide ranging discussion about developer front-end tooling and psychology and associated issues in general): what's in it for the companies? Like why does it makes sense for a company like FB or like MS to actually care about and manufacture these massive tools? Why should they care that many people use them? What do they get out of it?
- Finally, I hope someone can dissuade me of my pet conspiracy theory on this topic: that big corps create substandard tools for the masses to disadvantage competition and stymie startups, or at the very least, the big corps are not incentivized to maximize productivity, and my thesis is very clearly they are incentivized in the opposite direction, to stifle productivity. Sort of like that scene in DeadPool where they keep him with just enough O2 to avoid suffocation death, just enough productivity to let you grind forward, but enough repression to reduce your threat.
- Tho, the funny thing is, in deadpool it ended up making him a superhero. There's always that angle: maybe the crap tools of today will end up making all these devs superheros of tomorrow, sort of like how having to debug on mainframes with punchcards gave us the genreation of Kernighan and Ritchie and Knuth etc.
- I'm quite attached to this idea, but I hope someone can dissuade me from it, and restore my face in the benevolence of the dev relations stance of big corps. I say unironically, I personally feel a lot of investment in the future of this industry and I want the best for it! :P :) xx p
Advertisement