2009-10-06 32 views
9

Comparado con C#, Boo se siente un poco más Pythonic pero también se compila en .NET MSIL. Me gustó su sintaxis, incluso más que la sintaxis de C#. Pero no pude encontrar un solo libro enseñando a Boo.Boo vs C# vs Python?

Y realmente no sé, si aprender Boo es mejor que C# o aprender C# es mejor que Boo. Solo quiero usar algunos tipos de datos similares a Python. Estos son:

  • {key1:value1, key2:value2} → diccionario
  • [Value1,Value2,Value3] → lista (se pueden editar/cambiado)
  • (Value1,Value2,Value3) → Tupla (no se pueden editar/cambiado)

utilizo los diccionarios más de lista y tuplas. Quiero saber, ¿cuál es mejor?

+1

2 palabras, formateo de texto! – leppie

+1

El único libro que he visto en Boo es http://www.manning.com/rahien/ –

+0

¿Posible duplicado? - http://stackoverflow.com/questions/890420/why-would-one-choose-iron-python-instead-of-boo –

Respuesta

14

He encontrado que Boo es muy útil en la creación de scripts simples únicos, al tiempo que conserva mi estilo de fuente Pythonic. Y dado que se compila en ejecutable EXE o DLL, puedo empaquetar un único EXE con todas las DLL necesarias (incluido Boo.Lang.dll) usando ILMerge, y luego enviarlo a un cliente, generalmente para algún tipo de solución de problemas rápida o diagnóstico del sistema.

También uso Boo para apoyar mi desarrollo de C#. A menudo enciendo un intérprete de Boo para probar variaciones de formato de cadena o fecha, luego puedo replicar la versión final casi directamente en C#.

Pero es zurcido difícil de encontrar documentos para Boo. Tuve que buscar un poco de Google para encontrar la sintaxis de los genéricos, ya que son una adición relativamente nueva a Boo, y aún no se mencionan en ningún tutorial, ni siquiera en páginas de referencia. Y buscar en Google "boo" genera bastantes hits no deseados, lo que dificulta aún más la búsqueda.

Así que, en resumen, no hagas esta elección entre Boo y C# - en realidad se complementan bastante bien.

+2

Pruebe CSharpRepl/Gsharp: http://www.mono-project.com/CsharpRepl – Dykam

2

Tiene listas y diccionarios en .Net: System.Collections.Generic.List y System.collections.Generic.Dictionary.

En cuanto al idioma: Simplemente aprende el que sea más divertido para ti. La elección del idioma suele ser religiosa. Especialmente en la plataforma .Net, donde cada idioma tiene casi las mismas capacidades.

+0

"donde cada idioma tiene casi las mismas capacidades" que solo se aplica a C# frente a VB –

+0

¿Usted lo cree así? Yo no ... Puedo, por ejemplo, hacer casi todo lo que puedo hacer en C# do en C++/CLI. Y estoy seguro de que puedo hacer casi todo lo que puedo hacer en Boo en C# también de alguna manera. Lo único diferente serían los lenguajes tipados dinámicamente como IronPython, y eso también cambiará en C# 4. –

+0

intente crear una DSL tipo boo en C# (incluso 4.0) o C++. Consulte http://blogs.codehaus.org/people/bamboo/archives/001588_dslfriendly_syntax.html –

3

Conocer C# te será muy útil si quieres una carrera en el desarrollo de .NET. Pero aprender Boo te permitiría usar las características similares a Python que buscas en un entorno .NET. Probablemente debería también mirar en IronPython, que no tiene libros disponibles (Iron Python in Action)

6

Mi opinión general es que sería mejor ir a C#, ya que es desde mi punto de vista, facilitar la búsqueda de recursos, documentación y tutoriales para C#.

+1

No hay nada malo con VB.NET tampoco. Técnicamente, eso es. A las personas que no les gusta generalmente no les gusta el olor, realmente no entienden VB.NET. La única queja sincera que he visto en contra es que su sintaxis es bastante detallada, pero para mí ese es un punto fuerte. Por ahora, muchas características de VB.NET se han agregado a C# (y viceversa), los idiomas difieren en poco, excepto en la sintaxis de la superficie. – reinierpost

0

No estoy seguro de cuál es tu objetivo final, pero antes de darte por vencido en Python, mira el combo python/Qt para compilar una GUI. Puede construir guis complejos multiplataforma y es bastante fácil de recoger. Qt, Python Bindings

+0

Ya conozco (y probé) PyQt, wxPython, Boa Constructor, IronPython Studio y otros, pero estoy en busca de consejo (no soy un Python n00b: S). – PythEch