Posts

Language as the Ultimate Weapon

After reading the article written by Jem Berkes who emphasizes the importance and influence of the language in society's lives, we can answer an interesting question that will allow us to understand better the reading of 1984 and how it is helpful for the course. The question we are about to answer is the following: Why is the Nineteen Eighty-Four novel by George Orwell relevant to a student taking the Programming Language course? Since the beginning of the times, language has been an important tool used by humans to communicate, creating different ways to transmit ideas, etc. this has allowed them to evolve. Creating a language is not as easy as it may look like. A language has a structure, symbols, syntax, semantics, and some other things which are proper from a language and people who understand them can understand that language. This happens too with programming languages, each programming language has its own symbols, structure, and syntax which allow people to understan

The Roots of Lisp

After reading Paul Graham "The Roots of Lisp", I realized that there is a lot of information and knowledge that I still have to learn. Starting with John McCarthy's paper showing that with some simple operators and notation for functions you can create a programming language, which he named LISP (List Processing), I must say that I had no idea of the origin of the name, but thanks to the reading I understood that this name is because it uses a simple data structure (list) for code and data.  McCarthy's discovery changed the way the programming languages were created, with Lisp created, now there were two models of programming: C model and Lips model. The evolution in computer's performance and hardware has made that the new programming languages move to the Lisp model.  Graham explains some important terms that McCarthy created, starting with an expression which is also an atom and made by a sequence of letters or a list of zero or more expressions separ

The Promises of Functional Programming

After reading "The Promises of Functional Programming" by Konrad Hinsen, I found some interesting parts of the reading and with which I agree. Konrad says that there is a big future if people use functional programming languages.  Konrad Hinses explains some disadvantages of using functional programming languages which are very important and interesting. Functional programming has advantages for concurrent and parallel programming and we can see those differences clearly with Clojure. First, the paradigm of functional programming can be a little difficult if you have been programming on the object-oriented paradigm, for example, learning the mathematical structure of functional programming might be hard, such as stop using loops and instead use recursion for the iterations, also high-order functions is also difficult to learn and understand. Functional programming languages let you write more robust software and with functional programming languages, you don't use

Rich Hickey on Clojure

After listening to Rich Hickey on Clojure, I can agree with Rich on some topics. The main challenge for Rich is to make people understand that Clojure is very simple and that there are not as many rules as they might imagine. Clojure has many benefits, and Rich Hickey talks about one in specific: metaprogramming. Many of Lisp features are list, and being able to create programs from programs, programs from many things are great. Metaprogramming has to be used carefully. Java might be a simple programming language and used by more people than Lisp but Lisp has an advantage over Java. Using Lisp, specifically, Clojure will be simpler than Java thanks to the implementation of lots of functions in the Sequence API.  Rich Hickey also refers to the differences between Lisp and Clojure, with which I agree with some of them. First, Clojure is unique because the program is presented as data structures and not as a text to the compiler. Clojure has also more structures than only lists,

Revenge of the Nerds

After reading the article "Revenge of the Nerds", I can say that the articles have certain reason in some points. Let's start with the analogy of a boss who knows nothing about technology and programming languages and he insists into using a unique language who might not be the efficient one for the project development, arguing in a certain way that all programming languages are equivalent, which is not true and that is something I agree with the article.  Most of the times, a new programming language is created for solving or fixing a feature of another language, which is the case of Java and C++, if programming languages are equivalent, why create a new one. Some programming languages are better in some problems than others.  At the beginning, the article was about why not all the programming languages are equivalent, but then the article talked about Lisp and how many languages, like Python, are copying features and this makes simple to translate a Lisp progr

Dick Gabriel on Lisp

After listening to Dick Gabriel and his experience with Lisp, I can agree that Lisp is a functional language and this requires a different way of think than Object-Oriented Programming Languages. Lisp has a prefix notation, this means that a simple addition like 1 + 1 = 2, would be a (+ 1 1) in Lisp. You may ask, why do this operation that way? Well, because for the computer it is easier to parse the operation with a prefix notation because the operations are executed as they are read. Even though Lisp has been used for artificial intelligence, the main reason for Lisp's lack of usage is the learning curve which is high.  I've heard of many programming languages, but I must accept that I haven't heard of Lisp nor Clojure before this course and this must be because of the few people that use them. There might be a few people using them, but these people are the ones who have a specialized way of thinking.  Knowing Lips and its functionality will help you for having

Beating the Averages

After reading the article "Beating the Averages" I can say that this text really caught my attention. Getting to know more about Viaweb and its creators was something very interesting to me. It doesn't matter if many people have the same idea as you, you must be the first one to carry out that idea and that's what Viaweb's creators did. But this article's main topic is not about Viaweb's creation and its developers, it is about LISP and why it is considered, according to the article, as the best programming language which is something that I differ from the author because for naming a programming language as the best you must know all the programming languages in the world for comparing LISP with others and name it the best one. Tools are helpful and here is where I agree with the author, programming languages are tools too, but not every tool works on every job and the same thing goes for programming languages. You have to choose whether to use LISP o