son que los false español cognates .net f#

.net - que - ¿Cuál es el lenguaje F#creado para lograr?



false cognates (5)

Me he dado cuenta cada vez más de un número creciente de recursos para desarrollar aplicaciones que utilizan el lenguaje de programación F # y la pregunta vino a la mente de qué se creó el lenguaje F # para lograrlo. ¿Está hecho para una plataforma específica, por ejemplo, aplicaciones de escritorio, dispositivos móviles y web? ¿También incluyó características que no están disponibles en otros lenguajes de programación que están actualmente disponibles para desarrollar aplicaciones .NET? ¿También es posible crear aplicaciones para el escritorio, el móvil y la web usando F # como podemos usar VB o C #? ¿También hay otros lenguajes similares a F # que puedo usar para realizar una verificación cruzada para comprender mejor cómo funciona la programación funcional?


¿Cuál es el lenguaje F # creado para lograr?

El proyecto de investigación F # buscó crear una variante del lenguaje OCaml que se ejecuta en la parte superior de la plataforma .Net. Un proyecto relacionado en MSR Cambridge, SML.NET, hizo lo mismo para Standard ML. (OCaml y Standard ML son variantes del lenguaje de ML). Las motivaciones para esto podrían haber incluido

  1. Mostrando que se puede hacer.
  2. Publicación de artículos científicos que demuestren que se puede hacer.
  3. Porque ML es increíblemente genial.

Esto no debería distraerlo del hecho de que el producto F # es un lenguaje de programación de propósito general para la plataforma .Net. Los beneficios de F # se extienden a todos los dominios. Es posible que haya usuarios que adopten F # más rápidamente (a menudo se menciona la programación científica y financiera), pero la verdadera razón de ello es que esas organizaciones están más dispuestas a adoptar nuevas tecnologías (equipos pequeños, personas inteligentes, pocos administradores).

¿Está hecho para una plataforma específica, por ejemplo, aplicaciones de escritorio, dispositivos móviles y web?

No.

¿También incluyó características que no están disponibles en otros lenguajes de programación que están actualmente disponibles para desarrollar aplicaciones .NET?

Sí. Incluyen:

  • Tipos de datos algebraicos
  • La coincidencia de patrones
  • Inferencia de tipos
  • Sintaxis sucinta
  • Expresiones de secuencia
  • Flujos de trabajo asíncronos
  • Unidades de medida

¿También es posible crear aplicaciones para el escritorio, el móvil y la web usando F # como podemos usar VB o C #?

Sí, pero las herramientas en VS2010 están incompletas. En particular, todo lo relacionado con la generación de código no está bien soportado, por ejemplo, el código WPF y el diseñador de Winforms. Esto puede no ser un problema en la práctica. Por ejemplo, WPF con MVVM funciona bastante bien.

¿También hay otros lenguajes similares a F # que puedo usar para realizar una verificación cruzada para comprender mejor cómo funciona la programación funcional?

Sí. Echa un vistazo a estos:

  • Estándar ML
  • OCAML
  • Haskell
  • Clojure

[Editar: Agregado comentario sobre herramientas en VS2010.]


Cuando intente aprovechar las ideas de la programación funcional, como el enfoque en la inmutabilidad y las optimizaciones que pueden surgir de esto, incluido el uso de la recursión final, encontrará que es posible mejorar la legibilidad del código, mejorando mantenibilidad.

Pero, al usar un lenguaje como F # es más fácil hacer programación orientada al lenguaje ( http://en.wikipedia.org/wiki/Language-oriented_programming ), a medida que crea lenguajes específicos del dominio, por ejemplo puede escribir un lenguaje pequeño para un químico donde usan los términos con los que están familiarizados para escribir ecuaciones o para modelar moléculas, y el programa puede analizar eso y reaccionar con el comportamiento esperado.

Debido a que C # está tan orientado a objetos, hace que sea más difícil que el lenguaje sea tan fácil de usar, ya que en F # puede omitir el ''.'' En las llamadas de método, Jacob buys 100 shares of IBM debido a una serie de llamadas a funciones.

La concurrencia es más sencilla debido a algunas de las construcciones, como la inmutabilidad mencionada anteriormente, por lo tanto, algunas de las características que vemos en F # probablemente ayudarán a mejorar C #.

Por lo tanto, F # ayuda a MS a ingresar a áreas, como la programación y el modelado de ciencias, ya que es mejor que C # para estas, debido a estos y otros beneficios del lenguaje.

Pero, también puede usar los ensamblados .NET, y si escribe bien su código, puede hacer las partes intensivas de matemáticas en F # y hacer que C # o VB.NET llamen sus funciones, para que podamos usar el mejor lenguaje para cada tarea.

ACTUALIZAR:

Después de leer algunos de los nuevos comentarios, un área que se ha convertido en un problema es cómo escribir un buen código que aproveche las CPU de varios núcleos. Por lo tanto, la programación funcional se ha vuelto más popular, como se ve en F #, Scala, Clojure, nombrando solo algunos, por lo que MS se involucró en esto para ayudar a los programadores a aprovechar mejor las nuevas arquitecturas de chips.


F # fue creado para llevar un lenguaje de programación funcional a .NET.

No está destinado a ninguna plataforma en particular. Según Microsoft Research , "tiene fortalezas particulares en la programación orientada a datos, la programación paralela de E / S, la programación paralela de la CPU, las secuencias de comandos y el desarrollo algorítmico". F # se utiliza para aplicaciones financieras y científicas en particular.

C # se creó para que Microsoft tenga un lenguaje moderno similar a C ya que no podían extender Java para aprovechar Windows. Fue diseñado para ser un lenguaje orientado a componentes y no está especializado para la Web de ninguna manera.

F # es principalmente un lenguaje funcional, mientras que C # y VB están orientados principalmente a objetos.

Ver también:


He encontrado algunos recursos que tocaron mi pregunta:

¿Qué y por qué elegir F #?

¿Cómo se utilizará F #?

Nueve razones para usar F #

¿Por qué debería usar F #?

¿Cuándo tiene sentido usar F # sobre C # o VB.NET?

Por lo que parece, no hay una respuesta clara, como ocurre cuando se trata de determinar el uso de un idioma en particular. Aunque nunca antes he usado la programación funcional, algunos de los ejemplos que he visto pueden ser extremadamente útiles. Parece otra gran opción al desarrollar aplicaciones .NET.


Si ves este video de Don Syme, quizás obtengas algunas de las respuestas que estás buscando.

actualización Después de ver el video, parece que lo creó porque en ese momento (1998) no le gustaba Java o lo que veía de C #, pero le gustaba la programación funcional como OCaml. Desde que trabajó para la investigación de la EM, escribió F #.

Me imagino que el genisis de varios idiomas dirigidos al cli (A #, ronPython, IronRuby, etc.) es similar.