Alley takes a peek at the state of Emerging Technologies

Last Wednesday, I attended the Forward 4 Web Technology conference in San Francisco. This conference is always a good opportunity to make sure Alley’s technology stack is aligned with the industry currently and is poised to stay ahead of the game in the future. Since 2015 was the year when emerging web technologies grew up — and blew up — 2016 seems poised to be year to sift out the gems.

The conference covered a few topics that really made me excited about the future:

  • Stability. This year’s update to ECMAScript has only two new features, so if you were frustrated with the frenetic pace last year, this is one example among many where we should see a clearer, more deliberate process. Frameworks and languages are maturing and converging, and more people seem focused on refining web technology by applying foundational lessons that have already been learned in other systems.
  • Functional programming. React introduced the benefits of a functional approach to the mainstream. We saw abstractions like Reagent and the Elm architecture in turn influence the adoption of Redux for all kinds of front end JavaScript frameworks. Huge improvements and new ideas for performance, testing, developer tools and productivity have already “fallen out” of the simplicity of the functional paradigm.
  • WebAssembly. As JavaScript continues trending toward being just a compile target, WebAssembly opens the door to a lot of opportunities for compile-to-js languages, better standardization and possibly web stability and safety in general. We’ll be keeping a close eye on progress.
  • Universal apps. In conjunction with maturing server-side rendering solutions, tools like React Native and Electron offer the promise of sharing much of your codebase across platforms. While still limited, a strong desire for this sort of development workflow means these libraries are rapidly evolving. It’ll be interesting to continue gauging viability in different types of applications.
  • Co-located data fetching. As complexity increases, and more and more code gets shared between the front and back end, we’re seeing an approach to declarative querying in GraphQL, Falcor, Datascript, etc that give components a more natural, efficient data resource.
  • Strengthened communities. The formation of the Node.js Foundation last year has had a trickle down effect on other teams and inspired a more collaborative approach to small library maintainers like rackt.org. Even Microsoft joined the open source fray last year, and there are whispers about several other big players in the coming months. Open, inclusive communities are winning.

And here are some topics that have lost their shine:

  • NPM. Installation time, broken or misused versioning and reliance on Github are increasingly frustrating. Despite (or maybe because of) the 3.0 release, there seems to be a faction of developers who don’t want a rehash of the Ruby gems elephant, and are looking to other tools like Maven and Go get for inspiration when seeding development.
  • Bikeshedding. Standardjs, ESLint, JSHint: We’re all wasting our breath — just pick one, your friendly JavaScript engine does not care. What matters is that the developer who inherits your code can read it. Creating a barrier for entry for the sake of aesthetics is foolish.
  • jQuery. We’ll keep this one on the list until we never have to use it anymore. jQuery is a nice prototyping tool, but is an absolute hairball for apps of any complexity, extremely difficult to test, and frankly redundant in the current browser landscape. The DOM api isn’t fun or pretty, but it works fine for the basics you were using jQuery for anyway. Pick a better tool for more complex tasks.
  • Cursors. Gone before we even knew them, but an interesting idea that seems to have ultimately led to component querying libraries mentioned above
  • Web components. Only because we’re pretty much doing this without any help from the browser now. Can we replace the Shadow DOM with native VDOM already?

Last year was about big changes and shiny new technologies. I’m excited to see what happens with these web technology paradigms and ecosystems as they settle and mature.