> Python aborts almost immediately whenever it can
doesn't sound very strong
Re:Go+: Go designed for data science
by moron4hire on Saturday March 27, 2021 @07:41PM
(#26606679)
Runtime type checking is most definitely not what people mean when they talk about strong type systems.
Re:Go+: Go designed for data science
by reikonomusha on Saturday March 27, 2021 @08:11PM
(#26606859)
Strong != static.
I love python, and I don't know if the GP are good points, but your answer is really disengenuous.
> > pattern matching
> We have that in Python 3.10.
> > immutability-by-default for lists and dictionaries
> We do have tuples and frozendict.
3.10 like the version that is not released yet?
Tuples an frozendicts, so precisely non default list and dicts?
The tools are there but you don't like their names.
Neither tuples nor frozen dicts offer efficient (logarithmic or constant time) updates, like lists or balanced trees or HAMT do. You can't really write a program with only immutable structures in python, unless you accept it will be unbearably slow, even for python. Clojure, erlang, elixir, these are dynamically typed and functional.
It's a myth that dynamic languages can't have strong types. Python aborts almost immediately whenever it can. For instance, adding a number to a string? Exception. Accessing undefined properties?
Furthermore there's a language-standard static type checker, mypy.
> pattern matching
We have that in Python 3.10.
> immutability-by-default for lists and dictionaries
We do have tuples and frozendict.
Arguably its implementations of functional features are much weaker than "truly" functional ones such as Lisp, Haskell, OCaML or F#.