4 ms·
There are plenty of very good functional programming languages. If you prefer Haskell to Python, just go ahead and use Haskell. Python has a very specific desig
by olavk 8y ago
There are plenty of very good functional programming languages. If you prefer Haskell to Python, just go ahead and use Haskell. Python has a very specific design philosophy which is a focus of readability and the "preferably only one obvious way of doing it".
- amelius 8y agoIt's not easy to "just" switch languages. You also have to consider the ecosystem built around them. For example, I love NumPy and SciPy. > preferably only one obvious way of doing it I don't think that is true at all. Python allows you to perform many tricks, with overloading operators etc.
- olavk 8y agoYou should probably look into the JVM or .net platforms, where the same libraries are available through multiple languages. For example .net have F# which is a very strong functional language, and the JVM have Scala and Clojure. Pyhton is not really that kind of language.
- zorkw4rg 8y agoHow a language with nested list and dict comprehensions can ever claim to focus on readability is beyond me, or look at typing and the mess that leaves behind. One obvious way of doing things while simultaneously mixing oop and functions arbitrarily in their standard library even providing camelCase and snake_case aliases(!) for parts of it. And why does the base64/b64encode return bytes and hashlib/hexdigest str? Python is designed in such a strangly arbitrarily inconsistent, hypocritical and opinionated manner.
- toyg 8y ago> even providing camelCase and snake_case aliases(!) Sorry, but it's preposterous to bring up an implementation detail of the standard library that has long been in the process of being fixed. CamelCase was deprecated a long time ago in favour of snake_case; what is left of CC is for backward-compatibility and will eventually disappear. This is all documented. The standard library is not the language, it's much messier and suffers from all sorts of issues that have nothing to do with the language itself.