En mi búsqueda de convencer clientes conservadores que es tiempo de usar nuevos lenguajes como Scala y nuevos framework como Lift , me encontré con el caso particular de los "clientes MS". Algunos de estos usan Visual Basic, T-SQL y programación estructurada. En primera instancia, descarte por completo tratar de convencer este tipo de cliente: lograr que adopten, programación Orientada al Objeto, programación Funcional y un servidor de aplicación Java me pareció una tarea casi imposible.
No obstante, lo estoy repensando porque MS demostró algo que estos clientes entienden muy bien:
- una maquina virtual puede/debe soportar múltiples lenguajes,
- se usa el lenguaje más apropiado a cada problema y a la capacidad del grupo de desarrollo,
- si se usa un solo set de API's, es relativamente fácil pasar de un lenguaje a otro.
Si se compara con el mundo Java: a pesar que la JVM soporta hace rato múltiples lenguajes, la tradición es que todo se programa en Java y se cambia la API/framework según el problema a resolver o la capacidad del grupo de desarrollo. Entonces, hay una barrera que se tiene que romper en Java y que no existe en el mundo .Net.
Además, MS esta bastante activa con los lenguajes funcionales y los posiciona como solución a la crisis del multi-core. El creador de F# habla bien de Scala y Haskell sigue siendo una referencia para el control de los efectos colaterales con su soporte STM
En resumen, MS esta demostrando porque se requiere un cambio de paradigma y que este cambio puede ser incremental sobre su maquina virtual (con F# y Haskell). Voy a usar estos mismos argumentos, cambiando la CLR de .Net por la JVM de Java, F#/Haskell por Scala y STM por la API Actor.
Fácil.