miércoles, marzo 03, 2010

DSLs imperativos contra declarativos

      The difference is really in the intention. Imperative DSLs usually specify what to do, and declarative DSLs specify what you want done.
      — An imperative DSL specifies a list of steps to execute (to output text using a templating DSL, for example). With this style, you specify what should happen.
      — A declarative DSL is a specification of a goal. This specification is then executed by the supporting infraestructure. With this style, you specify the intended result.

Building Domain Specific Languages in Boo
Ayende Rahien
Manning

martes, marzo 02, 2010

Interfaces elocuentes versus DSL

Fluent interfaces are usually useful only during the development process. A fluent interface is probably a good choice if you intend to use it while you write the code, because you won't have to switch between two languages and can take advantage of the IDE tooling. In contrast, if you want to allow modifications outside development (for example, in production), a DSL tends to be a much better choice.

Building Domain Specific Languages in Boo
Ayende Rahien
Manning

La claridad es más importante que la brevedad

But while code may be unambiguous to a computer, it can certainly be incomprensible to people. Understanding code can be a big problem. You tend to write the code once, and read it many more times. Clarity is much more important than brevity. By ensuring that our code is readable, clear, and concise, we make an investment that will benefit us both in the inmediate future (producing software that is simpler and easier to change) and in the long term (providing easier maintainability and a clearer path for extensibility and growth).

Building Domain Specific Languages in Boo
Ayende Rahien
Manning

El buen gobernante

Aunque no será norma, hoy me permito copiar toda la columna The End que leí hace unos días.

      El buen gobernante es aquel que sustituye el apego al poder por la obsesión para resolver.
      Gobernar es saber anticiparse a los problemas, y jamás y bajo ningún concepto negarlos, diluirlos o, lo que es más grave, crearlos.
      Gobernar no es ir esquivando los problemas heredados con sonrisita de "yo no he sido", sino con la entereza del "eso yo lo voy a arreglar".
      El buen gobernante jamás puede prometer lo que desconoce si se podrá hacer. Tiene que sustituir la efímera grandilocuencia por el sensato realismo, porque quien gobierna jamás puede engañarse ni engañar.
      El buen gobernante debe tener una clarísima conciencia de que, para repartir, antes hay que crear; por eso, sus anhelos para construir una sociedad más justa deben ser simétricamente paralelos a los de promover una sociedad más rica.
      El buen gobernante no va regalando a otros los recursos de sus ciudadanos, sino que los utiliza como semillas para crecer, resolver y enseñar a pescar en su propio país.
      El buen gobernante entiende el inmenso valor de una buena relación con otros líderes y es capaz de despertar en ellos una admiración hacia su persona, no solo hacia el cargo que ejerce.
      El buen gobernante es aquel que sabe rodearse de gente tanto o más potente y sabia que él, porque entiende que su gran fuerza empieza por la de su propio equipo.
      El gran gobernante es un gran soñador que siempre está muy despierto.

El buen gobernante
Ángela Becerra
Columna "The End"
Periódico ADN
Miércoles 17 de febrero de 2010