ES6/2015 was the most significant update to the language since its birth. The specification took seven years to complete, but browsers and runtimes are finally starting to support arrow functions,
const, proxies and more delights. The ES6 compatibility table is turning a glorious shade of green.
Perhaps it’s a little early to fully switch to ES6 if you’re supporting older browsers. By older, I mean anything released more than a year ago. You can use an ES6-to-ES5 compiler such as Babel, but development is complicated enough without introducing an additional build step.
ES7/2016 is more evolution than revolution. One exciting new feature is async, which allows asynchronous code to be written in a synchronous manner without the syntactical complexities of callbacks or Promises (which continue to confuse me).
Progressive Web Apps
- a home screen icon
- fast launching and custom splash screens
- snappy execution
- offline functionality without an internet connection
- URLs, linking and bookmarking
- full-screen or themed interfaces
- sandboxed execution
- local and/or cloud-based storage with synchronization
- fewer device space and processing resources
- better security (HTTPS is a prerequisite)
- easy discovery from any search engine
- try before you install
- simpler deployment: it’s just a web app
- no AppStore nonsense: your app can contain whatever nudity and swearing you desire without someone demanding 30% of your profits!
Best of all: any website or application can be transformed into a PWA within a few hours. The steps:
- Enable HTTPS on your server.
- Create an application manifest — a JSON file in your application root which defines the name, colors, icons and display options.
It’s early days, and examples are rare, but PWAs offer an amazing opportunity to “mobilify” your web applications. Admittedly, there’s no guarantee Apple will implement the technology, but it shouldn’t matter: your app will still work in Safari, it just won’t benefit from offline execution. I have a feeling Apple will be encouraged to support PWAs once the web experiences becomes noticeably superior on Android.
For more information, see Dev.Opera’s Progressive Web Apps: The definitive collection of resources and Google’s PWA Guides.
It’s difficult to make an unbiased judgement, but React seems to have received the most attention this year. You may disagree; it depends on what you’re using, where you’ve been browsing and who you’ve spoken with!
Vue.js has increased in popularity, and version 2.0 was released in September.
AngularJS has possibly lost some of the momentum it gained in 2015, but that could change following the release of Angular 2 in September. The new version is a complete rewrite; it’s not backward-compatible with v1.0.
New frameworks and libraries are exciting, but the decade-old jQuery is still going strong. Version 3.0 was released on June 9 and v3.1 subsequently appeared on July 7. The library now runs in strict mode, supports Promises, and has various fixes applied. (View the upgrade guide for the full list of changes.)
Ahh, the Battery Status API. It seemed so useful when I wrote about it in 2013; what could be better than responsibly minimizing network requests and processing when your app detects the user’s phone is about to die?
Unfortunately, Mozilla estimates around 6% of sites use the API, but the majority was advertisers detecting the (fairly) unique battery status and tracking users as they navigate different domains. There was also the possibility of certain services raising prices when they knew a user was more desperate …
The twice-yearly Node.js schedule gave us version 6.0 in April and version 7.0 in October.
The platform is on an upward trend, although W3Techs report Node.js server usage of just 0.2% compared to 82.3% for PHP. The figures may be slightly misleading, since Node.js does not necessarily identify itself even when it’s installed.
No server-side runtime is likely to catch PHP: it’s had a long head start, and remains the most practical option for hosts to offer. However, Node.js is carving its own path, and is widely used by developers of all language faiths.
The Yarn of Yarn
I like npm, and consider it one of the primary reasons for the explosion of Node.js tools. I’ve never experienced too many problems, but I’m not working on projects as sizable as Facebook.
Facebook’s engineers released Yarn in October. It’s a new Node.js package manager designed to be faster and more stable than npm. It relies on the npm registry, so should remain fully-compatible.
Tim Severien’s Yarn vs npm: Everything You Need to Know describes the benefits Yarn offers. I agree with his conclusion:
Although Yarn isn’t a fork, it improves several flaws npm has. Wouldn’t it be cool if npm learned from this and asked Facebook, Google and the other Yarn contributors to help improve npm instead?
Tired of Fatigue
My advice: don’t try to keep up. It’s impossible. Whatever system you bet on today will be superseded by something better tomorrow. Pick an option for your project and stick with it unless work becomes untenable.
Happy New Year!
Craig is a freelance UK web consultant who built his first page for IE2.0 in 1995. Since that time he's been advocating standards, accessibility, and best-practice HTML5 techniques. He's created enterprise specifications, websites and online applications for companies and organisations including the UK Parliament, the European Parliament, the Department of Energy & Climate Change, Microsoft, and more. He's written more than 1,000 articles for SitePoint and you can find him @craigbuckler.
Jump Start Git, 2nd Edition
Visual Studio Code: End-to-End Editing and Debugging Tools for Web Developers
Form Design Patterns