yes, in order of severity: 1. es6 generators and modules are the top 2 notorious things that come to mind as being difficult to debug/integrate in product-development.
2. classes (and typescript, though not directly es6-related), tend to create lots of unnecessary structure that becomes a PITA when you need to rewrite everything, which occurs often in product-development. there are lots of newly minted js-devs entering industry, who lack experience in understanding the risks of javascript over-engineering (and that nothing you write is permanent). they write lots of semi-permanent, es6 infrastructure-code during the initial design-phase, which is a general no-no for many veterans, who understand most of that stuff is going to get tossed out the window and rewritten during integration-phase (and again everytime a ux feature-request comes in that breaks the existing integration-workflow). 3. let and const declarations. most code you debug/write in javascript is ux-related integration-code dealing with async-io, which relies heavily on function-scoped closures to pass variables across process-ticks. block-level scoping is an unnecessary design-pattern that leads to confusion over the former. 4. fat-arrow. it has garden-path issues, making it difficult to write efficient javascript-parsers that can differentiate the following [valid] javascript-code: ```js (aa = 1, bb = 2, cc = 3); // vs (aa = 1, bb = 2, cc = 3) => aa + bb; ``` this leads to fundamental performance-issues with tooling/minification/test-coverage-instrumenters. jslint for efficiency-reasons, simply cheats and assumes both of the above are fat-arrows, and raises fat-arrow warnings for both (and halts further parsing) [1]. [1] jslint managing garden-path complexity of fat-arrow, with a single lookahead, that can turn out wrong, so it halts parsing. https://github.com/douglascrockford/JSLint/blob/36adbc73ef0275df7d3fac9c3ef0844ac506136b/jslint.js#L2914 <https://github.com/douglascrockford/JSLint/blob/36adbc73ef0275df7d3fac9c3ef0844ac506136b/jslint.js#L2914> kai zhu [email protected] > On 22 Sep 2018, at 12:04 PM, Siegfried Bilstein <[email protected]> wrote: > > Do you have examples of the patterns and es6 features you describe? > > Siggy > > On Sat, Sep 22, 2018 at 01:02 kai zhu <[email protected] > <mailto:[email protected]>> wrote: > a problem i've observed in industry is that many es6 language-features have > the unintended-consequence of incentivising incompetent javascript-developers > at the expense of competent-ones. its generally difficult for many employers > (even those knowledgeable in general-purpose programming), to discern between: > > a) a competent javascript employee/contractor who can get things done and > ship products (albeit with legitimate delays), and > b) an incompetent-one who can easily hide themselves in non-productive es6 > busywork, and continually pushback product-integration (again with > “legitimate” delays, until its too late). > > its gotten bad enough that many industry-employers no longer trust > general-purpose-programming technical-interviews when recruiting js-devs, and > rely almost exclusively on either a) an applicant's reputation / > word-of-mouth for getting things done, or b) their ability to complete a > time-consuming tech-challenge, where they must demonstrate ability to ship a > mini-product. both methods are not scalable to meet the demand in industry > for qualified js-devs in product-development. > > the only solution i can think of to this industry-problem is to hold-back on > introducing new disruptive/unproven javascript design-patterns, and figuring > out how to educate the industry with tightened javascript style-guides and > existing design-patterns proven to work (more is less); generally, ways to > enhance the current, woefully inadequate “bullsh*t detector” of employers so > they can better identify and mentor/train/weed-out unqualified js-devs. > > kai zhu > [email protected] <mailto:[email protected]> > > > -- > Job board: http://jobs.nodejs.org/ <http://jobs.nodejs.org/> > New group rules: > https://gist.github.com/othiym23/9886289#file-moderation-policy-md > <https://gist.github.com/othiym23/9886289#file-moderation-policy-md> > Old group rules: > https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines > <https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines> > --- > You received this message because you are subscribed to the Google Groups > "nodejs" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected] > <mailto:[email protected]>. > To post to this group, send email to [email protected] > <mailto:[email protected]>. > To view this discussion on the web visit > https://groups.google.com/d/msgid/nodejs/0BBA242B-D57D-4260-BC24-7983923B43A7%40gmail.com > > <https://groups.google.com/d/msgid/nodejs/0BBA242B-D57D-4260-BC24-7983923B43A7%40gmail.com?utm_medium=email&utm_source=footer>. > For more options, visit https://groups.google.com/d/optout > <https://groups.google.com/d/optout>. > -- > Sent from Gmail Mobile > > -- > Job board: http://jobs.nodejs.org/ <http://jobs.nodejs.org/> > New group rules: > https://gist.github.com/othiym23/9886289#file-moderation-policy-md > <https://gist.github.com/othiym23/9886289#file-moderation-policy-md> > Old group rules: > https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines > <https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines> > --- > You received this message because you are subscribed to the Google Groups > "nodejs" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected] > <mailto:[email protected]>. > To post to this group, send email to [email protected] > <mailto:[email protected]>. > To view this discussion on the web visit > https://groups.google.com/d/msgid/nodejs/CAOd5ZkpWCKLTk9TR%2BeE%2Bg9upuezAf_EQVKnpaOhFNk1SgYiZJA%40mail.gmail.com > > <https://groups.google.com/d/msgid/nodejs/CAOd5ZkpWCKLTk9TR%2BeE%2Bg9upuezAf_EQVKnpaOhFNk1SgYiZJA%40mail.gmail.com?utm_medium=email&utm_source=footer>. > For more options, visit https://groups.google.com/d/optout > <https://groups.google.com/d/optout>. -- Job board: http://jobs.nodejs.org/ New group rules: https://gist.github.com/othiym23/9886289#file-moderation-policy-md Old group rules: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines --- You received this message because you are subscribed to the Google Groups "nodejs" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/nodejs/07515903-F569-4CF4-B835-B92A9CFC64B1%40gmail.com. For more options, visit https://groups.google.com/d/optout.
