Take advantage of the ecosystem
A developer can deliver:
- Websites and progressive web apps to the web.
- Create close to native apps on iOS, Android, Windows, MacOS and Linux.
- Software for IoT devices
- Power the infrastructure behind the product on servers.
The ability to use your development skills across a wide variety of platforms means your entire stack from front-end to back-end, mobile to desktop can share code — saving time and ensuring consistency.
If you use React for the front-end why not leverage that React knowledge and create your mobile app with React Native. Need a desktop app? Build it with React and Electron! The same development team can be productive on multiple platforms and deliver consistent experiences to many different devices.
Speed of development
Abundance of choice and conflicting opinions
- Should I use React or Vue?
- Is webpack better than rollup.js?
- How will components be styled? CSS, SCSS, CSS-in-JS?
- Which web framework for Node.js is the fastest/easiest/powerful?
- What rules should we use for linting?
There is no one-size-fits-all solution, there are differing opinions and difficult decisions that need to be reconciled and agreed upon by the team. Although it can be challenging to find the right balance for your project, there is freedom in finding the best tools for your specific use cases.
A complex build system
Speed of redevelopment
Want to avoid runtime exceptions and make refactoring easier? Use TypeScript or Flow.
Want to ensure standards across the team? Try eslint.
Need to stop arguing over code style and formatting? There’s prettier.
How to Evaluate
- What are your business objectives? Does JS meet these objectives?
- Are you targeting mobile? Do you need a native experience?
- What are your developers familiar with?