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.

Reply via email to