¿Puede Kotlin reemplazar a Scala en ciencia de datos?

¿Podría? Seguro. ¿Es probable que lo haga? Probablemente no. Definitivamente no pronto. Scala se usa ampliamente en la ciencia de datos porque las personas que escriben marcos de big data como Spark y Kafka optaron por usar Scala. La razón por la que eligieron usar Scala se debe a que esos proyectos necesitan escalar bien, y escalar hacia arriba y hacia afuera es un área en la que Scala destaca. Los fuertes aspectos funcionales de Scala benefician enormemente el paralelismo, y se han escrito muchas bibliotecas específicamente para mejorar el soporte paralelo de Sccala. El hecho de que Scala tenga un buen soporte para DSL hace que el código de la biblioteca paralela sea más transparente que en muchos otros idiomas.

Kotlin es básicamente un Java mejorado, lo que significa que fue construido para ser programado de manera imperativa, OO. Eso no es algo malo en general, pero significa que Kotlin carece de las características que atrajeron a los creadores de marcos de big data a Scala en primer lugar. No veo una gran motivación para que se muden de Scala a Kotlin en este momento.

Absolutamente, pero déjame explicarlo. Para mí, hago cosas de “ciencia de datos” tanto profesional como personalmente. Actualmente uso Kotlin en mi casa para:

1) Recopilar datos de muchas fuentes diferentes.

2) Transformar y ahorrar en Hadoop y Redis.

3) Ejecute el tipo de análisis de agrupación de KMeans en dichos datos. Escribí el código para hacer esto yo mismo (en Kotlin).

4) Ejecute un servidor web que aloja ese análisis siempre cambiante.

5) Ejecute aplicaciones de Android e iOS para consumir dicho análisis (me gusta verificarlo mientras camino). RoboVM toma el código Kotlin compilado y AOT lo compila en iOS; Kotlin funciona perfectamente con Android.

Todo en Kotlin.

Utilizo Kotlin para alojar actores de Akka (que es una biblioteca escrita en Scala) muy bien. Realmente, cualquier cosa que puedas hacer en Java, puedes hacerlo en Kotlin que he encontrado.

No me sorprendería si la adopción de Kotlin se disparara en los próximos años por las siguientes razones:

1) Kotlin y Java coexisten perfectamente, por lo que no hay razón para que uno tenga que reemplazar al otro para que funcione. ¿Definir una interfaz en Java e implementarla en Kotlin? Seguro. ¿Definir una interfaz en Kotlin e implementarla en Java? Sí. ¿Definir una clase en Kotlin e instanciarla en una clase Java? Fácilmente.

2) La sintaxis de Kotlin es idéntica a Swift (o debería decir que la sintaxis de Swift es idéntica a Kotlin, ya que Kotlin ha existido por más tiempo). Por lo tanto, un desarrollador de Swift que venga a JVM land se sentiría cómodo en ese sentido. Además, Kotlin fue creado por expertos en C # (yo fui desarrollador de .NET durante muchos años, ReSharper era básicamente un requisito para Visual Studio. IntelliJ tiene todo lo que ReSharper hizo y más, y esas mejoras también están integradas en Kotlin).

3) Kotlin mejora en Java (sí, incluso 8) de muchas maneras en forma y función.

Mis (muy obstinados) dos centavos …