Arrow Left
profile

Hello, I'm Wojciech đź‘‹

Should React be your whole universe?


Recently it was announced that the React Native EU conference changed into React Universe. The organisers explained the idea as:

React Universe is an idea of utilizing React’s declarative paradigm for full-stack and cross-platform development. It combines different languages, frameworks, and platforms where React with React Native acts as a gateway, streamlining developer experience that’s optimized for platform-native user experiences.

That jumped right on top of my recent critique of React Native’s direction. I believe that “streamlining” development like that is a mistake. There are good reasons to use different languages and framework’s on different levels of your stack - you might want to perform some heavy computations using a low-level systems language like C++, Rust, or zig, massage your data with Python, or Clojure and orchestrate your backend services with Go. While you could do those things also in JavaScript, it rarely would be the best tool and quite often it’d be a bad idea.

Why do people want to do it then? It’s optimising for the short-term:

  • Using a common language and framework lets you build something faster, which lets you collect feedback on it earlier. Unfortunately, too often have I seen such prototypes evolve into a (poor quality) final product.
  • Using a common language makes it easier for less experienced programmers to contribute, which translates to lower costs (salaries) and easier hiring. Unfortunately, in a world where developers hop between jobs every year or two it’s hard to make the case for hiring people with potential and spending a few years teaching them “the right way”. It makes much more (short-term business) sense to pick a stack that gives you the most value of the people you manage to hire.
  • Startups like it, because short-term might be their only runway before they “make it” or go bust.
  • Agencies and freelancers like it, because it makes their job easier if they can sell every client the same solution, regardless of their domain and needs.

Personally, I think prioritising for short-term is a losing game and I choose to play something else. I’m happy to use JS and/or React where I feel it allows me to build better products (like mobile apps with React Native), but I’m equally happy to pick other tools if they seem better for the job at hand. Fortunately, as an engineer, I have the luxury of being able to make this choice.

​

Have a good one,

Wojciech

​

​

Hello, I'm Wojciech đź‘‹

Subscribe to read my programming experiences, ideas, mistakes and tips I wish I'd known myself earlier. Learn how to enable high-performing teams, make an impact, grow as a software engineer and level up your career.

Share this page