Joyful Tech: Angular, Node.js, Performance, and Bad Ideas
Here at Bendyworks our mission statement is to share joy and success in our craft so every once in a while we like to highlight tech news that makes us joyful. Here are some interesting things we saw from Oct 27th through Nov 3rd.
We are pleased to announce version 5.0.0 of Angular, pentagonal-donut. This is a major release containing new features and bugfixes. This release continues our focus on making Angular smaller, faster, and easier to use.
Angular is one of the best frameworks to build web applications with and now it gets even better. Work was done to make deployed apps smaller, transfer state from server rendered code to client side code easier, and a lot more.
We are super excited to announce that later today Node.js 8 will be ready for production as it transfers into the de facto Long-Term Support release line opening it up to a larger user base that demands stability and security.
Node.js is crucial to both developer tooling and server environments. With v8 (Carbon) gaining long-term support, developers can now be confident in it's stability and taking advantage in it's many performance improvements and ES7 feature additions. Async/await and ES Module are particularly awesome improvments.
A few days ago Netflix tweeted that they'd removed client-side React.js from their landing page and they saw a 50% performance improvement. It caused a bit of a stir.
Developers are in a constant battle to keep their apps performant. Every byte and millisecond counts. Netflix is doing some great make their initial load experience awesome by deferring the need for React until later. This makes their time to first interactive much faster but still lets them leverage the power of React.
From service workers to http2 to link rel preload we have never had more primitives at our fingertips to deliver fast experiences to our users.
Bundling is dead, long live bundling! Performance is a tradeoff of many things including: over the wire size, cacheability, number of network requests, and latency. By adding a couple of extra output files you might find performance improvements for your client side code.
How does this work? Here’s the short version: it uses a combination of pre-rendered HTML, the CSS sibling combinator (~), CSS counters, and the :checked, :target and :required pseudo selectors. The rest of this post will go into more detail.