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
Publicar un comentario