2008-10-15 15 views
10

tratando de obtener un hobby de proyecto lateral va a mantenerme motivado de mi trabajo 9-5 en C# y estaba mirando a Boo. algunos? s¿Qué puede hacer Boo por ti?

  • ¿qué experiencia hace con Boo?
  • qué tipo de aplicaciones/proyectos ha hecho con Boo o
  • ¿de qué es capaz Boo?

Guess ser el mundo de la web, le gustaría tener en mis manos sucias con aplicaciones de escritorio, etc.

Respuesta

3

pesar de que sólo utiliza Boo como el lenguaje de implementación (en lugar de ser fundamentalmente sobre Boo), ¿ha lea "Building Domain Specific Languages in Boo" de Ayende? Aún no se ha publicado por completo, pero puede obtener una edición de acceso anticipado.

no he tenido tiempo de mirar cuidadosamente Boo todavía, pero los principales ventajas sobre C# 3 (que obtuvieron algunas de las características de Boo) parecen ser concisión (un montón de inferencia de tipos) y metaprogramming.

5

Mis experiencias personales con Boo fueron desde hace unos 18 meses, y no lo he seguido activamente desde entonces, , así que tenlo en cuenta lo que digo. Es cool idioma. Pero también es experimental. Lo que esto significa en términos prácticos:

  • Puede hacer cosas geniales con el idioma. Las macros que permiten, además de mezclar buenas características de ruby, python y otros idiomas.
  • Hay un diseñador de WinForms que puede usar a través de SharpDevelop (que tiene Boo integrado como lenguaje de desarrollo estándar).
  • Hay inconsistencias y errores en áreas ocasionalmente críticas porque aún no está hecho.

  • No estoy seguro de si se pueden crear genéricos aún con Boo, pero ciertamente se pueden consumir.

  • El rendimiento es bueno, pero el compilador no tiene un optimizador.

  • Tipo de inferencia es genial. Duck typing es genial. Todo eso te permite acercarte a la ilusión de la mecanografía dinámica.

Personalmente, trabajé en una herramienta para facilitar la escritura creativa. Piensa en IDE para escritores.

+0

Los genéricos están funcionando principalmente. El 99% de las cosas que harías con genéricos está ahí. –

2

Algunos usos que realmente se adapten a la forma de pensar dinámica de Boo:

+0

Ahora que es un poco de arqueología;) Pero estoy de acuerdo; ser capaz de acceder a una aplicación en vivo es una gran victoria; esto es algo que me he perdido de mis días de Lisp, es genial que varios frameworks lo permitan fácilmente estos días. –

2

Estoy trabajando en un proyecto paralelo con Boo para implementar una macro declarativa de enlace de datos. ¡El lenguaje es genial! Me está dando cierta experiencia en la construcción de compiladores que no he tenido.

Solo por diversión, estoy trabajando con Boo on Mono en Ubuntu 8.10.

3

Boo es muy poderosa herramienta para la creación de DSL (externa e interna)

DSL internos pueden ser creados usando macros, los meta-métodos y tuberías compilador extensible. La extensión del lenguaje Boo - Boo.OMeta.Parser se puede usar para crear DSL externas.

Actualmente el analizador está en desarrollo, pero ya se puede usar para la creación de DSL externas complejas. OMeta es una poderosa herramienta que permite a los programadores implementar fácilmente analizadores léxicos y analizadores sintácticos. La arquitectura extensible de compilación de compiladores de Boo permite reemplazar Boo.Parser estándar con Boo.OMeta.Parser. Se puede usar para extender la sintaxis de Boo con casi cualquier tipo de sintaxis. El ejemplo se puede encontrar here.

+0

Después de una búsqueda rápida en Google, supongo que con * DSL * quiere decir "* Idioma específico del dominio *". – cregox

Cuestiones relacionadas