Simple and fast. That’s all we want from our software tools. And meeting the requirements, of course. You can’t go without that. Also, we’d like them to be pleasant to use, with a good developer experience. It would be really great to have a friendly community. A large ecosystem is important as well. Extensible, maintainable, up-to-date, and easy to integrate with other systems… Actually, come to think of it, we ask a lot of our software tools.
JavaScript and its libraries have undergone intensive refinement on all these fronts over the years, and this refinement continues today. As ever in software, like life, it’s all about tradeoffs and balancing different demands.
One key area of focus in recent months has been in improving performance on the front end. There is work going on in the underlying frameworks to find the right balance between server-side rendering and client-side rendering, as well as in providing the tools to app developers to intelligently apply rendering best practices to their specific scenarios. This objective is generally called “hydration” and the drive to improve it collides with another objective: simplicity.