Posts

Language as the Ultimate Weapon

First of all, this entry will talk about an article from Jem Berkes named  Language as the “Ultimate Weapon” in Nineteen Eighty-Four.  Nineteen Eighty-Four is a Gorge Orwell’s novel that talks about Winston, a person who lives in Oceania, a fake country governed by the Party, a group led by Big Brother. All the people who lives in Oceania have to live under the Party rules and statements. Basically, it manipulates everything: history present and past, the language (Newspeak) and also everything about people’s lives. The article I mentioned above describes how, in this case the Party, uses the language to manipulate everything. This was really interesting for me, because, as the author mentioned, changing the language was the main weapon to manipulate people. Newspeak is a language molded to reduce people’s capability to express themselves, so that they will finally think as the Party want them to. Also, this weapon is combined with the constantly changing of events in history, leadi

The Roots of Lisp

In this entry I will talk about an article by Paul Graham titled  The Roots of Lisp . It talks about another article by John McCarthy published in 1960 in which he explained how a whole programming language can be built using simple operators and a notation of functions. This share is well known as Lisp (A curious fact that I didn´t know is that Lisp’s name comes from “List-Processing”), which basis is just using a simple data structure (lists) for coding and data. I found interesting where the author mentions that there are really two clean consistent models of programming so far: C and Lisp model. The majority had followed the C model, but, bit by bit, they are getting closer to the Lisp model. In order to present a cleaner and better understandable article, the author converted McCarthy’s mathematical explanation steps into running common Lisp code. What really caught my attention and surprised myself is the  eval function. This function may work as an interpreter for Lisp, i

The Promises of Functional Programming

In this entry I’m going to talk about an article by Konrad Hinsen. It is titled as “The Promises of Functional Programming”. This article talks about the advantages of moving to functional programming (they’re more robust, compact easy parallelizable). But what is functional programming? Functional programming is a way of programming using mathematical functions avoiding mutable data and changes of states. What principally characterize functional programming is that it is composed by functions, as I already said, of mathematical type or in mathematical context. This means that a function will always produce the same output when given the same input. Since there are no side effects, variables are not modified, and they aren’t required. This aspect surprised me because in all the programming languages that I’m familiarized with, variables are part of their fundamentals. But this is just the beginning, another fundamental aspect of functional programming that can be interpreted as a

Rich Hickey on Clojure

And once again we are here, talking about Lisp. But this entry will be talking about Lisp indirectly. In this post I’m going to talk about the podcast “Rich Hickey on Clojure”. Who is Rich Hickey? The designer o creator of Clojure and what is Clojure? A functional programming language based on Lisp. What really caught my attention here is that Rich Hickey mentioned that the failure of Lisp or the reason why Lisp was not mainstream is because it was not designed to be that. It was designed to be used by “super users, researches and smart people” that want to solve hard problems. Basically, this can be considered as one reason of Clojure’s existence. We can say that Clojure is an old or traditional Lisp, but with some important differences or improvements. Traditional Lisp is practically lists of lists or nested lists, while Clojure does not stay only in that data structure, but also involves vectors and maps. This is important because those data structures work as a regular libra

Revenge of the Nerds

All started with the term “point-headed bosses”. It was the first time I heard or read about it. But the author’s point is truth. Nowadays, there are programmers out there that thinks that the best programming language to solve any kind of problem is Java. I liked how the author used this fact to start one argument: programming languages are not equivalent and there will always be a different and better language to solve a specific problem. But there is an interesting pattern, each new programming language is becoming more like Lisp. Why? It is like we want to reach something that we already had 60 years ago. I found interesting the fact that Lisp, when it was created, was not meant to be as it is nowadays. John McCarthy didn’t intend to develop a programming language. It was a theorical exercise and an effort to define a convenient alternative to the Turing Machine. It was thanks to Steve Russel that Lisp is as we know it nowadays. He programmed the “eval” (A function that comput

Dick Gabriel on Lisp

Dick Gabriel on Lisp. Before listening to this podcast, I had never heard about Dick Gabriel. I have just realized he is a computer scientist graduated from Stanford University, but not a normal one, he uses the Lisp programming language. Actually, he had his own company where they program using Lisp. This is really impressing for me because the only other case of a Lisp based company is the Viaweb case I talked about in my last blog. As I already said, I’m not into Lisp. But I want to support a classmate’s blog that also talks about Lisp and this podcast. In his blog, Guillermo PĂ©rez Trueba talks about the importance and the reason of why Lisp is used in AI programs. Whenever you try to use Lisp, it results confusing for most of the developers, the reason? The sea of parenthesis it uses. Nevertheless, the words of Dick Gabriel start making sense to me. Lisp as a non-syntax syntax programing language and, based on the usage of lists and macros, it gives us a great versatility to d

Beating the Averages

Before reading this text, I’d never thought that Lisp, or any programming language based on it, could be used to develop software and even web-based software as the example mentioned, Viaweb. I found interesting that specific case and how the author emphasize that, specially talking about startups, it is important not to do or follow the same processes as the others, it is better to have a secret weapon. In this case it was Lisp which gave them the advantage because of the rapid development they can achieve by using it. I agree with the author when he mentions that the programming language you are using may depend on the objective or the purpose of the project. But it is obvious that no matter what, he prefers Lisp. Actually, he made me to start considering giving Lisp an opportunity. Basically, he is trying to convince us to use Lisp but the only aspect that interests me is considering it on a startup. I really want to start a new and personal business and the author made