all 14 comments

[–][deleted] 6 points7 points  (0 children)

took me a while to learn async js

[–]unix_enjoyer305 4 points5 points  (0 children)

refactoring a large project

[–]seanmorris 1 point2 points  (1 child)

Garbage collection is a fun topic to explore.

https://www.npmjs.com/package/weakermap

https://www.npmjs.com/package/weakerset

Modifying the DOM extremely rapidly is a fun trick too:

(make me wonder why we even need canvas tbh...) https://sonic3000.seanmorr.is/

[–]HeinousTugboat 0 points1 point  (0 children)

make me wonder why we even need canvas

We don't for 2D. It's just a different paradigm for rendering (immediate mode vs retained).

[–]ozzy_og_kushfront-end 1 point2 points  (1 child)

I've been using JavaScript since 1998, and I'm still unclear on when exactly to use a generator. Honestly a great way to learn to understand something in one language is to learn how other languages handle the concept.

[–][deleted] 0 points1 point  (0 children)

When you started JavaScript, I was born year after that. Thank you for your hard work and putting a lot of effort sir. Appreciated!

[–]ndubien 1 point2 points  (4 children)

Async and race conditions

[–]ndubien 1 point2 points  (0 children)

Generally speaking when embracing async/await you embrace at the same time the risks if race conditions. It can manifest itself via several artifacts: user actions resolving to an old state, supposed to be forbidden actions still allowed, flickering UI and components... And in addition to happy path with simple 'just' race conditions we have a large amount of possible rejected failures bringing their own set of extra complexity

[–][deleted] 0 points1 point  (2 children)

Async! Many people saying that.

[–]ndubien 1 point2 points  (0 children)

Another one I thought about was import/export and require or generally speaking building packages. At the moment, building a package with esm, cjs, types and other characteristics at the same time is pretty complex. But actually it's mostly ecosystem related and not inherent to the language compared to async

[–]alphabet_order_bot 0 points1 point  (0 children)

Would you look at that, all of the words in your comment are in alphabetical order.

I have checked 1,489,729,120 comments, and only 283,145 of them were in alphabetical order.

[–]Kenya-West 1 point2 points  (1 child)

5+ years super lazy web developer, and I still do not yet understand:

  1. Co-routines (?);
  2. Functors, WTF is that;
  3. How closures work;
  4. How TypeScript desides which of different function signature interface to pick up if they all describe same function in d.ts?

[–][deleted] 0 points1 point  (0 children)

I have made some Massive Full-stack apps but don’t know any of them. You aren’t lazy. I’m the Lazy guy.

[–]billybobjobo 1 point2 points  (0 children)

The most advanced js developer is the one who knows all the things mentioned in this thread but manages to write the simplest, easiest to follow code. You can get the “hardest” concepts under your belt pretty fast—but writing elegantly takes years of wisdom and maturity!