2008-12-22 7 views

Respuesta

15

F # es un lugar perfecto para comenzar a aprender idiomas funcionales. Si le preocupa que el conocimiento F # no se aplique a otros lenguajes funcionales, no debería hacerlo. F # es miembro de la familia de idiomas ML. Microsoft simplemente lo modificó un poco para que funcione bien con .NET.

Luca Bolognese dio un amazing presentation en F # en PDC 2008. Recomiendo encarecidamente que lo mire y decida por usted mismo si F # merece la pena aprender.

+0

Gran presentación. Me muestra la necesidad de aprender F #. –

12

Vale la pena echar un vistazo a los lenguajes de programación que te hacen pensar diferente, y si eres un desarrollador de C#, F # es probablemente el lenguaje de programación funcional que encontrarías más accesible.

Incluso si decide que no desea desarrollar aplicaciones en F #, la experiencia de usar F # podría cambiar la forma en que escribe C#.

3

Usted dijo: "¿Debería aprender lenguajes de programación funcionales en general?"

Si quiere entender la programación en un nivel más profundo, le digo que debería hacerlo. Aprender LISP fue una aventura reveladora para mí. Fue muy difícil al principio. Y luego, un día como por arte de magia, fue natural para mí. Eso solo puede ser mejor para su capacidad de ver los problemas de diferentes maneras.

3

Aprendí Prolog hace mucho tiempo y sigue siendo mi idioma favorito en muchos aspectos. Ahora Prolog no es solo un lenguaje funcional sino también un lenguaje AI, sin embargo, hace algún tiempo aprendí Erlang, que está basado en Prolog. Puedo recomendarle que aprenda estos dos idiomas a medida que aprende mucho que beneficia su desarrollo cotidiano en, por ejemplo, C#.

Si hoy aprendiera un nuevo lenguaje funcional, probablemente sería F #, ya que será un ciudadano de primera clase de la plataforma .Net. Creo que F # es el lenguaje funcional (bien multi paradigma) en el que tendrás mayores posibilidades de ser productivo.

1

¿Será útil en el desarrollo de aplicaciones 'comunes'? No particularmente, no más ni menos que c o C# es de todos modos. No es RAD, por lo que no hay atajos disponibles en F # que te acerquen más al lanzamiento de una aplicación 'común' más rápido que cualquier otro lenguaje que no sea RAD.

Por otro lado, para programas que son más de computación que presentación, F # puede estar más cerca del dominio de la aplicación que otro idioma. Los lenguajes funcionales hacen que el manejo de ciertos dominios problemáticos sea mucho más intuitivo.

Personalmente, creo que vale la pena aprender, no porque va a resolver todos sus problemas, sino porque cada programador que merezca la pena tener en cuenta al menos un lenguaje funcional. Una gran cantidad de conceptos programáticos aparentemente barrocos se hacen más transparentes cuando el concepto de programación funcional está flotando en tu cabeza.

Otra preferencia personal mía; Me gustan los lenguajes de programación con un sistema de tipo sólido y diverso. No me gustan las estructuras de cuerdas de zapatos en tipos que no tienen una coincidencia conceptual muy fuerte.Los sistemas de tipo ML, en mi opinión, le permiten construir tipos con una granularidad mucho más fina que los sistemas de tipo convencional. Como resultado, creo que puedo escribir código que interactúa con estas estructuras de una manera más natural con lenguajes de estilo ML como F #.

Si bien esto no ayuda mucho con conceptos comunes, que tienen conjuntos de características para admitirlos en más idiomas convencionales, para cualquier cosa que sea remotamente poco común, preferiría F # a la mayoría de los demás idiomas.

Cuestiones relacionadas