Sunday, October 15, 2017

Thoughts on AngularMix 2017

I've been very busy with side projects lately, so it's been a long time since I've taken time to write anything up.

However, I just got back from AngularMix this past week, which was a great experience and was definitely worth a post.  A lot of interesting things are coming out of the Angular world, and I'll share my thoughts on a couple of the highlights (for me).  There were a lot of great talks, but I think my favorite part was the opportunity to meet and talk developers, including some of the core Angular team members.

Angular Elements

One thing that hasn't been as easy in Angular as in AngularJS is just being able to add an Angular component to an existing page.  There's a lot of use cases here, such as having a mix of technologies (React and Angular), or just wanting to start converting functionality from existing server side rendered pages by adding an Angular component.

Rob Wormald gave a talk here on a new enhancements to Angular they are calling "Elements", and had some really nice demos of the early pre-release functionality.  Elements basically allows any component (or even entire application) to run as a standalone custom html that can self-bootstrap into any html page.  He showed an example where was easily able to add independent copies of an Angular component to a static html page, and manipulate it by setting properties on the component.  This is really a HUGE step forward for inter-operability of Angular components with other technologies.

Nx from Nrwl.IO

Nrwl was one of the main sponsors of Angular Mix, and Victor Savkin gave a couple talks here.  One interesting talk was regarding applying a common set of terminologies and message-based design principles in NGRX.  Some of the content is from a post he previously wrote here, which is definitely worth a read.

However, the bigger story for me was the release of Nx, a suite of tools integrated with the CLI for enhancing Angular applications.  There are tools for simplifying generating NGRX code, and also a set of functionlity for supporting breaking up your Angular applications into libraries.  As long as you use a monorepo for your Angular code-base, the Nx tools make it easy to refactor your code into reusable modules.  Until now, it's really not been easy to work with code as libraries in context of CLI-based workflow, so this is a huge step forward.

Developers inherit the Internet

One thing that really amazes me is how web technologies are driven forward by really small groups (or even individuals) who have a passion for improving things, and making lives better for developers.  People make a big deal out of Javascript framework fatigue, but to me this is a symptom of a healthy, thriving community, and seeing the speakers at Angular Mix really drove home the point to me.  With the open source movement, combined with sites like GitHub that  provide ability to share code to anyone in the world for free, pretty much anyone with development skills can make a contribution.  What an amazing time we live in =)