miércoles, 24 de enero de 2018

The Hundred-Year Language (Commentary)

Resultado de imagen para universal programming language

It is mind-bending to think about the immediate future of modern computer, forget about what's going to happen in a hundred years. I, for one, hope there's still a humanity left to ask this questions in, say, 50 years. For the meanwhile, let's just imagine we are not under constant threat of an all-out nuclear war. 

One of the main points of the article which I find particularily interesting is the need for clutter in a language's process of evolution. Numeric types being an example for LISP's dreadful, despicable, and messy transformation into Clojure. Clutter is wasteful, but it has a reason for existence, even if it's not totally useful at first.

Another important concept mentioned is the fact that Moore's Law is bound to stagnate by its very nature, which means programmers and hardware designers alike need to work around the problems arousing from this process. This event is one of the cornerstone reasons for the development of a universal programming language that shall endure the test of time. Considering the different elements involved in Language Evolution (clutter, necessity, data types, etc.) this process may prove to be chaotic. If we add the fact that we don't know how the future (or its hardware) looks like, the creation of a universal hundred-year language seems near impossible.

As many a developer of Silicon Valley hopes, whatever the outcome, it better make the world a better place.

miércoles, 17 de enero de 2018

Making Compiler Design Relevant for Students who will (Most Likely) Never Design a Compiler (Commentary)



Every standard isue language has already a myriad of compilers in store, which means there is virtually no reason to engage in the creation of new compilers for, say, C, or C++. Compiler design has become an art reserved for the overly ambitious of system and software developers (as well as Unix users), since it comprise a very reduced scope of Computer science that has little to no practicity in today's market.

Or at least, that 's what people would have you believe. 

Since I, as a student, may be naive and would not want to engage in what I consider a "fool's errand", I don't think I'll ever design a compiler (if it's not strictly for this course, of course) for money or as a personal project. I do appreciate some of the modules of the standard compilation process as interchangeable with other disciplines, as well as very useful for solving translation-related problems.

Linguistics is a subject I have always found interesting (fun fact: regular expression actually look like Polish language), which greatly adds value to the text analysis involved in the compilation process, at least for me. As a more practical approach, I have always wondered how Typescript, Coffescript and so many other languages work to produce code in their base language (Javascript, in both cases), or how markup languages can have so many different iterations depending on what the main language of the framework is. In other words, I cannot figure out how an .erb file can become an .html file.

Guess compiler science is not as specialized as I first thought, huh?

martes, 9 de enero de 2018

So it has come to this...

My name is Francisco Geada Rodríguez, I am a computer systems engineering student (don't ask which semester) at ITESM CEM.

My main expectation for this course is to get the dreaded compilers course out of the way so I can finally graduate. Fine, I also want to learn how a compiler works because compilers have always worked on magic for me.

Some of my interests include technology, music, videogames, literature, cats, nature, art, and internet subcultures.

If I were not studying computer engineering, I would definitely be an anthropologist. A big part of my interests include anthropological subjects such as history, linguistics, ethnicity, religion, geopolotics, the art of war, and social culture. Not to sound like some alien supervillain, but humankind is truly interesting.

Finally for some recommendations:

Videogames: Aside from TLOZ Breath of the Wild which is already widely spoken of, I would recommend A Hat in Time, an amazing indie game which truly pays tribute to the early 3D platformers that saw us grow up.

Books: I recently finished reading the "El Libro de los Heroes" saga by Mexican author Antonio Malpica (who I happen to be friends with), a very gritty, bloody, dark, and complex story about heroes and demons. Even though you may find these books in the "teens" section, don't be too quick to dismiss them, they will surely take you on an emotional roller coaster of terror, fear, panic, and all kinds of flavors of horror.

Music: My definitive 2017 album was To the Bone by Steven Wilson. A clever mix between progressive rock and art pop that is sure to make you feel all kinds of stuff. From the Abba-sounding Permanating, to the angry progressive ode Detonation, this album was love at first listen for me, and has been engraved as one of my top 4 albums of all time (along with such classics as Melon Collie and the Infinite Sadness by The Smashing Pumpkings).

Movies: I've been in a Star Wars frenzy since last year, so that's pretty much all I've been watching lately.

Series: Now that we're reading The Hitchhiker's Guide to the Galaxy, an appropiate recommendation would be some of Adams' other work. You can find both seasons of Dirk Gently's Holistic Detective Agency on Netflix, and I can tell you this: they are quite the ride.

I don't see what else could I say about myself or compilers, so, let's leave it here. Have a great time reading.