Son opciones muy similares. Haskell y Scala han desarrollado modelos de programación funcional y sistemas de tipos muy completos, y se basan en muchos de los mismos conceptos subyacentes. Esto no es una sorpresa, porque varios de los contribuyentes principales de Scala también son miembros de la comunidad de Haskell, y la comunidad de Scala en general parece tener una cultura de aprender de los demás y copiar sus mejores ideas, lo cual es un gran soplo de frescura. aire, ya que la mayoría de los lenguajes de programación parecen tener una actitud significativa de “no inventado aquí”.
Algunas respuestas han dicho que es más fácil encontrar un trabajo con otros idiomas, y creo que esto es completamente incorrecto. Es cierto que el número absoluto de, por ejemplo, trabajos de Python es mayor que el número de trabajos de Scala, pero la pregunta relevante es la proporción de trabajos disponibles para los solicitantes calificados. Hay muchos menos desarrolladores calificados de Scala que desarrolladores de Python, por lo que es muy probable que le resulte más fácil encontrar un trabajo con Scala.
En términos de elegir específicamente entre Scala y Haskell, aquí hay algunos factores que pueden inclinar su decisión de una manera u otra:
- Quiero dominar el desarrollo web front-end. ¿Debo ir a cursos en línea o comprar un libro y practicar por mi cuenta?
- Actualicé a 4.2.2 con WordPress y ahora no puedo acceder a la función de administrador del sitio. Peor aún, el sitio en sí muestra un mensaje de error codificado (falta el argumento 2, etc.) en la parte superior de la pantalla y no puedo desplazarme hacia abajo. Cualquier ayuda / dirección sería muy apreciada?
- Sé HTML5, CSS3, JavaScript, jQuery lo suficiente como para hacer un trabajo. Sin embargo, no me considero un experto en estas áreas. ¿Cómo puedo mejorar?
- Necesito diseñar una aplicación web de gestión del tiempo, ¿es mejor codificar el módulo de calendario desde cero o existen soluciones existentes que pueda usar con JavaScript?
- Necesito una API de servicio de verificación de SMS en mi aplicación. Tengo servicios como Nexmo, Plivo y Twilio como mis opciones. ¿Hay algún servicio que tenga una buena respuesta en India? ¿Qué servicio de verificación de SMS debo usar?
- Scala tiene algunos recursos de aprendizaje muy buenos, en particular la programación funcional en Scala y la programación funcional en los cursos de Scala Coursera. En contraste, los recursos de Haskell, la OMI, son sustancialmente más débiles. Leí Learn You a Haskell for Great Good !, Real World Haskell y Programming in Haskell, y descubrí que a los tres les falta bastante en términos de exposición.
- Scala tiene mucho soporte para análisis y aprendizaje automático en grandes conjuntos de datos, incluidos Spark, Akka y Kafka. Si está interesado en trabajar con grandes conjuntos de datos, Scala es una excelente opción.
- Las bibliotecas Haskell tienden a tener una mejor calidad de código promedio. Haskell y Scala te permiten escribir un buen código, pero Haskell hace que sea bastante difícil escribir mal, mientras que Scala lo hace relativamente fácil.
- Las bibliotecas Haskell tienden a tener una mejor seguridad de tipografía, por ejemplo, escucho mejores cosas sobre OpalEye que Slick.
- Scala tiene muchas, muchas más bibliotecas disponibles que Haskell, y este efecto se magnifica cuando se tiene en cuenta la interoperabilidad JVM. Esto tiene aspectos positivos y negativos: para cualquier tarea que desee hacer, lo más probable es que alguien haya escrito bibliotecas Scala o Java para manejarla. OTOH, esto significa que generalmente tiene que mantenerse al día con más bibliotecas y tener que tomar más decisiones, lo que puede ser un inconveniente, especialmente al comenzar.
- Si conoces personas con experiencia en Scala o Haskell, diría que ese idioma es muy útil para poder pedir ayuda a un experto cuando estás atrapado, y ese factor probablemente domina otras consideraciones.
Sin embargo, en general, no te preocupes demasiado: ¡ambos son excelentes idiomas con excelentes comunidades, por lo que aprenderás mucho sin importar lo que elijas!