Interesante (y polémico) este artículo de Moshe Kranc (CTO, Ness Digital Engineering) en DZone.

En él se cuenta como hace 5 años Scala parecía ser el próximo gran lenguaje de programación ya que permitía trabajar con la programación funcional dentro de un paradigma OO, y como ahora parece que su popularidad está cayendo con compañías como Linkedin alejándose de él. En el índice TIOBE (www.tiobe.com) de la popularidad de los lenguajes software Scala estaba en el #13 en 2012 y en agosto de 2016 están en el #32 siendo utilizado por menos del 0,6% de la comunidad de programación.

Además si compañía padre, Lightbend, está sacando nuevos frameworks con un API Java antes que una versión Scala.

Se comentan también ventajas e inconvenientes del uso de Scala como:

• Scala combina la programación funcional con la programación orientada a objetos. Puede servir como un puente para los programadores OO que entran en el mundo de la programación funcional.

• Scala se ejecuta en la máquina virtual de Java (JVM), por tanto puede desplegar en cualquier máquina que ejecute Java. Y además puede interoperar con Java.

• Scala es sintácticamente similar a Java. Esto reduce la curva de aprendizaje inicial para programadores Java.

• Scala ha incorporado sporte para pattern-matching

• Scala incluye Akka como una biblioteca estándar,

• Java ofrece desde Java 8 (2014) programación funcional, aunque su enfoque sea más complejo tiene la ventaja de su amplia comunidad

· Scala es un lenguaje difícil de dominar. Un programador excelente será más productivo en Scala que en Java pero un programador medio probablemente será menos productivo al pasar de Java a Scala (y no sólo n los primeros meses).

· A diferencia de Java, Scala tiene una sintaxis flexible y normalmente ofrece muchas maneras de lograr el mismo resultado final. Pero esto no es sólo una ventaja, ya que en lugar de hacer Scala más fácil de usar para los programadores promedio hace que no haya muchos patrones de implemetnación que existen en otros lenguajes como Java

· Scala no ha hecho un buen trabajo de mantener la compatibilidad, ya sea con versiones anteriores de Scala o con Java.

Según el autor debido a estos problemas, Scala probablemente nunca se conviera en un lenguaje de programación mainstream como Java, aunque hay casos de uso específicos donde Scala es un lenguaje ideal:

· Entornos Big Data Para herramientas como Spark, las ventajas de utilizar Scala sobre Java son abrumadoras (ena versión Scala de un programa será usualmente 5-10 veces más corto que el programa Java equivalente)

· Creación de DSLs: Scala es especialmente adecuado para el desarrollo de una DSL, gracias a características tales como la coincidencia de patrones, la flexibilidad sintáctica y la sobrecarga de operadores.

Leer más

Anuncios