From pragmatic standpoint that is not an issue that people are facing today, neither their is any indication that it is affecting design of mainstream languages now. The point of using list.filter { it.isGood() } is to replace imperative code with declarative, functional one — thinking more about what you want to get, as opposed to how exactly you want to get, and avoid writing the same imperative boilerplate over and over again. In practice, most of the functions in a well-designed modern code are pure anyway, but you can take a look a language popularity charts again to confirm that nobody is jumping to enforce 100% purity.

Written by

Project Lead for the Kotlin Programming Language @JetBrains

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store