11

¿Está bien comenzar a usar Iron Ruby y Iron Python en los sistemas de producción? Además, ¿hay requisitos adicionales para alojarlos?¿Están listos los idiomas de "Hierro" para el horario de máxima audiencia?

Y, para los puntos de bonificación, dado que F # es un lenguaje de programación funcional de la misma manera que Python, ¿hay alguna ventaja de usar uno sobre el otro dentro de .NET Framework?

+3

Puede que le parezca interesante antes de comenzar: http://bit.ly/dl7YC9 – Lloyd

+1

Sí, como señala Lloyd, ese es un momento bastante increíblemente malo en su pregunta, allí ... – Frosty840

+7

Python no es un lenguaje funcional . – delnan

Respuesta

10

¿Está bien comenzar a utilizar Iron Ruby y Iron Python en los sistemas de producción?

Sí. Soy responsable de un sistema de software que funciona 24/7/365. No es vital la vida o la muerte, pero es fundamental la cantidad de dinero. Y usa IronPython, aunque no mucho, en su mayoría pequeños scriplets para cosas que son más fáciles de hacer en un lenguaje dinámico. Eso significa: Funciona, no interrumpe el proceso ni consume cantidades de memoria insanas sin una buena razón. Pero la base de usuarios y la "comunidad de idiomas" son mucho más pequeñas que, por ejemplo, C#, por lo que podría ser más difícil encontrar ayuda en línea.

Agregue: Sobre la "MS se cayó Iron *" - noticias: realmente no me importaría mucho sobre eso. Hay muchos buenos lenguajes que Microsoft no desarrolla activamente. Mientras exista un desarrollo activo, siempre que haga lo que usted quiere que haga y siempre que pueda encontrar apoyo si no puede entender lo que está sucediendo, debería estar bien. Pero eso es probablemente más una cuestión de gusto que un punto técnico.

Además, ¿hay requisitos adicionales para alojarlos?

Para IronPython 1.0 (que todavía se puede usar) solo necesita dos conjuntos. Para 2.0, también necesita los ensamblados DLR, pero ninguno de ellos es muy grande ni tiene dependencias externas (que yo sepa).

Y, para los puntos de bonificación, dado que F # es un lenguaje de programación funcional de la misma manera que Python, ¿hay alguna ventaja de usar uno sobre el otro dentro de .NET Framework?

Como dijo delnan, F # es un lenguaje funcional, Python no lo es. Python es un lenguaje multiparadigma que admite algunos conceptos de programación funcional como expresiones lambda o comprensiones de listas, pero también lo hace C#. F # y Python son realmente bestias muy diferentes.

Las principales diferencias son:

  • F # se compila a IL por el F # compilador (que no es un lenguaje dinámico), IronPython puede ser compilado o interpretado en tiempo de ejecución
  • F # es estático de tipos con inferencia de tipos , Python se tipea dinámicamente (la comprobación de tipos se realiza en tiempo de ejecución)
  • F # es un lenguaje funcional: admite cosas como la coincidencia de patrones, funciones de alto orden y -types, metaprogramación. Es realmente genial si necesita implementar un algoritmo altamente complejo que pueda implementarse más fácilmente en un lenguaje funcional, y desea interconectarse con el código C#. (La última parte es mi opinión personal.)
  • Python es principalmente un lenguaje OOP/imperativo.Es realmente genial para agregar scripts a una aplicación C# existente. (La última parte es mi opinión personal.)

Si nos dices más acerca de lo que quieres hacer, tal vez podamos darte más información o sugerir otras alternativas.

+1

Perdón por mi malentendido con respecto al paradigma de programación de Python, y gracias por la aclaración. Parece que Iron Python sería mejor agregar soporte de scripting a mis aplicaciones, y F # sería lo mejor para agregar algoritmos complejos (como la coincidencia de patrones). ¿Suena esto bien? – PureCognition

+0

@PureCognition: Sí, eso suena bien para mí, y así es como uso los dos. Pero si alguien más no está de acuerdo, me complacería ampliar la lista con más pros y contras. – Niki

1

F # es bueno para aplicaciones científicas y financieras. Se puede usar donde se usa Scala en el mundo de JVM. Otros lenguajes que implementan estos paradigmas son Caml, OCaml, Erlang.

+1

F # también es ideal para aplicaciones altamente concurrentes. – GregC

+0

Su comentario de concurrencia puede ser útil para seguir adelante, Greg. Gracias. – PureCognition

3

Utilizamos IronPython para compilar aplicaciones B2B en Silverlight. Nunca tuvimos problemas de rendimiento o estabilidad.

De modo que tuvimos dos aplicaciones (cada una de aproximadamente 20.000 líneas de código python en la interfaz - los backends están construidos con el framework Django o Catalyst) y estamos construyendo la próxima aplicación aún más grande.

Con un lenguaje dinámico como IronPython, es posible cambiar f.e. una función en una clase y volver a cargarla sobre una HTTPRequest. No es necesario volver a compilar, volver a cargar toda la aplicación Silverlight en el navegador y navegar hasta el punto donde los cambios de código entren en vigencia.

Recientemente, el código de IronPython se puso de la mano de la comunidad y personas como Michael Foord están haciendo un muy buen trabajo al mantener esta versión de Python up2date.

+0

spassig, ¿usa IronPython en su mayoría para crear negocios personalizables y reglas de validación que se pueden cambiar después de la compilación? – PureCognition

+1

PureCognition, construimos la lógica para toda la GUI de nuestra aplicación en IronPython (Dialoges, Charts, EventHandler, Requests, DocumentWindows, ...) – spassig

Cuestiones relacionadas