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.


sábado, 25 de agosto de 2018

BEATING THE AVERAGE


I agree with the argument that says that learning a programming language in specific won’t get you a job or will make you win a lot of money, but it will make you smarter and will improve your mind and will make you better writer in languages. So, I can say that learning Lisp will make me a better programmer.

I believe it is great to ignore what other people are doing. It is incredible that a company grows ten percent a year, this means to work hard and stay there. It is important to get new features done before its competitors to avoid them taking the advantage. Lisp let us to do so, it let us to write software quickly, and server-based applications magnify the effect of rapid development.

In business a valuable thing is the technical advantage over your competitor and they won´t understand. Programming languages vary in power. People prefer to program in a high-level language, and have a compiler translate it into machine language for you. Also, people have a language for every specific program they want to write or similar programs that they have made with a specific program. But, after certain age, programmers rarely switch languages voluntarily. People tend to consider just good enough whatever language the used to.

Lisp macros are unique, and they are related to parentheses they are not there just because they want. They are not there just to be different. Parentheses are the outward evidence of a fundamental difference between Lisp and other languages.

In conclusion, do not stick into the normal standards, make different things. They can be the difference between you or your company and the competition, don’t be afraid to use new things, they could make you more efficient and would give you more value than others.

viernes, 17 de agosto de 2018

THE SEMICOLON WARS


The first thing that caught my attention is the fact that to be a polyglot programmer we need to know several forms to do something. Also, at first I read the quote "Every programmer knows there is one true programming language. A new one every week"(Hayes, Brian. 2006). and, it caught my attention because this means that we must know every language as programmers.

I didn´t know that there is a list with 2,500 programming languages, I never imagine that there are too many languages and of course I didn´t believe that are more than 8,500. What is more important, the languages are not the same between them they all try to improve something and be different on a certain area. But the truth is that we don´t have a language considered the best, just because we don´t know the best notation.

Something interesting is the fact that if you program a solution on a specific programming language, you should have the same answer on another programming language solution. Also, I didn´t know that programming languages are classified in four families. 

If we explore the four categories we will see they are not similar between categories and we can see it better seeing them as low and high-level programming languages. Low level languages work with addresses in memory and input and output devices, while high level works with insulating layer of abstraction. So, we can analyze this information and get the conclusion that every programming language has its own advantages and they can be used in different areas of application because of its characteristics. 

In my opinion, every programming language has its own advantages and its own synaxis. But with every language you can find a solution, obviously in some languages, the solution will be shorter or faster than in others. We can choose a language from the 8,500 existing languages but we must fill comfortable with it, the important thing is that we can learn a lot of programming languages and still having a favorite one. It´s up to the programmer

martes, 7 de agosto de 2018

This is me

"Hello there", my name is Sergio Adrian González Hidalgo,but I prefer to be called Adrian. I am studying the seventh semester of major in Computer Science at Tecnológico de Monterrey Campus Estado de México.

I am currently working as a Junior Consultant for DGA Consulting Technology developing Business Intelligence apps for Grupo Bimbo. 

From this course, I expect to learn the structure and the importance of a new programming language and try to apply it to my daily life as student or at my job. I also want to improve my programming skills and find other ways to solve problems.
My hobbies are:
  • Painting: I have painted with watercolors, chalk pastel, colors, and acrylic paint. I prefer to paint movie characters.
  • Watch movies: I love going to the cinema. I usually go twice a week if the school and my job allows me to do so. My favourite genre is the suspense. One of my current favorite directors is Edgar Wright, I enjoyed Baby Driver a lot. My favourites movies are:

  1. Christopher Robin
  2. Watchmen
  3. Avengers:Infinity War 
  4. Star Wars (All of them)
  5. Lord of the rings
  6. Psicosis
  7. Baby Driver

  • Play Videogames: I have played videogames since I was a kid, I mainly enjoy shooter videogames because I consider myself good at them. One of my previous dreams was to become a profesional gamer.
  • I don´t watch series because I don´t like to wait for another season.