I know you said you want something with real static typing, but I think it would still be worth it too check/try out Elixir.
IMO, Elixir is the functional Python. The lack of types in Elixir feels very similar to current Python. Pattern matching and guards instead of type annotations. No compile time checking. Dialyzer instead of MyPy. But unlike Python, Elixir is actively working on adding static typing that will be checked at compile time.
The language tooling, documentation, and testing is miles ahead of Python.
The language is enjoyable, easy to understand and read. It's very simple syntax. (only 15 reserved words)
You can find a lot of similar libraries in Elixir.
Django -> Phoenix
SQLAlchemy -> Ecto
Jupyter -> Livebook
Polars/Pandas -> Explorer
Numpy -> Nx
PyTorch -> Axon
SKLearn -> Scholar
XGBoost -> EXGBoost
Transformers -> Bumblebee
Prefect/ETL -> Broadway and Flow
PyO3 -> Rustler
All of this and you also get the benefits of BEAM VM. Which makes Elixir faster and more scalable than Python in majority of cases.
Yeah, yeah I was thinking about Elixir too, I like that it has a specialty (real-time, highly concurrent). It sounds like it also has a more developed ML/NLP ecosystem than I realized.
I wouldn't necessarily recommend Elixir simply due to not having static types. You should continue deliberating on whether to use OCaml or Haskell without throwing Elixir into the mix.
IMO, Elixir is the functional Python. The lack of types in Elixir feels very similar to current Python. Pattern matching and guards instead of type annotations. No compile time checking. Dialyzer instead of MyPy. But unlike Python, Elixir is actively working on adding static typing that will be checked at compile time.
The language tooling, documentation, and testing is miles ahead of Python.
The language is enjoyable, easy to understand and read. It's very simple syntax. (only 15 reserved words)
You can find a lot of similar libraries in Elixir.
Django -> Phoenix
SQLAlchemy -> Ecto
Jupyter -> Livebook
Polars/Pandas -> Explorer
Numpy -> Nx
PyTorch -> Axon
SKLearn -> Scholar
XGBoost -> EXGBoost
Transformers -> Bumblebee
Prefect/ETL -> Broadway and Flow
PyO3 -> Rustler
All of this and you also get the benefits of BEAM VM. Which makes Elixir faster and more scalable than Python in majority of cases.