Using range() allows for the creation of reusable iterables, while reversed() creates a non-reusable iterator, leading to potential iteration issues in nested loops.
I think the ergonomics of generators is growing on me.
The new JavaScript syntactic sugar introduced in recent years, like arrow functions and template literals, addresses many real pain points, enhancing programming efficiency.