viernes, 19 de octubre de 2018


Language as the ultimate weapon.

This time, this entry will be a little different. In this case, we will talk about George Orwell's novel named 1984 and its impact that has when comparing to the actual world. 

Actually, languages are really important, that’s the way how humans communicate their ideas, and it’s really powerful. You can hide or unmask different things if you know how to use the properly words. In the novel, the language used in the book named "Newspeak", is controlled by the government, and the government use this with the objective to control people's language and their memories. In order to do this, the government make the people forget words that are not necessary, so the people get more and more ignorant and to be more manipulable in the way they think, talk and act.

With this said, this is an example of what could happen if the languages begin to disappear or to reduce. And actually, is what is happening nowadays in Mexico and in the world. Native languages are disappearing because there are few speakers of that language and/or their cultures are disappearing or changing into the mainly ones, so is very important, not for only spoken languages, also the programming languages. Is much better to learn and to create new ways to program, to just keep the well-known ones and eliminate the others. The way how any programmer solves the problems can improve if he/she look at the problem from other perspective and I think is true. When I program in C language or Java language I create lines of code in a way. But when I think about solutions in Lisp, I never think the other way. I search for another solution. That’s like a training to see things in other way and the importance to have the tools.




sábado, 13 de octubre de 2018

Roots of Lisp


This time will be about a Paul's Graham article  about John McCarthy and its list processing language that use lists of the data and code oof programs. As I said in a past program, this way of programming is more efficient than other languages. And in this point, he begins to talk why Lisp is important and efficient.

As the history of Lisp is given in the article, he mentions about the seven primitive operators, that are like the core of the language, because with that seven operators, you can create any function. They are quote, atom, eq, car, cdr, cons and cond.

Then, he starts to talk about functions and how they are composed (talking about order). And the example he gives is

 (lambda (p1 ... pn) e)

where "p's" are parameters and "e" an expression. 

And for now on, he gives a lot of expressions to show diffrerent ways of operators, to finally see, complex functions. And well I dont know if this is correct but the way I see Lisp use single operators to construct complex functions is like the phrase "divide and conquer", that is if you work with little pieces, in this case the operators, and then you join them, the result will be awesome

This is a new way to see this programming language, because is rare to see how a programming language works from its "core", and is very interesting to know that lisp works mainly with 7 operators, I had that idea more or less, and I think is important to know this to conclude this course of Clojure, Lisp. it is also relevant to say that this language is very efficient that other languages, but I think is harder to understand how it works, so it gives me more time to make an idea of how to make a program

sábado, 6 de octubre de 2018


the promises of functional programming

This time, this entry will talk about an article of Konrad Hinsen named as the title of this blog says. 

(This is the link of the article: Click here)

TO understand this, there is a little bit of history about functional programming and an explanation of how it works or how is different from traditional imperative programming.


The functional programming works by composing functions and a great difference from traditional languages is that there is not usage of variables.

An important thing Konrad said is about the usage of concurrent and parallel programming. Actually, as the computers get more and more powerful, the usage of this two is more important. But there is not always that easy, each one has their own problem. For the parallelization the difficulties are "identifying independent computations inside a program and coordinating them with the required communication operations" and for concurrency, as you work with different threads, you have to know how to synchronize them with "locks" (you stop other threads until each thread are not being used) in order to modified data items. Before, in another class, I’ve tried to use concurrency in C language, and it was not that difficult to coordinate all threads, but as the author said, if you miss something or if you do something wrong, errors will occur easily. So is very important to have this in mind when we are programming and to know which parts of the programs you can use them.

I think that is very important to learn how to use the parallelization and the concurrency because as we will have powerful machines, we need to take advantage of the processors we have, and use that methods to improve our codes, no matter which language you use, the implementation of them are included in traditional languages as Java or C, or in this case Clojure.