Hacker News new | ask | show | jobs
by brzozowski 2134 days ago
As a grad student who has been using Kotlin in research for the last few years, it can also be a great language for data science. Kotlin is one of the few statically typed languages with scripting and Jupyter notebook support, and offers some great features for parallel and asynchronous data processing. Once you set up a project and import the right dependencies, the workflow really clicks. It works smoothly with the JVM and JS ecosystems, which have a bunch of fantastic libraries for data processing and visualization. Happy to answer any questions about using Kotlin for DS/ML if anyone’s curious.
1 comments

How about tooling/the ecosystem? Python has all the scipys, pandas, scikits, tensorflows, pytorches.
The tooling is ahead in some ways and behind in others. As a statically typed language, Kotlin's autocompletion and static analysis is already miles ahead. More broadly, the JVM has a rich ecosystem of libraries for data processing, from natural language processing (CoreNLP) to big data analytics (Spark). If you're looking for something similar to Pandas/Numpy/Matplotlib, maybe check out Krangl [1], EJML-Kotlin [3] or lets-plot [4]. There are also efforts to port TensorFlow [5] and PyTorch [6] to the JVM. While not all libraries as mature as their Python cousins, there are a growing number of native libraries and JVM wrappers for scientific computing, which provide most of the functionality and are very ergonomic to use in Kotlin.

[1]: https://github.com/holgerbrandl/krangl

[2]: https://github.com/mipt-npm/kmath

[3]: https://github.com/lessthanoptimal/ejml/tree/SNAPSHOT/main/e...

[4]: https://github.com/JetBrains/lets-plot-kotlin/

[5]: https://github.com/tensorflow/java

[6]: https://github.com/pytorch/java-demo