inline counter-rant. > On Feb 8, 2018, at 9:04 PM, Bob Myers <r...@gol.com> wrote: > > It does make one stop and wonder why the group will endlessly entertain > trolls debating whether or not ES6 (or ES5) portends the end of civilization > as we know it, while relentlessly ignoring literally dozens of > similar/identical proposals for property picking, a feature which easily > contributes as much to the language at as little cost as many other features > such as spread properties.
because most language-proposals *are* not important (or worse distractions) when you look at the really hard engineering-problems javascript was built to solve: UX design and [async] UX workflows (which are outside the comfort-zone of most engineers). people who have zero-empathy for UX are generally not going to become successful javascript-programmers (and their javascript-language opinions weighted accordingly). many just end up creating “correct” but non-user-friendly tools and libraries that no frontend-engineer wants to touch. companies do not hire laid-off engineers retrained as javascript-programmers so they can continue doing the things that made them redundant, like working on micro-solutions to “hard” cs-problems beaten-to-death by college-professors, that many times end up as re-inventions no better off than sqlite3. they hire javascript-programmers to solve higher-level UX problems, such as writing the necessary messy/ugly integration-code to leverage existing good-enough data-structures like sqlite3 into a UX solution like a persistent amazon shopping-cart, or facebook image-uploader. destructuring doesn’t solve UX problems or add value to employers hiring javascript-programmers. its a negative-productivity language-feature that makes already messy integration-code even harder to read, especially for those trying to debug code not written by themselves. -kai > On Feb 11, 2018, at 6:33 AM, Isiah Meadows <isiahmead...@gmail.com> wrote: > > > Another common reaction is "big deal, saving a few characters or lines". But > more than one recent language feature also falls into this category of mainly > or purely sugar and brevity. For instance, property spread syntax is pretty > much just sugar for `Object.assign`, yet everyone seems to think it's the > best thing since sliced bread. > > My understanding of this differs: > > - It was to bring feature parity with array spread destructuring. > - The proposal included both merging and extracting. > - It actually optimized for an exceptionally common case (React circles > benefitted the most, but others did quite a bit, too), immutable update of > record-like objects. In my experience, that scenario is *more* common than > array spread (beyond rest parameters), and engines can optimize for objects > that are not referenced elsewhere by not actually copying them, something > harder to do with `Object.assign`.\* > - You *could* implement it via `Object.assign`, but it chopped the number of > characters down to less than half for most cases if you're not just merging. > Most of these pick proposals aren't coming close. > > \* I don't know/believe if they do, but it's pretty easy to implement with > type info. > > > Bob > > On Sat, Feb 10, 2018 at 10:07 AM, Naveen Chawla <naveen.c...@gmail.com > <mailto:naveen.c...@gmail.com>> wrote: > Sorry sent by accident before my message was edited properly. My basic point > was that since curly braces are used for both destructuring and object > literals, there's an issue with being able to glance at the code and quickly > discern what's happening if they are mixed together in the same piece of > syntax. Not impossible, just a potential source of bugs and/or delay in > understanding the data structure being declared. > > On Sat, 10 Feb 2018 at 10:01 Naveen Chawla <naveen.c...@gmail.com > <mailto:naveen.c...@gmail.com>> wrote: > I'm not a TC39 member, but I have a little readability issue with > destructuring inside an object: > > ```js > { {p1, p2} = p, {q1, q2} = q } > ``` > > has a very different meaning than > > ```js > { p: {p1, p2}, {q1, q2} = q } > ``` > _______________________________________________ > es-discuss mailing list > es-discuss@mozilla.org <mailto:es-discuss@mozilla.org> > https://mail.mozilla.org/listinfo/es-discuss > <https://mail.mozilla.org/listinfo/es-discuss> > _______________________________________________ > es-discuss mailing list > es-discuss@mozilla.org <mailto:es-discuss@mozilla.org> > https://mail.mozilla.org/listinfo/es-discuss > <https://mail.mozilla.org/listinfo/es-discuss>
_______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss