c# .net ironpython boo

c# - Buen lenguaje de programación dinámica para la recomendación.net



ironpython boo (8)

Bueno, después de mucho tiempo escribiendo programas .net en C # comencé a sentirme enojado y frustrado por toda esa basura sintáctica que viene con los lenguajes estáticos. Ahora quiero cambiar a lenguajes tipados dinámicamente, que aprovechen la CLI. Así que busqué un poco y no me gustó lo que vi. Primero busqué IronPython. Pero el proyecto se siente desorganizado, simplemente no se veía bien en absoluto. Entonces escuché acerca de Boo. Me gustaron los abucheos, el ideal y todo, pero parece que el proyecto se detuvo. Luego oí hablar de IronRuby, pero el proyecto todavía está en fase beta, así que decidí esperar hasta que se vuelva más maduro.

Entonces, como no pude encontrar un buen lenguaje dinámico compatible con CLR, les estoy preguntando, ¿qué usan (usted)?

Desde que la gente comenzó a preguntar cuál es la razón para no elegir IronPython. Bueno, la razón es que, como dije antes, parece desorganizado. ¿Por qué?

1- La página de inicio apunta a otra página en codeplex, la página de inicio debe estar limpia y solo señala las ventajas de IronPython, toma la página IronRuby como un ejemplo http://www.ironruby.net/ es que oculta las cosas desarrolladas por el lenguaje de la usuario (aunque el usuario tiene que acceder al svn de IronRuby antes de usarlo). ¿Qué tipo de problemas intentaba tratar IPython cuando se creó? ¿Hay una página con ese tipo de información? Bueno, la página está allí, pero está oculta en la "página de más información" entre un montón de enlaces sin sentido a los artículos. En la página de Boo está a la vista el nombre de Manifesto http://boo.codehaus.org/BooManifesto.pdf .

Hay más, pero la sensación que tengo es que IPython es solo un intérprete casero, a pesar de la calidad que realmente puede tener. Sentí que era más seguro descargar Boo y usar IronPython (pero no me preocupa Microsoft también había descargado IPython).

Acerca de Duck-Typing y la tipificación estática de Boo, ambos parecen funcionar bien para mí.


En términos de usabilidad práctica IronPython va a ser su mejor apuesta en este momento.

¿Por qué la gente sugiere Boo? Es un lenguaje estáticamente tipado, que no es lo que esta pregunta está pidiendo. Sí, sé que tiene tipado de pato opcional, pero realmente si la información relacionada con Boo es aceptable para el autor de la pregunta, entonces la pregunta realmente debería ser editada para dejarlo en claro.

En cuanto a IronPython, dijiste que no te gustaba, pero realmente no hay ninguna respuesta que pueda dar a los comentarios críticos que son tan vagos :)

Alternativamente, sugiero que eche un vistazo a cPython . Un par de puntos:

  • Puedes construir archivos .exe con py2exe y otras herramientas.
  • Acceso mucho más grande a bibliotecas y frameworks de Python de terceros
  • Acceso a las API de Windows a través de pywin32
  • La extensión de Python escrita en C es utilizable (a diferencia de IronPython, aunque hay esfuerzos en curso para mejorar esta situación)

Descubrirá que realmente no necesita .NET para la mayoría de las cosas. Por supuesto, todo esto depende de tu aplicación. Para integrarse con el código .NET existente, entonces obviamente tiene que usar IronPython.


Estoy de acuerdo con su opinión de que IronPython parece desorganizado, pero lo he estado utilizando para proyectos (pequeños) y hasta ahora he estado muy contento con él.

Si aún no lo ha visto, debería consultar IronPython Studio .


Todavía usaría Boo . No estoy seguro de por qué crees que Boo se ha detenido. El desarrollo a veces parece lento, pero hay varias personas trabajando actualmente en la corrección de errores como lo demuestra esta lista de problemas corregidos recientemente (errores) .

Para aquellos que no están familiarizados con Boo, es muy similar a Python, pero incluye cosas que Python no tiene (como la interpolación de cadenas y las macros sintácticas ). Puede compilar programas Boo o usar Boo a través del booish "Boo Interactive Shell".

Por cierto, tampoco me gustó IronPython cuando lo miré hace un par de años. Para mí, parecía un puerto directo de Python para la CLI, pero, por lo que pude ver, no incluía las nuevas características que el desarrollo de .NET requiere.

EDITAR : IronPython parece haber progresado desde la primera vez que lo vi (gracias por Curt señalar esto). Sin embargo, no me he molestado en mirar a IronPython nuevamente desde que encontré a Boo.


Usted dice que quiere "dinámica", pero si la motivación es solo para evitar "toda esa basura sintáctica", debería echarle un vistazo a F # . Tiene un tipo estático, pero tiene la sensación de sintaxis clara de un lenguaje dinámico, así como un modo interactivo (ciclo REPL).


He seguido un camino similar. Comprobado Boo, dotLISP, IronPython, etc.

Recomiendo IronPython. PERO, si todavía no tiene experiencia en Python, probablemente aprenda Core Python más rápido cargando CPython y usándolo para los ejemplos y tutoriales.

Una vez que tenga la comprensión de CPython, IronPython será mucho más fácil de entender. Por supuesto, aún necesita comprender algunos C # y tener acceso a la documentación de .Net SDK. Sin ella, IronPython es extremadamente difícil de hacer cosas útiles.


Eche un vistazo a Clojure . La versión de CLR todavía está en las primeras etapas, pero probablemente puedas obtener la versión de Java trabajando en .Net a través de IKVM


... basura sintáctica que viene con lenguajes tipados estáticamente ...

Si su preocupación es la basura sintáctica, es posible que también desee consultar los idiomas con tipado estático con tipo de inferencia, sobre todo F # .


También puedes echarle un vistazo al lenguaje Fan . No es pura dinámica, es una mezcla de ambos estática y dinámica. Y como la mayoría de los idiomas más nuevos, es OO puro con una mezcla de funcional en él. También se ejecuta en plataformas JVM y CLR.

En cuanto a la sintaxis, está más cerca de C # con mucha sintaxis de azúcar por lo que se parece al C # mezclarse con Ruby / Python.

Como el idioma es nuevo, solo tiene 3 años, su rendimiento aún no es estelar.

Actualización 21-feb-2014: Fan cambió su nombre a Fantom