Get the O'Reilly Web Newsletter and receive weekly JavaScript, HTML5, and web development news, tips, and updates.

The rise of Progressive Web Apps

2016 was the year of the question “what are Progressive Web Apps”? Originally developed and coined by Google’s Chrome team, Progressive Web Apps (PWAs) are a new form of mobile web development, where greater parity can occur between native and web. This brings together the organic discovery people like about the mobile web and the features of native apps users have come to rely on, like push notifications, offline support, and speed.

Gartner predicts that by 2019, 20% of brands will abandon their native mobile apps, so this year may be the time to give PWAs a try. Native apps will continue to be a part of our daily lives, but currently, mobile users spend 80% of the time on their devices using only their top three apps. On the other hand, a lot of organic discovery is happening on the mobile web, but users tend to spend less time on these mobile sites due to less than optimal browsing experiences. One strategy some companies have used is creating prompts for users to open their site in the native app. However, this comes with the cost of building and maintaining both a mobile site and a native app, and often these prompts simply annoy users.

Learn faster. Dig deeper. See farther.

Making the transition from native to progressive web apps brings many development concerns to the forefront, from accessibility and responsive design, to security and performance. There’s also the fact that PWAs are being built on technologies still in active development, such as service workers. Though it’s still early days, already major outlets and companies are adopting PWAs for their mobile web experiences, with two major examples being the Washington Post and Flipkart, India’s largest ecommerce site.

Stabilization and flexibility among web stacks

Over the past year, there have been major developments for the two leading JavaScript frameworks in the web ecosystem: Angular had its first major release since 2009 (Angular 2), and React had its 15.0 release, which included significant improvements. With the Angular team’s meticulous rewrite of the framework, and React’s ecosystem finding maturation and wide adoption, we’re seeing both communities coalescing around common best practices.

Vue.js has also gained a lot of popularity in the last year and is now in its 2.0 version. More lightweight and less opinionated than Angular, Vue focuses on the view layer only, making it easy to integrate with other libraries. Laravel has adopted Vue as its default frontend JavaScript framework, helping to grow its popularity in the PHP and wider web communities.

While there’s still no shortage of churn in the JavaScript tool space, the stabilization in these leading communities highlights some of the opportunities that lie ahead for developers looking to get some of the best of all worlds when it comes to frameworks and tools in their web stack. While a lot of posts and conference talks boil things down to Angular vs. React, the reality is that Angular is a full-fledged framework whereas React is a library, built as a view-layer (in other words, the “V” in the MVC model). Just because they are often pitted against each other doesn’t mean you have to pick one or the other—or pick one at all, for that matter.

In fact, the Angular and React ecosystems complement each other, both playing nice with component-driven architecture and Redux, a state container for JavaScript apps originally built by the React community. 2017 may become the year where learning the best uses for Angular and for React may be to your benefit. For instance, if you’re hoping to rapidly prototype a new app, the built-in features of Angular will work to your advantage. If you’re building a universal application with server-side rendering, React may be your best bet. Whatever the case, I think we’ll continue to see more flexibility when it comes to picking and choosing the components developers integrate into their web stacks.

Visit Safari to get on the road to Angular 2 development and up and running with React.

Functional programming and the web

With the rising popularity of React and Redux, it’s clear that developers are seeing the benefits of stateless applications. Redux is heavily influenced by Elm, and together with Immutable.js we’re seeing more functional programming coming to both the client and server-side web. Clearly, functional programming is nothing new, but it’s certainly a newer area for many frontend web developers.

Functional Reactive Programming (FRP) also continues to gain momentum in the JavaScript ecosystem. Part of the reason JavaScript has become the dominant language of the web is its inherently asynchronous nature. Reactive programming simply means programming with asynchronous data streams, and while this could quickly become unwieldy on the web with endless callbacks, modern FRP frameworks like RxJS and Bacon.js have emerged as worthy implementations.

Dive into functional reactive patterns, as well as apply functional techniques with Angular and with JavaScript on the client and server through talks from the O’Reilly Fluent Conference.

New approaches to data fetching in modern web apps

If your company is moving to a microservices architecture or your REST APIs are becoming too complicated to maintain, it might be worth taking a look at Facebook’s GraphQL or Netflix’s Falcor for their client-directed approaches. While RESTful approaches have been a mainstay for working with data on the web, GraphQL and Falcor have both emerged as compelling options for data querying and management in the JavaScript ecosystem. Both projects have the advantage of greater interoperability between servers and clients than REST when it comes to data fetching in modern web apps.

While they are both very new technologies, the fact that they are in production at Netflix and Facebook is a good indication that more companies and teams will be adopting them for data management in large-scale applications.

Learn more about next-generation application architecture, and take a deeper dive into Falcor with Jafar Husain from Netflix.

Building and designing for artificial intelligence

Over the past year, many tech titans—including Google, Microsoft, Amazon, and Facebook—have released new AI-focused products and platforms to the public. These companies certainly have an eye toward a future where humans interact seamlessly with their machines and with each other. With Amazon’s Alexa and Google Home becoming part of daily lives, technical skills for building and designing conversational systems are becoming ever more in demand.

In addition to hardware, we’ve also entered a new age of bots, with usage of messenger apps now surpassing social networks. From Twitter to Slack bots to infrastructure automation and banking bots, the bots movement brings together 21st-century technologies and capitalizes on two key aspects: context and convenience. At the heart of this movement, bot designers, builders, and implementers are aiming to give us technology that allows us to have frictionless interaction with the world around us. 2017 will continue to be a year of innovation and rapid development in terms of bots, conversational UI, and artificial intelligence on the web.

Learn more about chatbots, conversation and AI as an interface and watch our All the Bots video collection and sessions from our Bot Day event.