Posts

Showing posts from February, 2018

The Promises of Functional Programming

Image
Functional Programming, Do you know how amazing it is? Do you know the advantages it has?... No!, okay, let me tell you what I learned when reading the article  The Promises of Functional Programming written by Konrad Hinsen. The article focuses on talking about the characteristics and advantages of functional programming, focused mainly on Clojure, because if you did not know, this language (Lisp's dialect) is great; the article also mentions the main differences with traditional programming.  The advance of technology allows to create more powerful and complex software, therefore, new techniques need to be developed and applied. Functional programming was born around 1950, but recently it has been used to write real-life programs, maybe that's the reason why I had not heard of this technique before. Functional programming has several advantages for concurrent and parallel programming, there are more robust and easier to test than  traditional ones. ...

Triumph of the Nerds Part I

Image
In class we saw a documentary called Triumph of the Nerds: Impressing their friends. This video is about the development and history of personal computers (PC's) and also of the innovative, creative and risky people who were in charge of introducing this industry to the world, laying the foundations and making it grow to be what we know today. Although it's hard for us to imagine life without PC's, it was only a few decades ago that they came into the world and within everyone's reach. The microprocessors are the reason why we can have a personal computer, although IBM manufactured the transistors, it was not IBM who created the first personal computer, it was actually Ed Roberts with his Altair 8800. Ed was the funder of MITS (Micro Instrumentation and Telemery Systems), the Altair 8800 was the first personal computer, consisted of switches and lights, for amateurs. This microcomputer aroused the curiosity and creativity of computer nerds, who sought to fully...

Rich Hickey on Clojure

Image
In the podcast titled "Rich Hickey on Clojure" by Software Engineering Radio, the guest, Rich Hickey,  talks about the characteristics  and capabilities  of Clojure.  An important approach is given to mention the differences between Lisp and Clojure, and the motivations for creating Clojure. Why  Rich Hickey does a very good job talking about Clojure?  Well, he is the creator. What makes Clojure unique?  We already know that it is a functional language that runs on top of the JVM, but its most special feature according to its creator is  the fact that programs are presented to the compiler as data structures, no text.  In common Lisp those data structures are lists only, but in Clojure can be vectors and maps. This characteristic of Clojure makes programming and metaprogramming the same thing. A very interesting question is asked to Hickey: Why Lisp is not a mainstream programming language?  His response was that L...

Revenge of the Nerds

Image
  Are all programming languages equivalent? As programmers, we know the answer: no, some languages are better, for certain problems, than others .  Revenge of the Nerds, written by Paul Graham, is an article that talks about the diversity between programming languages, letting us see that not all languages are the same, although people who don't know much about computing and technology, think so only because it's a comfortable idea . It also talks about how the programming languages are more and more like Lisp.   Lisp was not designed to be a programming language... What? Yes, Graham explains that the beginning of Lisp , in fact, was an effort of John McCarthy, to define a more convenient alternative to the Turing Machine. McCarthy said that another way to show that Lisp was neater than Turing machines was to write to universal Lisp function, briefer and more comprehensible: the Lisp function eval. This later transformed into a lisp interpreter when Steve ...