2008-10-05 14 views
9

Bueno, después de mucho tiempo escribiendo programas .net en C# Empecé 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 escuché hablar de IronRuby, pero el proyecto todavía está en fase beta, así que decidí esperar hasta que se vuelva más maduro.Buen lenguaje de programación dinámica para la recomendación .net

Así que como no pude encontrar un buen lenguaje dinámico compatible con CLR, les pregunto qué usan (¿deberían usar?).

Dado 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 señalar las ventajas de IronPython, tome la página IronRuby como un ejemplo http://www.ironruby.net/ es que oculta el lenguaje desarrollado por el usuario (aunque el 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 se encuentra claramente identificado como 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 tipificación estática de Boo parece que ambos funcionan bien para mí.

+0

La página de inicio de IronPython * es * el sitio de Codeplex: http://www.codeplex.com/IronPython –

Respuesta

7

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 se demostró en this list of recently fixed issues (bugs).

Para aquellos que no están familiarizados con Boo, es muy similar a Python, pero incluye cosas que Python no (como string interpolation y syntatic macros). Puede compilar programas Boo o usar Boo a través de "Boo Interactive Shell" booish.

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.

EDIT: 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.

+0

Hmm, creo que tienes razón. Supongo que estaba buscando en el lugar equivocado, pero sobre su usabilidad, ¿cree que se puede usar en aplicaciones de tamaño mediano? – Diones

+0

¿Y qué IDE usas para programar Boo? – Diones

+0

Aparte de LINQ (que es un poco difícil de calzar en Python sin hacer cambios en el lenguaje central - comentarios de "abrazar y extender"), ¿qué "nuevas características de .NET" crees que faltan? Obviamente, respaldo a IronPython de todo corazón. –

1

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

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

7

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 en realidad si la información relacionada con Boo es aceptable para el autor de la pregunta, entonces la pregunta realmente debería ser editada para dejar eso en claro.

En cuanto a IronPython, usted ha dicho que no le gustó, pero realmente no hay ninguna respuesta que puedo dar a los comentarios críticos que son tan vagos :)

Alternativamente, sugeriría que usted echa un vistazo al cPython. Un par de puntos:

  • Puede construir archivos .exe con py2exe y otras herramientas.
  • un acceso mucho mayor a las bibliotecas de Python 3 ª parte y marcos
  • El acceso a las API de Windows a través de pywin32
  • extensión de Python writen en C están disponibles (a diferencia de IronPython, aunque hay efforts en marcha 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.

+0

Disculpa por marcar tu publicación como respuesta, no hay una respuesta correcta o incorrecta a mi pregunta. – Diones

5

Usted dice que quiere "dinámico", pero si la motivación es solo para evitar "toda esa basura sintáctica", debería echarle un vistazo al 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).

+0

Brian, mi experiencia previa dice que los lenguajes funcionales tienen su aplicación principalmente en las matemáticas, que no es mi caso (aplicaciones de Windows comunes). – Diones

1

También puede consultar el lenguaje Fan. No es pura dinámica, es una mezcla de ambos estáticos & dinámico. 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.

Sintaxis sabia está más cerca de C# con mucha sintaxis de azúcar por lo que parece una mezcla de C# 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: Ventilador había cambiado su nombre a Fantom

1

he estado abajo un camino similar. Revisado Boo, dotLISP, IronPython, etc.

Recomiendo IronPython. PERO, si todavía no tienes experiencia en Python, probablemente aprendas Python básico más rápido cargando CPython y usándolo para los tutoriales de ejemplos &.

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.

0

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 funcionando.Red a través de IKVM

0

... basura sintáctica que viene con lenguajes de tipos estáticos ...

Si su preocupación es la basura sintáctica continuación, también al igual que a la salida lenguas tipos estáticos con la inferencia de tipos, más notablemente F#.

Cuestiones relacionadas