2009-03-01 12 views
16

¿Cuál es la diferencia entre IronPython y BOO? ¿Hay una necesidad de 2 idiomas similares a Python?BOO Vs IronPython

+5

IronPython no es un lenguaje Python- * like *. It * is * el lenguaje Python, aunque una reimplementación. –

+1

Boo fue un lenguaje oficialmente compatible en Unity 3D hasta la versión 5. Ahora está en desuso, pero todavía puede usarlo en la versión 5 (y quizás más allá, también ... el tiempo lo dirá). IronPython nunca lo fue, y probablemente nunca lo hará ser. Esa es la razón por la que uso uno (Boo) y no el otro. – ArtOfWarfare

Respuesta

18

IronPython está diseñado para ser una implementación fiel de Python en la plataforma .NET. La versión 1 se dirige a Python 2.4 para compatibilidad, y la versión 2 a objetivos versión 2.5 (aunque la mayoría de los módulos de biblioteca estándar de Python implementados en C no son compatibles).

Boo El objetivo declarado es ser un "lenguaje [dinámico] amigable para la muñeca para la CLI". Se necesita mucho de la inspiración de Python, pero diverge en cuatro puntos principales:

  1. Está diseñado específicamente para aprovechar bien la plataforma .NET
  2. El diseñador diverge de la sintaxis de Python en la que no está de acuerdo con las decisiones de diseño (más notablemente, falta de auto explícito)
  3. El lenguaje está explícitamente diseñado para ser "amigable para la muñeca", es decir, para minimizar la necesidad de utilizar la tecla Mayús u otras combinaciones de teclas múltiples.
  4. Boo está tipado estáticamente de forma predeterminada, pero permite el tipado de pato opcional.

Existen otras pequeñas diferencias en la implementación/el rendimiento, pero los objetivos divergentes de diseño anteriores deberían (IMO) informar a su elección de idiomas.

Dos cosas más a tener en cuenta son la madurez y la comunidad. Python es mucho más maduro que Boo, y tiene una comunidad mucho más grande. IronPython también tiene la bendición explícita de Microsoft.

11

IronPython es una implementación de Python cuando Boo es otro lenguaje con una sintaxis de tipo python. Una diferencia importante es que Boo está tipeado estáticamente por defecto.

Estoy seguro de que hay más diferencias, solo he mirado a Boo brevemente, pero he querido ver un poco más profundo (¡tantos idiomas tan poco tiempo!).

Aquí es una lista de trampas Boo para los programadores de Python que resume las diferencias bastante bien:

3

IronPython es Python. Boo se parece a Python.

Tienen diferentes objetivos y mientras IronPython pretende ser como Python, Boo no lo hace. Boo no está preocupado por la compatibilidad con Python como IronPython es ...

1

En pocas palabras, la fama de Boo es que se supone que le da la mayoría de los beneficios de la sintaxis elegante y precisa de Python y abstracciones de muy alto nivel, pero sin sacrificar (la mayoría) de las ventajas de velocidad de una estática lenguaje escrito como C#.