4 ms·
I think these problems go even deeper. Languages have patterns which are used at the architectural level, too, and an infrequent developer will miss those patte
by kerkeslager 9y ago
I think these problems go even deeper. Languages have patterns which are used at the architectural level, too, and an infrequent developer will miss those patterns.
A good example of this is generators in Python. Generators have become pervasive in Python 3, but infrequent users of Python will often prefer lists to generators. This will result in pretty large memory and performance overheads in rare cases, but more often it just results in inconsistent code.
At the most extreme, infrequent users can have such an effect that they affect the language. JavaScript has had a prototypical object model for over a decade, but ES6 adds classes because too many infrequent JavaScript developers from other languages couldn't be arsed to understand prototypes. The result is that now there are two object models which are incompatible at the edges (yes, classes are technically implemented on top of prototypes, but the pattern the class expands to is an anti-pattern in a prototypical object flow).