Recently, I spoke at the first SyntaxCon in Charleston, South Carolina. It was a great time, and it’s exciting to see their nascent tech community just starting to grow. There was a ton of good content packed into the two intense days, and I wanted to share some highlights.
“Thinking in SQL”
I can’t help plugging my own talk. It was great—you should’ve been there!
My main idea was that we tend to think about an SQL join as a “has many” relationship (or a “belongs to” or an equivalent simple dependency). However, you can get more mileage out of thinking about JOINs in a way that’s more in tune with the relational model. Think of it as creating the Cartesian product first, and then filtering the result set down to matches.
Netflix’s Jem Young shared his excitement about service workers, a new feature specification in the early stages of adoption in many major web browsers. They are persistent daemons that can access and modify HTTP requests transparently in-flight.
Service workers are very powerful and are part of an ongoing pattern of using the browser less as a way to display content and more as an application platform (a trend that’s been going for some time now). After seeing his demonstrations, I share much of his excitement, and like much of the audience, some concern regarding security and resource utilization. However, despite the potential risks that still need to be ironed out, there is a ton of promise.
In the past, I’ve written HTML5 offline apps, and the app cache is painful. It’s very tricky to get it set up just right and to integrate the manifest generator into your build system. It’s too much of a house of cards, and it doesn’t take much to knock it over. Anything you can do with an offline app, you can do with a service worker—plus more, and with a much simpler API.
Ben Ilegbodu from Eventbrite shared his expertise on the upcoming features in ECMAScript 6. It doesn’t sound like there’s anything world-changing here (unlike service workers, these language features are not going to fundamentally change how we architect our applications), but these are still some long-awaited conveniences.
Here are a few highlights:
- Destructured assignment
- Default function parameters
- Template literals
- Arrow functions
The alternate function syntax with lexical scoping for ‘this’ is something I’ve been pining after for years. With this new functionality, I don’t think CoffeeScript has nearly as much of an advantage. Check out everything Ben put together on his web site.
This conference wasn’t as big as some I’ve been to, but they had a great team and managed to put together a really sharp lineup. I’m looking forward to seeing what they do next year!