4 ms·
The pop culture of software engineering is tragic. Legitimate complaints about ergonomics and performance (linked lists are bad) are mixed here with pitiable ig
by gue5t 9y ago
The pop culture of software engineering is tragic. Legitimate complaints about ergonomics and performance (linked lists are bad) are mixed here with pitiable ignorance (the problem with higher-order functions is... passing functions by name rather than making the inner application explicit? which is addressed by... eta-abstracting them, while not explicitly applying the resulting closure?). The author confuses partial application for partial evaluation, when the actual complaint seems to be about functions being curried by default: https://en.wikipedia.org/wiki/Currying#Contrast_with_partial_function_application https://en.wikipedia.org/wiki/Currying#Contrast_with_partial...
There are legitimate complaints about the annoyances of threading state through pure functions, but these have been made much more cogently by other sources within the "functional programming" community: Haskell has no end of blog posts about the utility of do-notation to provide the appearance of mutability while leaving state-manipulation implementable in pure, easily-unit-tested code, and early return can also be captured with monadic notation.
The naïve rejoinder to this approach is "why use a pure language if you're just going to emulate mutation?". The answer is that it lets you reuse the pure computations that transform state in other parts of your code without having to create dummy mutable objects for them to modify, and you have guarantees that unrelated state is not perturbed; this enables purely local reasoning which keeps code easy to understand.
Presumably this is to be considered worthwhile reading because the author has a job at Facebook. It's shameful that we implicitly support the cult of corporation-worship that assumes companies wielding great social power also confer supernatural programming skill or insight on their employees (by powers of selection or mere post-hoc association).
- canadaduane 9y agoLanguages are competing for attention and mindshare. It's important to consider new user experiences both from a marketing as well as a product improvement standpoint. Right now, javascript is winning.