https://kotlinlang.org logo
Title
a

asad.awadia

12/09/2020, 4:34 PM
Is anyone using kotlin for data science in production?
a

ashmelev

12/09/2020, 4:53 PM
I am using a D/L model in Prod, yes. Converted from Java and based on
deeplearning4j
. Working on a much more sophisticated model as well
a

asad.awadia

12/09/2020, 4:57 PM
How has it been? Specially around why kotlin iver python type questions
m

Michal Harakal

12/09/2020, 5:18 PM
There is a great article about advantages of statically typed languages comparing to python. https://www.47deg.com/blog/getting-started-swift-tensorflow/ Despite it being swift, you can apply the most of arguments to Kotlin too. For me has Kotlin other great benefit, the tooling(Idea, gradle etc.). I didn't trying swift under the linux yet, not because I like it or not, because just already setup alone is quite complicated and Swift is in the version 5.0 already. Another great strength of Kotlin is the Multiplatform game, so lets see. Also not to forget the Software 2.0 story on Kotlin by Facebook ...
a

asad.awadia

12/09/2020, 5:19 PM
Static typing wont help if all the ML stuff required doesn't exist lol
a

ashmelev

12/09/2020, 5:51 PM
Oh, it was easy. the project also uses a Hazelcast IMDG (https://hazelcast.org/) and distributes the model data across a number of servers in a Kubernetes cluster - so classifications are done using "local" data making for ultra-fast <(<10ms) response times. Python's threading model disallows this type of thing (along with running Hazelcast in "embedded" mode which increases performance dramatically). Basically, Python is great for research, not so wonderful in production
a

asad.awadia

12/09/2020, 5:53 PM
Where are you deployed? Hazelcast doesnt work on cloud because multicast is disabled right?
a

ashmelev

12/09/2020, 5:53 PM
There's plenty of ML/DL code available for Java - in the SMILE library and deeplearning4j. What's missing (mostly) is the "discovery" aspect. Once you understand which model/algorithm is best suited, converting code to Kotlin (Java) is pretty trivial - and then training and execution is 40X
Deployed in AWS EKS. Hazelcast (and Jet) have a Kubernetes plugin - everything works very reliably even when scaling EKS and/or replica counts
a

asad.awadia

12/09/2020, 5:55 PM
I see - thanks!