|
|
|
|
|
by microtonal
3899 days ago
|
|
Everything I used to use Python for, I can do faster in Go. The notable exception to this is statistical analysis, as Go does not have any FORTRAN bindings, whereas Python does (through Numpy & co.). golang does have BLAS bindings through gonum: https://godoc.org/github.com/gonum/blas/cgo Coming back to the main question. I use Go as my primary language these days. E.g., my dependency parser and neural net dependency parser (which uses the aforementioned BLAS binding) are written in Go: https://github.com/danieldk/dpar
https://github.com/danieldk/dparnn What I like about Go: it's C-like without the unsafety of C nor the complexity of C++. Moreover, I've found that working in Go is generally as productive as Python (short compile times, good tooling, completion in vim, lightweight package system), while being much faster and better-fit for large projects. What I dislike about Go: it's a cliché, but the lack of parametric polymorphism is jarring. |
|
godoc.org/github.com/gonum/lapack/cgo
Assuming you need float64, BLAS and LAPACK are most easily accessed through the wrapper packages godoc.org/github.com/gonum/blas/blas64 and godoc.org/github.com/gonum/lapack/lapack64. This way code can be written to either use the native go implementations or the assembly/c/fortran ones.