Soy CTO de una empresa de software con una gran base de código existente (todo C #) y un equipo de ingeniería considerable. Puedo ver cómo ciertas partes del código serían mucho más fáciles de escribir en F #, lo que resultaría en un tiempo de desarrollo más rápido, menos errores, implementaciones paralelas más fáciles, etc., básicamente ganancias de productividad general para mi equipo. Sin embargo, también puedo ver varias dificultades de productividad al introducir F #, a saber:
1) Todos tienen que aprender F #, y no es tan trivial como cambiar de, por ejemplo, Java a C #. Los miembros del equipo que no hayan aprendido F # no podrán trabajar en partes F # de la base de código.
2) El grupo de programadores F # contratables, a partir de ahora (diciembre de 2010) no existe. Busque en varias bases de datos de currículums de ingenieros de software para "F #", mucho menos del 1% de los currículums contienen la palabra clave.
3) El apoyo comunitario a partir de ahora (diciembre de 2010) está menos disponible. Puede buscar en Google casi cualquier problema en C # y encontrar a alguien que ya lo haya tratado, no así con F #. El soporte de herramientas de terceros (NUnit, Resharper, etc.) también es incompleto.
Me doy cuenta de que esto es un poco Catch-22, es decir, si las personas como yo no usan F #, la comunidad y las herramientas nunca se materializarán, etc. Pero tengo una empresa que dirigir y puedo ser innovador, pero sin borde sangrante.
¿Alguna otra trampa que no esté considerando? ¿O alguien quiere refutar las trampas que he mencionado? Creo que esta es una discusión importante y me encantaría escuchar sus contraargumentos en este foro público que pueden hacer mucho para aumentar la adopción de F # por parte de la industria.