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

jueves, febrero 18, 2010

IQuackFu

If it walks like a duck and it quacks like a duck, then it must be an IQuackFu.

Building Domain Specific Languages in Boo
Ayende Rahien
Manning

miércoles, febrero 17, 2010

El próximo podría ser un psicópata

It's considered polite to express intent in code in a manner that will make sense to the next developer who works with your code, particularly because that poor person may be you. A good suggestion that I take to heart is to assume that the next developer to touch your code will be an axe murderer who knows where you live and has a short fuse.

Building Domain Specific Languages in Boo
Ayende Rahien
Manning

miércoles, enero 27, 2010

La cotidianeidad llena de fogonazos de aprecio

La cotidianeidad anda llena de fogonazos de aprecio, clamores de amistad y aspavientos de simpatía que se diluyen al minuto de haberlos manifestado. La adrenalina de la voluntad espasmódica tiene eso: tal como viene, se va. Son propuestas impulsadas por subidones de euforia, deseos sin moral, intenciones sin raíz, anhelos de hielo.

El reloj sin agujas
Ángela Becerra
Columna "The end"
Periódico ADN
Miércoles 27 de enero de 2010

lunes, enero 25, 2010

Lenguaje con pedigrí

Cocoa has one of the most distinguished pedigrees of any object-oriented development environment. From its introduction as NeXTSTEP in 1989 to the present day, it has been continually refined and tested (see “A Bit of History”). Its elegant and powerful design is ideally suited for the rapid development of software of all kinds, not only applications but command-line tools, plug-ins, and various types of bundles. Cocoa gives your application much of its behavior and appearance “for free,” freeing up more of your time to work on those features that are distinctive. (For details on what Cocoa offers, see “Features of a Cocoa Application.”)

Documentación de desarrollador de Apple.

Nota: Cómo se pasan los de Apple

domingo, enero 03, 2010

Nada existe más allá de un instante

Siempre creo que todo va a durar para siempre, pero nada dura para siempre. De hecho, nada existe más allá de un instante, salvo las cosas que retenemos en la memoria. Yo siempre intento retenerlo todo —prefiero la muerte al olvido—, […]

Firmin
Sam Savage
Booket

Después de la revolución

Una de las frases favoritas era «después de la revolución». Cuando le compraban un libro siempre pedía perdón por el dinero que recibía y a continuación explicaba que los libros serían gratuitos después de la revolución, que serían un servicio público, como las farolas de las calles. También decía que Jesucristo era comunista, […]

Firmin
Sam Savage
Booket