Remix.run Logo
teleforce 8 days ago

Dlang does not has rank polymorphism and it handle array just fine with crazy speed in both compilation and execution.

It can be faster than Fortran based library that is still being used by Matlab, Rust and Julia [1].

It will be interesting to compare Mojo moblas BLAS library with GLAS library performance in D.

[1] Numeric age for D: Mir GLAS is faster than OpenBLAS and Eigen (2016):

http://blog.mir.dlang.io/glas/benchmark/openblas/2016/09/23/...

cdavid 8 days ago | parent | next [-]

If I understand correctly what is meant by rank polymorphism, it is not just about speed, but about ergonomics.

Taking examples I am familiar w/, it is key that you can add a scalar 1 to a rank 2 array in numpy/matllab without having to explicitly create a rank 2 array of 1s, and numpy somehow generalizes that (broadcasting). I understand other array programming languages have more advanced/generic versions of broadcasting, but I am not super familiar w/ them

pjmlp 7 days ago | parent | prev [-]

Unfortunely, while the community is great, what it doesn't have is a direction, thus keeps pivoting every couple of years, and with that lost the adoption opportunity window it had a decade ago.

teleforce 7 days ago | parent [-]

Form is temporary, class is permanent.