Entradas

The Roots of Lisp

This week we made an analysis on the article “The Roots of Lisp” by Paul Graham. I thoroughly enjoyed this article because for mi it’s like an origin story for the most powerful programming languages out there. And it also makes a point of how by understanding the past of this language, you are also understanding the future of programming languages. In this article, Graham tries to explain how the first published version of Lisp works by tearing its basic functions and attributes apart and explaining each of them by separate. First he starts with the seven primitive functions (quote,   atom, eq, cons, car, cdr and cond), and show how each of this functions perform super basic operations on the attributes that are passed to them. It’s very interesting to see that every operation that you want Lisp to perform can be done with just combinations of this primitive functions. Then he tells us about the notation for describing our own functions, and how this notation allows us t

The promises of functional programming.

This week’s entry is about an article by Konrad Hinsen called “The Promises of Functional Programming”. I really liked reading this particular article because I’m currently working on parallel programming and found what Hinsen had to say about that interesting, but more on that later. Hinsen also makes note of the way functional programming works just like math, where you have a function that given the same input will give the same output. I’m finding this kind of programming really cool (maybe because it’s way more related to my field where there are lots of applied maths), at first it felt weird programming without all the variables, but after I got the hang of it, I think having functions without side effects is way more practical. What I still can’t get my head around is what everyone says about the functions being data, I don’t see how that can be relevant, but I hope in time I’ll see what all that is about. Now, about the parallel programing. When I first got into p

"Revenge of the Nerds" Analysis

This week we paid another visit to Paul Graham. In his article “Revenge of the Nerds”, he talks about how bad is the knowledge and culture about the diversity of programming languages on the administrative levels of big corporations and how this is detrimental to the development of new software. Paul starts by defining a fictional character called “Pointy Haired Boss”, which he takes from the Dilbert comic strips.   This character is your everyday boss who knows his ways around administrative stuff but knows little to nothing about the inner workings of the projects he manages. This character becomes particularly problematic because usually he has control over what language is going to be used for a particular application. A few weeks ago I wrote about how, in my experience, some programming languages are better suited for certain applications. Even Lisp with its all-powerfulness may not be as well fitted for a dedicated embedded system that just does one thing.   That’s why

Dick Gabriel on Lisp

For this week’s entry we listened to what Dick Gabriel had to say about Lisp. Dick Gabriel is a prominent programmer known for his work on common Lisp. I particularly liked this week’s assignment because Gabriel seems like a real ‘Master Yoda’ when it comes to Lisp. First, the interviewer and Gabriel give us the usual briefing about Lisp, how it was one of the earliest programming languages, how it’s largely based on nesting functions and its heavy use on AI applications. Then they speak of how Lisp was born, how they wanted to have something with a certain degree of intelligence, and I found interesting the analogy he does with the language being a lot like a city, with programs never ceasing to run. I found interesting the fact that according to Gabriel, Lisp was created overnight as an attempt of having a program that could compute anything, and how its eval function had to be hand-compiled. Also thanks to Gabriel it became clear to me how it is that Lisp works with lists

"Beating the Averages" Analysis

This week’s article was written by Paul Graham, who is a Lisp programmer and cofounder of the Viaweb Company (which was sold to Yahoo in the late nineties). The title of the article is “Beating the Averages”, and as the title says, it has to do with how Paul and Robert (his friend and cofounder of Viaweb) used Lisp (which Paul says is a very little known and used language) to successfully get ahead of their competitors. When they had the idea of making their application run on their server, Paul saw that you could use any language that you wanted, but this was also a problem, because you also had to choose the one that was better. The advantage that Paul saw in Lisp is that most people at the time found it weird and hard to use (they still do now), yet it was a language that allowed them to make developments faster due to its simplicity while needing less developers (allowing them to cut costs). This gave him the technological edge among all the startups that may have been possib

"Semicolon Wars" Analysis

“The Semicolon Wars” is an article written by Brian Hayes, a senior columnist for American Scientist . In this article, he writes about the enormous diversity that we have today regarding programming languages. For starters, I was really amazed with the enormous quantity of programming languages that we have nowadays; the estimate with the higher number of programming languages is higher than the estimate of spoken languages around the world! It’s amazing how we even accomplish stuff with that number of languages, but I believe this diversity is of utmost importance. Hayes also writes about the possibility of the “one true language”, one that we could keep improving and evolving until it’s a multi-purpose all-powerful language. I greatly disagree with this. Up until now, my programming work has heavily leaned towards low level programming, and this is where I could observe the importance of having different programming languages. For example, when I programmed on an ATMEGA3
Hi, my name is Luis Maximiliano Castillo Sandoval, ISDR, but the name Luis was too trendy at the time of my birth, so maybe you know a lot of Luises already, that's why I think it might be easier for you to just think of me as Max. I enjoy playing videogames with great stories, watching a good film or series, or reading a well written book, so you could say I enjoy any kind of good story. But I'm not an always-stays-at-home kind of guy, I also enjoy a lot of outdoors activities. If you want me to go with you to an adventure into the wilderness, or to help you with work at your ranch, I will not only say yes, but will be very excited about it. All in all a country boy. When I'm not busy with school stuff, you can find me at any place that has grass, a tree and a good place to sit comfortably, usually carving something out of wood. Or sometimes you can also find me at my workshop, crafting some new crazy idea like a strongbox made out of wood, or a wood rifle that shoots