11th module: Metaprogramming


While metaprogramming was a topic from the Programming Languages course that was somewhat covered, at least for my group in Semestre I, this article is easy to understand and shows the effectiveness  of this kind of practices that are as old as Lisp itself. Through simple examples I was able to understand the principles and motivations, as well as simple, although strange looking examples. I think metaprogramming deals with a very natural desire for all humans, which is to make things easier through automation and we reached that point in programming quite some time ago, through several generations of languages, paradigms and pattern designs.

Maybe I find the examples strange because of the use of Ruby. While I’ve the pleasure of working with this programming language throughout this semester, I just can’t seem to get myself comfortable with all of its “peculiarities”, like its use of loops or just how easy it can insert new code anywhere through class extension. In the case of the article, I can understand in a very abstract level all of what is happening and how it relates to metaprogramming. However, I couldn’t replicate a similar program if left alone; at least that is what I think. I should note that this situation does not mean that I do not like Ruby or metaprogramming but rather, it peaks my interest in the topic.

I think that a lot of people have this kind of curiosity because of what it can imply and the potential that it seems to have. At least for me, it means that there might be a point where we work in such high-level abstractions such that we only need to express a few words to our computers for us to get what we want. I do not know if this is possible; after all, humanity has played with this concept for several decades now and, while we have made progress, it is still far from this dream.

Comentarios

Entradas más populares de este blog

10th module: Going Micro(soft)

7th Design: WarGames