sábado, 22 de septiembre de 2018

Rich Hickey on Clojure


On this podcast we can hear to Rich Hickey, who is the designer/ writer of Clojure. The master mind behind Clojure. On this podcast he talks about Clojure and some other aspects of Lisp Language as well, he refers to it as a motivation that led him design a new version of the Lisp language. He explains us how Lisp was considered the basis for Clojure.

At the beginning he gives us a brief introduction of both languages. He makes an affirmation that says that Clojure is a dynamic programming language for the gradient boosting machine, but it also runs in a common language runtime.

 Clojure runs scripts so it is considered a functional language, it runs on JVM. This is the reason why this programming language can run almost everywhere. The implementation of its data structures helps to make programming much easier than Lisp. On the other hand, Lisp programs are presented to the compiler in the form of data structures as the compiler doesn´t compile text.

Rich Hickey says that Lisp has never become mainstream as Java or C++ because this language was not designed to be a mainstream language, it was targeted toward superusers like researchers and smart people with difficult problems. As a main reason, he wrote Clojure because he wanted a language with all the power of Lisp but without the isolation problem.

The main differences and common aspects mentioned in the podcast about these two programming languages are that in Lisp data structures are mutable, they can change. In Clojure data is immutable. In Lisp, all the libraries work for the specific data structures, while in Clojure there is an abstraction of those functions to make this functions work for every data that presents any kind of sequential structure.

This podcast was very interesting to compare this programming languages and its scope and limitations .

sábado, 8 de septiembre de 2018

Revenge of the Nerds


Again, we have another approach on which is the best programming language, now considering the efficiency on resolving certain problems better than in other languages.

Paul Graham describes a character that his development of software is written in whatever programming standard by the time. The pointy-haired boss thinks that all programming languages are equal, and this is a fatal mistake. In this article we can learn that many of the actual languages are integrating lisp like functionalities and becoming more powerful.

From the article we can learn that in the past, programming languages did not support recursion. So, Lisp was one of the first programming languages that started using it. Graham says that the syntax of Lisp is friendly because we can write a great amount of code using less lines.
Something that surprise me was the fact that Lisp starts as a theorical exercise by McCarthy but after that one of his students decided to traduce it into machine language and he finally create a compiler. It was created as math not as a technology, and that´s why it is difficult to get obsolete.
In this article we read some other features that we have learned before from Lisp, as its macros. But there was an interesting idea, even if you build the most powerful macro you can not claim that you invented a new programming language, you just have created a new dialect of Lisp.


Graham mentioned three problems of using a less common programming language:

1.- The programs written in that language may not work well with programs written in other languages
2.- Probably there are less libraries
3.- Maybe it is difficult to find programmers that use that language

I learned a lot from this article, with every article I believe that we learn more from this programming language called Lisp.

sábado, 1 de septiembre de 2018

Dick Gabriel Podcast


This podcast is about an interview to Dick Gabriel, where he started talking on functional languages and defining them like this to all the languages that take arguments and return values, and they can be used in other functions. I didn´t know that they are called like that because of this.


Before this interview, I didn´t know that Lisp was too old, it has been used since 1958. Other important point on this interview was the fact that Lisp can be used to build AI software with its meta-programming and it´s meta-circularity.


Something that get out of my mind was the fact that Lisp´s interpreter was implemented in just one single night, using fifteen lines of code (Eval). Also, I learned that a metacircular interpreter is an interpreter or compiler written in same language of the program that is going to be interpreted, so it interprets itself. Also, I learned that Eval is a Universal Machine that runs lists.


I like how Dick talks about macros, because is too understandable and he teach us that is a Lisp code that produces the expression we want, and they are a string type of operation. This makes it the best and powerful attribute of Lisp language.


Before this class I didn’t know about Lisp at all, and know I know that Lisp has different dialects, in other way they are variations of Lisp language. This Variations are Scheme, Common Lisp, MacLisp, InterLisp, etc. In this interview the most used is Scheme because we understand that was the most used and popular because the side effects of it´s functions weren´t as severe as in Common Lisp.


This was an interesting interview that help me to know more about Lisp and its different dialects and advantages between them, also it helps me to know about Lisp story.