Axum es un proyecto de investigación. Un proyecto de investigación real , donde solo ideas de él terminarán en productos. (A diferencia de F #, que se convirtió en un producto completo). Ni siquiera estoy seguro de que la licencia permita su uso para desarrollar aplicaciones de producción.
F # es una buena elección.
Clojure también se ejecuta en la CLI, y es una buena opción, también.
El puerto CLI de Scala está actualmente en proceso de resucitación (con financiación oficial de Microsoft, en realidad), y las bibliotecas Scala's Actor (ambas integradas, así como Akka) son bastante buenas.
En referencia al comentario de @ wmeyer anterior: Scala en sí no tiene ninguna disposición para la programación distribuida. (Tampoco lo hace Clojure). Ambos generalmente se basan en la miríada de frameworks Java que existen para ese propósito, como Terracotta. Sin embargo, Akka tiene tienen actores remotos para programación distribuida, y Akka es en gran medida compatible con API con la biblioteca incorporada Scala Actor, que permite una transición sin problemas.
Erlang sería genial. Kresten Krab Thorup está trabajando actualmente en Erjang, una implementación de Erlang en la JVM, y tiene algunos resultados bastante impresionantes: corriendo en HotSpot, Erjang escala de manera comparable a BEAM, a veces incluso mejor. Por ejemplo, en el (in) famoso benchmark de anillo de proceso con 10000 procesos, Erjang arranca solo un poco más lento que BEAM, pero cuando repites la carrera varias veces y el JIT entra, supera a BEAM después de aproximadamente 3 carreras (y curiosamente , BEAM comienza a desacelerarse después de 4 carreras).
Estoy bastante seguro de que podrías construir un "#rlang" en el DLR y el TPL que funciona igual de bien.
¿Quiere decir, cuál es el mejor lenguaje .Net para construir sistemas distribuidos? –
Creo que debe separar claramente entre sistemas de subprocesos múltiples (use 1 o más procesadores en 1 máquina) y sistemas distribuidos (use múltiples máquinas). Erlang es bueno para ambos tipos de sistemas, mientras que Scala es bueno para sistemas de subprocesos múltiples, pero no tanto para la construcción de sistemas distribuidos (AFAIK). – wmeyer
@wmeyer es un buen punto, aunque lo mejor sería algo como erlang, en donde realmente no le importa y se puede mover de una configuración de múltiples procesos a una configuración de múltiples sistemas sin mucho cambio de código. Pero es bueno saber que Scala no funciona bien para los sistemas distribuidos, no estaba al tanto de eso. – Mike