web applications - ultimo - Haskell o Erlang para un planificador de curso de resolución de restricciones
taller last planner (2)
Mi consejo: elegir un idioma y obtener la codificación! Hay muchas bibliotecas que hacen interfaz con bases de datos y escriben webapps sin problemas en Haskell, y estoy seguro de que la situación es similar en el mundo de Erlang. De todos modos, los problemas interesantes y difíciles seguramente surgirán en otros lugares, en algún lugar no se puede predecir en este momento. ¡Así que ve a esos puntos problemáticos lo más rápido que puedas y comienza a criticarlos!
Buena suerte.
Estoy buscando un nuevo proyecto propio: me gustaría escribir un programador de cursos , idear una programación de cursos con una asignación óptima de cursos a salas y horarios. El problema es resolver las limitaciones , por ejemplo: no hay superposición en el espacio y el tiempo, ningún profesor enseña más de un curso al mismo tiempo, requisitos de características para un determinado curso, etc.
Tengo muchas ganas de escribir una arquitectura de dos o tres componentes:
- front end: interfaz web (AJAX)
- algo intermedio para mantener y administrar los datos: base de datos (?)
- back end: programador del curso
Básicamente, las interfaces web toman las solicitudes del usuario, por ejemplo, ingresar los datos, solicitar el planificador del curso y el planificador del curso cargará el conjunto de cursos y recursos e intentará encontrar una asignación óptima del curso.
¿Por qué quiero usar un lenguaje de programación funcional? Porque creo que lo hacen mejor al verificar restricciones con muy pocas líneas de código.
Entonces mis preguntas son:
1) Teniendo en cuenta el front-end, ¿sería más fácil usar Erlang o Haskell ? He leído algunos fragmentos de blog sobre Erlang vs. Haskell, pero eso no ayuda mucho. ¿Alguien tiene una opinión con respecto a este proyecto especial?
2) ¿Crees que es útil usar una base de datos para compartir los datos después de todo? Tengo miedo de la correspondencia entre ER y los tipos utilizados en Erlang / Haskell. ¿Existen formas superiores de almacenar los datos o será mucho más fácil para mí, en comparación con los paradigmas de ORM utilizados en el lenguaje orientado a objetos?
Es muy probable que este sea un problema muy costoso desde el punto de vista informático, a menos que esté programando para una escuela pequeña. Entonces, la velocidad del código será importante.
Los creadores y seguidores de Erlang han dicho muchas veces que su principal objetivo no son los programas rápidos (paralelismo: dividir un problema en pequeños fragmentos, calcular más rápido), sino concurrencia, ejecutar muchas instancias del mismo cálculo o acción. (Puedo encontrar citas de apoyo si tienes curiosidad).
Recomendaría Haskell porque su problema está principalmente en el dominio de los cálculos puros, no del efecto secundario.
Además, para dar seguimiento a lo que dijo @Daniel Wagner, Haskell y Erlang realmente no son lo mismo en términos de bibliotecas: Erlang en realidad no tiene una biblioteca centralizada, como Hackage o CPAN.
¡Buena suerte!