HackerFriction Feedback

Products · Product

JavaScript

Raised as a usability problem by 473 people on Hacker News over 20 years (2007–2026), in 451 threads.

Ranked by people · period

No issue was raised by at least 3 people in 3 threads this year.

  1. 1
    Conflicting tool configurations create a convoluted build setupUnreviewed

    5 people in the last 5 years · 5 threads

  2. 2
    Fast-changing tools and tutorials make setup hard for beginnersUnreviewed

    4 people in the last 5 years · 3 threads

  3. 3
    Date API is hard to use, causing many bugsUnreviewed

    4 people in the last 5 years · 4 threads

  4. 4
    Days spent configuring TypeScript projects with too many choicesUnreviewed

    4 people in the last 5 years · 4 threads

  5. 5
    Too much configuration needed to set up a front-end projectUnreviewed

    3 people in the last 5 years · 3 threads

  6. 6
    Combined default and named import syntax confuses learnersUnreviewed

    3 people in the last 5 years · 3 threads

  7. 7
    Type coercion results are unpredictable without memorising corner casesUnreviewed

    3 people in the last 5 years · 3 threads

  8. 8
    Date silently converts times to local time, surprising peopleUnreviewed

    3 people in the last 5 years · 3 threads

  1. 1
    Conflicting tool configurations create a convoluted build setupUnreviewed

    20 people since the beginning · 20 threads

  2. 2
    Too much configuration needed to set up a front-end projectUnreviewed

    14 people since the beginning · 14 threads

  3. 3
    Scoping and 'this' are unintuitive to new developersUnreviewed

    10 people since the beginning · 10 threads

  4. 4
    Loose equality rules cause bugs; must remember to avoid ==Unreviewed

    9 people since the beginning · 8 threads

  5. 5
    Async function fails silently when no try/catch is usedUnreviewed

    9 people since the beginning · 9 threads

  6. 6
    Fast-changing tools and tutorials make setup hard for beginnersUnreviewed

    8 people since the beginning · 7 threads

  7. 7
    Combined default and named import syntax confuses learnersUnreviewed

    7 people since the beginning · 7 threads

  8. 8
    Cannot open JavaScript-driven links in a new tabUnreviewed

    7 people since the beginning · 7 threads

  9. 9
    Date API is hard to use, causing many bugsUnreviewed

    7 people since the beginning · 7 threads

  10. 10
    Days spent configuring TypeScript projects with too many choicesUnreviewed

    7 people since the beginning · 7 threads

  11. 11
    Newline-based semicolon rule is too complex to predictUnreviewed

    6 people since the beginning · 6 threads

  12. 12
    Hidden behaviour must be remembered to avoid bugsUnreviewed

    6 people since the beginning · 6 threads

  13. 13
    Type coercion results are unpredictable without memorising corner casesUnreviewed

    5 people since the beginning · 5 threads

  14. 14
    Destructuring syntax reads backwards, more confusing than assignmentUnreviewed

    5 people since the beginning · 4 threads

  15. 15
    Callback nesting makes async code hard to read and followUnreviewed

    5 people since the beginning · 4 threads

  16. 16
    Date silently converts times to local time, surprising peopleUnreviewed

    4 people since the beginning · 4 threads

  17. 17
    Forgetting var silently creates a global variableUnreviewed

    4 people since the beginning · 4 threads

  18. 18
    Cryptic error messages and stack traces make failures hard to diagnoseUnreviewed

    4 people since the beginning · 4 threads

  19. 19
    Constructors callable as plain functions cause silent mistakesUnreviewed

    3 people since the beginning · 3 threads

  20. 20
    Tools take seconds to process a few thousand lines of JSUnreviewed

    3 people since the beginning · 3 threads

  21. 21
    Nested promises unexpectedly flatten, causing days of confusionUnreviewed

    3 people since the beginning · 3 threads

  22. 22
    Syntax gets in the way of seeing what code doesUnreviewed

    3 people since the beginning · 3 threads

  23. 23
    Null and undefined distinction and coercion make code error-proneUnreviewed

    3 people since the beginning · 3 threads

  24. 24
    Promises and arrow functions make async debugging harderUnreviewed

    3 people since the beginning · 3 threads

  25. 25
    Tiny code changes cause initially undetectable scoping bugsUnreviewed

    3 people since the beginning · 3 threads

  26. 26
    Web app UIs render choppily and inconsistently across browsersUnreviewed

    3 people since the beginning · 3 threads

Every issue, all time, most people first

  1. Conflicting tool configurations create a convoluted build setupUnreviewed

    20 people since 2015, in 9 different years · 2 this year

    2007: 0 people2008: 0 people2009: 0 people2010: 0 people2011: 0 people2012: 0 people2013: 0 people2014: 0 people2015: 4 people2016: 2 people2017: 1 person2018: 0 people2019: 2 people2020: 3 people2021: 5 people2022: 0 people2023: 1 person2024: 0 people2025: 1 person2026: 1 person
    20072026
    Something wrong here?
  2. Too much configuration needed to set up a front-end projectUnreviewed

    14 people since 2016, in 9 different years · none this year

    2007: 0 people2008: 0 people2009: 0 people2010: 0 people2011: 0 people2012: 0 people2013: 0 people2014: 0 people2015: 0 people2016: 2 people2017: 2 people2018: 2 people2019: 1 person2020: 1 person2021: 3 people2022: 1 person2023: 0 people2024: 1 person2025: 1 person2026: 0 people
    20072026
    Something wrong here?
  3. Scoping and 'this' are unintuitive to new developersUnreviewed

    10 people since 2013, in 7 different years · none this year

    2007: 0 people2008: 0 people2009: 0 people2010: 0 people2011: 0 people2012: 0 people2013: 2 people2014: 0 people2015: 0 people2016: 1 person2017: 5 people2018: 1 person2019: 0 people2020: 1 person2021: 1 person2022: 0 people2023: 0 people2024: 1 person2025: 0 people2026: 0 people
    20072026
    Something wrong here?
  4. Loose equality rules cause bugs; must remember to avoid ==Unreviewed

    9 people since 2010, in 7 different years · none this year

    2007: 0 people2008: 0 people2009: 0 people2010: 1 person2011: 0 people2012: 2 people2013: 0 people2014: 0 people2015: 0 people2016: 0 people2017: 0 people2018: 1 person2019: 1 person2020: 1 person2021: 2 people2022: 0 people2023: 0 people2024: 1 person2025: 0 people2026: 0 people
    20072026
    Something wrong here?
  5. Async function fails silently when no try/catch is usedUnreviewed

    9 people since 2015, in 5 different years · none this year

    2007: 0 people2008: 0 people2009: 0 people2010: 0 people2011: 0 people2012: 0 people2013: 0 people2014: 0 people2015: 1 person2016: 3 people2017: 1 person2018: 3 people2019: 0 people2020: 1 person2021: 0 people2022: 0 people2023: 0 people2024: 0 people2025: 0 people2026: 0 people
    20072026
    Something wrong here?
  6. Fast-changing tools and tutorials make setup hard for beginnersUnreviewed

    8 people since 2016, in 5 different years · none this year

    2007: 0 people2008: 0 people2009: 0 people2010: 0 people2011: 0 people2012: 0 people2013: 0 people2014: 0 people2015: 0 people2016: 1 person2017: 0 people2018: 2 people2019: 1 person2020: 0 people2021: 0 people2022: 3 people2023: 0 people2024: 1 person2025: 0 people2026: 0 people
    20072026
    Something wrong here?
  7. Combined default and named import syntax confuses learnersUnreviewed

    7 people since 2010, in 7 different years · none this year

    2007: 0 people2008: 0 people2009: 0 people2010: 1 person2011: 0 people2012: 1 person2013: 0 people2014: 0 people2015: 0 people2016: 1 person2017: 0 people2018: 1 person2019: 0 people2020: 1 person2021: 0 people2022: 1 person2023: 2 people2024: 0 people2025: 0 people2026: 0 people
    20072026
    Something wrong here?
  8. Date API is hard to use, causing many bugsUnreviewed

    7 people since 2020, in 5 different years · 1 this year

    2007: 0 people2008: 0 people2009: 0 people2010: 0 people2011: 0 people2012: 0 people2013: 0 people2014: 0 people2015: 0 people2016: 0 people2017: 0 people2018: 0 people2019: 0 people2020: 2 people2021: 1 person2022: 0 people2023: 0 people2024: 1 person2025: 2 people2026: 1 person
    20072026
    Something wrong here?
  9. Days spent configuring TypeScript projects with too many choicesUnreviewed

    7 people since 2019, in 3 different years · none this year

    2007: 0 people2008: 0 people2009: 0 people2010: 0 people2011: 0 people2012: 0 people2013: 0 people2014: 0 people2015: 0 people2016: 0 people2017: 0 people2018: 0 people2019: 1 person2020: 0 people2021: 3 people2022: 0 people2023: 3 people2024: 0 people2025: 0 people2026: 0 people
    20072026
    Something wrong here?
  10. Newline-based semicolon rule is too complex to predictUnreviewed

    6 people since 2009, in 6 different years · none this year

    2007: 0 people2008: 0 people2009: 1 person2010: 2 people2011: 0 people2012: 0 people2013: 0 people2014: 0 people2015: 0 people2016: 0 people2017: 1 person2018: 0 people2019: 0 people2020: 0 people2021: 1 person2022: 1 person2023: 0 people2024: 0 people2025: 1 person2026: 0 people
    20072026
    Something wrong here?
  11. Hidden behaviour must be remembered to avoid bugsUnreviewed

    6 people since 2013, in 6 different years · none this year

    2007: 0 people2008: 0 people2009: 0 people2010: 0 people2011: 0 people2012: 0 people2013: 1 person2014: 1 person2015: 1 person2016: 0 people2017: 0 people2018: 0 people2019: 1 person2020: 1 person2021: 1 person2022: 0 people2023: 0 people2024: 0 people2025: 0 people2026: 0 people
    20072026
    Something wrong here?
  12. Type coercion results are unpredictable without memorising corner casesUnreviewed

    5 people since 2013, in 5 different years · none this year

    2007: 0 people2008: 0 people2009: 0 people2010: 0 people2011: 0 people2012: 0 people2013: 1 person2014: 0 people2015: 0 people2016: 0 people2017: 0 people2018: 0 people2019: 0 people2020: 1 person2021: 1 person2022: 0 people2023: 0 people2024: 1 person2025: 1 person2026: 0 people
    20072026
    Something wrong here?
  13. Destructuring syntax reads backwards, more confusing than assignmentUnreviewed

    5 people since 2015, in 3 different years · none this year

    2007: 0 people2008: 0 people2009: 0 people2010: 0 people2011: 0 people2012: 0 people2013: 0 people2014: 0 people2015: 2 people2016: 2 people2017: 0 people2018: 1 person2019: 0 people2020: 0 people2021: 0 people2022: 0 people2023: 0 people2024: 0 people2025: 0 people2026: 0 people
    20072026
    Something wrong here?
  14. Callback nesting makes async code hard to read and followUnreviewed

    5 people since 2012, in 3 different years · none this year

    2007: 0 people2008: 0 people2009: 0 people2010: 0 people2011: 0 people2012: 2 people2013: 1 person2014: 0 people2015: 2 people2016: 0 people2017: 0 people2018: 0 people2019: 0 people2020: 0 people2021: 0 people2022: 0 people2023: 0 people2024: 0 people2025: 0 people2026: 0 people
    20072026
    Something wrong here?
  15. Date silently converts times to local time, surprising peopleUnreviewed

    4 people since 2017, in 4 different years · 1 this year

    2007: 0 people2008: 0 people2009: 0 people2010: 0 people2011: 0 people2012: 0 people2013: 0 people2014: 0 people2015: 0 people2016: 0 people2017: 1 person2018: 0 people2019: 0 people2020: 0 people2021: 0 people2022: 0 people2023: 0 people2024: 2 people2025: 1 person2026: 1 person
    20072026
    Something wrong here?
  16. Forgetting var silently creates a global variableUnreviewed

    4 people since 2009, in 4 different years · none this year

    2007: 0 people2008: 0 people2009: 1 person2010: 1 person2011: 0 people2012: 0 people2013: 0 people2014: 1 person2015: 1 person2016: 0 people2017: 0 people2018: 0 people2019: 0 people2020: 0 people2021: 0 people2022: 0 people2023: 0 people2024: 0 people2025: 0 people2026: 0 people
    20072026
    Something wrong here?
  17. Cryptic error messages and stack traces make failures hard to diagnoseUnreviewed

    4 people since 2015, in 4 different years · none this year

    2007: 0 people2008: 0 people2009: 0 people2010: 0 people2011: 0 people2012: 0 people2013: 0 people2014: 0 people2015: 1 person2016: 0 people2017: 1 person2018: 0 people2019: 0 people2020: 0 people2021: 1 person2022: 1 person2023: 0 people2024: 0 people2025: 0 people2026: 0 people
    20072026
    Something wrong here?
  18. Constructors callable as plain functions cause silent mistakesUnreviewed

    3 people since 2013, in 3 different years · none this year

    2007: 0 people2008: 0 people2009: 0 people2010: 0 people2011: 0 people2012: 0 people2013: 1 person2014: 1 person2015: 0 people2016: 1 person2017: 0 people2018: 0 people2019: 0 people2020: 0 people2021: 0 people2022: 0 people2023: 0 people2024: 0 people2025: 0 people2026: 0 people
    20072026
    Something wrong here?
  19. Tools take seconds to process a few thousand lines of JSUnreviewed

    3 people since 2021, in 3 different years · none this year

    2007: 0 people2008: 0 people2009: 0 people2010: 0 people2011: 0 people2012: 0 people2013: 0 people2014: 0 people2015: 0 people2016: 0 people2017: 0 people2018: 0 people2019: 0 people2020: 0 people2021: 1 person2022: 0 people2023: 0 people2024: 1 person2025: 1 person2026: 0 people
    20072026
    Something wrong here?
  20. Nested promises unexpectedly flatten, causing days of confusionUnreviewed

    3 people since 2013, in 3 different years · none this year

    2007: 0 people2008: 0 people2009: 0 people2010: 0 people2011: 0 people2012: 0 people2013: 1 person2014: 0 people2015: 0 people2016: 0 people2017: 0 people2018: 1 person2019: 1 person2020: 0 people2021: 0 people2022: 0 people2023: 0 people2024: 0 people2025: 0 people2026: 0 people
    20072026
    Something wrong here?
  21. Syntax gets in the way of seeing what code doesUnreviewed

    3 people since 2011, in 3 different years · none this year

    2007: 0 people2008: 0 people2009: 0 people2010: 0 people2011: 1 person2012: 1 person2013: 0 people2014: 1 person2015: 0 people2016: 0 people2017: 0 people2018: 0 people2019: 0 people2020: 0 people2021: 0 people2022: 0 people2023: 0 people2024: 0 people2025: 0 people2026: 0 people
    20072026
    Something wrong here?
  22. Null and undefined distinction and coercion make code error-proneUnreviewed

    3 people since 2016, in 3 different years · none this year

    2007: 0 people2008: 0 people2009: 0 people2010: 0 people2011: 0 people2012: 0 people2013: 0 people2014: 0 people2015: 0 people2016: 1 person2017: 0 people2018: 0 people2019: 1 person2020: 0 people2021: 0 people2022: 0 people2023: 1 person2024: 0 people2025: 0 people2026: 0 people
    20072026
    Something wrong here?
  23. Promises and arrow functions make async debugging harderUnreviewed

    3 people since 2012, in 3 different years · none this year

    2007: 0 people2008: 0 people2009: 0 people2010: 0 people2011: 0 people2012: 1 person2013: 0 people2014: 0 people2015: 0 people2016: 0 people2017: 0 people2018: 1 person2019: 0 people2020: 1 person2021: 0 people2022: 0 people2023: 0 people2024: 0 people2025: 0 people2026: 0 people
    20072026
    Something wrong here?
  24. Tiny code changes cause initially undetectable scoping bugsUnreviewed

    3 people since 2012, in 3 different years · none this year

    2007: 0 people2008: 0 people2009: 0 people2010: 0 people2011: 0 people2012: 1 person2013: 0 people2014: 0 people2015: 1 person2016: 0 people2017: 0 people2018: 0 people2019: 0 people2020: 1 person2021: 0 people2022: 0 people2023: 0 people2024: 0 people2025: 0 people2026: 0 people
    20072026
    Something wrong here?
  25. Web app UIs render choppily and inconsistently across browsersUnreviewed

    3 people since 2014, in 2 different years · none this year

    2007: 0 people2008: 0 people2009: 0 people2010: 0 people2011: 0 people2012: 0 people2013: 0 people2014: 1 person2015: 0 people2016: 0 people2017: 0 people2018: 2 people2019: 0 people2020: 0 people2021: 0 people2022: 0 people2023: 0 people2024: 0 people2025: 0 people2026: 0 people
    20072026
    Something wrong here?

This list counts all time; the period switch above only changes the ranking. Each issue is a group of similar complaints raised by at least 3 people in 3 different months and threads. Each line under an issue is Claude Haiku's summary of one of its latest comments, not a quote; follow it to read the comment on Hacker News.

Unreviewed issues were grouped by machine: Claude Haiku labelled each comment as a usability complaint, named what it's about and summed up the problem in a line, and a small model grouped similar problems. Nobody has checked them by hand. Expect mistakes.

The newest 50 complaints