11 ms·
what happens at companies where there a LOT of math. Like fintech, AI, etc companies. Are there equivalents of numpy,pandas, etc for go ? what happens when yo
by sandGorgon 7y ago
what happens at companies where there a LOT of math. Like fintech, AI, etc companies.
Are there equivalents of numpy,pandas, etc for go ?
what happens when you need to deploy models ?
- kasey_junk 7y agoYou use something else. Go does well at shuffling bytes. It does ok at shuffling text. Once you leave those domains it starts to get abrasive pretty quick. It turns out lots and lots of systems shuffle bytes & text so golang has a lot of room for adoption but for now modeling, business logic, math etc are all better done in other languages.
- walterbell 7y agoWhat are some language contenders for business logic?
- EdwardDiego 7y agoDefine business logic. You want a rules engine? Java's got them by the bucketload!
- sudhirj 7y agoI’d say Java - most of our stack is in Go, but when it came to a modeling / business rules problem I found it easier to jump to Java 8+ (streams, lambdas), AutoValue for immutable objects, Google Guava for immutable data structures and built in ForkJoin system for easy concurrency and parallelism. It’s super easy to use all cores even when just using streams, which is superb.
- pwm 7y agoAt work for core domain modelling we use Haskell and for service layer code we use Go and Node. They are imho good fits for their respective problem domains.
- olalonde 7y agoHow do "core domain modelling" and "service layer" communicate if you don't mind sharing?
- sudhirj 7y agoI don’t know about the folks you asked the question to, but the stuff I work on we just use JSON. Higher traffic might justify message pack or protocol buffers.
- pwm 7y agoIf you mean operationally then it's via simple http apis, although we are in the process of moving to a fully serverless (ie. aws lambda) setup. If you mean the data exchange format then it's JSON.
- kasey_junk 7y agoThe classic ones in line of business applications are Java, C#, COBOL and VB. In analytical areas I’ve worked, Python and R are huge components. Scala seems to be the lingua franca of the data analytics stacks right now? Maybe TensorFlow will become more used which would allow more cross language (and thus go could be added to this domain) but for now its a pretty bare stack.
- chewxy 7y agoYes. Numpy equivalents: Gonum (gonum.org) and/or Gorgonia Tensors (https://gorgonia.org/tensor https://gorgonia.org/tensor). Here's a cheatsheet for when to use what: https://www.cheatography.com/chewxy/cheat-sheets/data-science-in-go-a/ https://www.cheatography.com/chewxy/cheat-sheets/data-scienc... Pandas equivalents: gota (https://github.com/go-gota/gota https://github.com/go-gota/gota) or qframe (https://github.com/tobgu/qframe https://github.com/tobgu/qframe). I deploy deep learning models with Gorgonia (https://gorgonia.org/gorgonia https://gorgonia.org/gorgonia). I have found them to usually be faster than TensorFlow or PyTorch. CUDA is a bit iffy, but works, kinda. Distributed learning, you gotta build your own which is fairly straightforwards in the library. Compile them for your target. Move the binaries to your required server. Your CI/CD tool can do that easily
- cshenton 7y agoJulia is the new scientific computing language in the same way Go is the new enterprise dev language.
- peatmoss 7y agoIt’s reasonably lispy too, but without my preferred s-expressions. It manages to feel like a better Python and a better R. Library support is getting decent, with some uniquely interesting libraries. I still find myself reaching for R more often for stats, or Python more often for quick systemsx-ish things that need a little numerical work, but overall I give Julia high marks and hope it continues to gain traction.