Which compiled programming language to learn after R



There have been some discussions on this forum in the past about which programming language to learn after R (eg here), with some good suggestions.

However, I would like to probe you people with a more targeted question: which compiled programming language would it be best to learn after R for a data scientist interested in data engineering?

A bit of context. Where I work most development is done in C#. However, JVM languages seem to be a better choice for a data scientist who wants to expand his data engineering skills (think kafka and spark). So I have been thinking of learning a language that compiles to the JVM.
Here three choices appear: java, kotlin and scala. Both kotlin and scala are interoperable with java; kotlin seems like a "better java", while scala seems a more advanced, FP first language.
Any opinions on which of these would be best to know for a data scientist fluent in R/javascript and who wants to expand his knowledge of data engineering? And on their possible integration with R?


If it's integration with R you're after, I think you should seriously consider C++. The Rcpp package gives R fantastic support for C++ code (either compiled on-the-fly or beforehand), and it's the engine by which a lot of R code is optimised.

The other languages I'm less familiar with, unfortunately. Kotlin looks interesting to me, but I don't know how much it's being used outside of Android development (not saying that rhetorically—I haven't looked into it enough!). Java I'm not quite ready to go back to (I did it and C++ when I was younger; I wish I'd started with a fun language like Python or R :laughing: ), but for sheer ubiquity in enterprise settings you can't beat it! Scala I'm absolutely clueless about, sorry :sweat_smile:

One weird side note as someone else who's into R and has been working on the JS side lately: I've been holding a torch for game development since high school, and the Unity engine always interested me because it supported both C# and a weird flavour of JS. I'd intended to play with it using that JS flavour, but I wasn't thrilled with it. If you have R and JS datavis skills and wanted to take those in a different, less data engineering focused direction, you could learn C# and tinker with pushing data into Unity.