Pregunta

Como desarrollador de C# desde la versión 1.0, F# ha capturado mi tiempo libre durante las últimas semanas.Los ordenadores ahora se venden con 2, 4..Los núcleos y los subprocesos múltiples no siempre son fáciles de lograr.

Por el momento veo que F# tiene un gran potencial para cargas de trabajo complicadas o pesadas.¿Cree que F# (una vez RTM) se convertirá en un actor importante en el mercado de software empresarial?

¿Fue útil?

Solución

Creo que, independientemente de si F# se convierte en una importación para el software empresarial, la capacidad de aislar porciones de código puramente funcionales en cualquier idioma será clave para aprovechar el potencial de las computadoras multinúcleo.Por ejemplo, las Extensiones Paralelas de Microsoft para .NET son geniales, pero todavía hay mucho margen para cometer errores al paralelizar código que no se puede ejecutar en paralelo.Si el código tiene la forma de un lenguaje puramente funcional o un subconjunto de su lenguaje que es puramente funcional, entonces tiene la seguridad de que puede ejecutarlo en paralelo.El truco consiste entonces en descubrir la forma más eficaz de asignar el trabajo.

El papel que juega F# en esto, diría yo, sería más bien un catalizador para mojar los pies de la gente y empezar a pensar de una manera más declarativa.

Otros consejos

Creo que F# tiene una gran oportunidad para avanzar en algunas de las áreas específicas de las aplicaciones empresariales, como el modelado matemático (p. ej.para aplicaciones bancarias/comerciales).Eliminar los efectos secundarios de las funciones también genera grandes oportunidades para el paralelismo y la memorización.Es difícil decir si estos lenguajes alguna vez despegarán para el desarrollo generalizado, pero en mi opinión es más probable que los problemas estén orientados a los humanos (es decir,falta de habilidades y alta curva de aprendizaje para personas familiarizadas con lenguajes más típicos como c#/java/c++) en lugar de técnicos.

Lo que creo que veremos es que algunas cosas funcionales migrarán a C#, como el aumento del uso de tipos inmutables y el marcado de funciones como puras, etc.No veo que F# tenga un papel más amplio en el desarrollo empresarial, es demasiado desconcertante para el desarrollador promedio.

C#/VB siempre serán los lenguajes principales, pero F# ​​es mejor en problemas complejos.C# tiene un propósito más general, mientras que F# es mejor en IA, estadística, ciencia (encontrar la cura del cáncer, por ejemplo), etc.F# nunca reemplazará a C#, pero permitirá que .NET compita en más campos de la informática.En cuanto a la extracción de datos y el procesamiento de grandes cantidades de datos, es mejor desarrollarlos directamente dentro de la base de datos, como SQL Server u Oracle.

En cuanto a que F# sea difícil de aprender, es sólo porque nos "corrompió" la forma imperativa de pensar en la mayoría de los otros lenguajes.¡Es difícil desaprender algo que haces durante 5 años!Además, en mi experiencia, es un placer usar ocaml y F#.La única queja que tengo sobre F#/Ocaml es que la mayoría de las veces la gente hace un uso excesivo de la inferencia de tipos, lo que hace que el código sea ilegible.Prefiero declarar tipos de variables para que sea más fácil de mantener.

Creo que F# siempre será un lenguaje de nicho, en comparación con VB/C#/Java, porque requiere más experiencia en matemáticas o informática.Sin embargo, el hecho mismo de que sea un lenguaje CLR significa que tendrá una exposición mucho mayor que los lenguajes funcionales anteriores.

Trabajo en un banco de inversión y ya estamos usando F# para algunos propósitos de secuencias de comandos ad hoc, estamos muy interesados ​​en ver una versión lanzada de F# para que podamos considerar una integración más formal en nuestros sistemas (aunque es probable que sigan siendo fundamentalmente Basado en C#).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top