Exploring ES6

Given that most of my work these days is HTML5 based, I figured it was time to start looking into ES6 – A long overdue update to Javascript.

For someone that’s used to working with C++ (and AS3), I like IDEs – every developer does. But JS is an ugly beast. An IDE can’t do things like find a function definition or where a var is used with JS (other than through text search which is rarely accurate since the var name is likely not unique). So ES6 features like modules and classes look great.

To my surprise, modules aren’t yet supported in Chrome or Firefox. You need to use Babel or Traceur. I’ve been using RequireJS for the 30k LOC project at work but I thought I could start considering native support with import/export. No go.

What’s worse is that import isn’t explicitly supported by Babel.  You need to use browserify because Babel will translate imports to CommonJS.  So my gulp script is (once again) starting to look awkward.

Ideally, I want to code in ES6, use a watcher to compile automatically, and debug in Chrome’s dev tools with source maps so that I don’t ever see the fugliness.

I’ll post my results if and when I get something feasible.

Catching up

It has been a while since I last updated the blog.  Since the last post, I’ve been busy working at Avid on cloud based video editing software.  It’s been a really great learning experience both in terms of the technology and in terms of working with a large team spread across the globe.

The project I work on involves hundreds of employees and has really changed the direction that Avid has taken over the past few years moving towards software as a service and a “platform” where all their software will connect.

I’ve had a chance to push Actionscript/Flash to the limit and work with bleeding edge html5 features like WebAudio, byte arrays, WebSockets, canvases, AMD, and build tools like gulp.  I’ve had a chance to do a bit of node.js and Java server side and regrettably worked with some less-than-ideal frameworks.  We use an automated build system with Jenkins and run automated test with Selenium and have slowly moved toward Git after having used svn and Accurev.

Working on such a large project has been a revelation in many ways. I can’t even start to recount all the discoveries I’ve made over the past few years but in short, working full time for so long on a single product lets you truly focus on the best way to approach a problem. I’ve really enjoyed not having to worry about cutting corners and “doing it right”.  We’ve still got a long way to go with the software but I’m very proud of what we’ve achieved since I started consulting at Avid nearly 6 years ago.

Avid

I’ve been hard at work on a long term contract at Avid.  It’s been really great.  I worked in the same offices 15 years ago for Softimage and although most of the team has changed, I’ve had the pleasure once again to work with a rock solid dev team.  I’ve been working on high end web based video editing and playback.  It has become a core part of where Avid is going and I’m really lucky to be a part of it.  I’ll try to post more often.  I’ve just spent a whole year working on some pretty advanced Actionscript and now I’m about to jump into some heavy duty html5.  Woohoo!  :)

All over the place…