I've been writing ES6 with Babel for a couple of months now, and I've fallen in love with destructuring - it's my second favorite part, besides arrow functions. My only complaint, having run into this a few times in real code, is that you can only use destructuring with assignment, not with existing variables. So this works:
let myThing = {a: 4};
let {a} = myThing;
But this does not: let a = 5;
let myThing = {a: 4};
{a} = 5;
I understand there are some problems of ambiguity here, but it seems to me this could be made to work somehow?