Posts

Showing posts from 2018

Triumph of the Nerds Part II

Image
In class we saw a documentary called  Triumph of the Nerds: Riding the Bear.  This episode is the continuation of a previous post s, of a series of videos that are  about the development and history of personal computers 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. IMB is a giant beast, like a bear. It is a conservative and well-structured company, with well-defined processes and behaviors. A well-established and respectable company had to do something with the nascent competition that the nerdy guys started.  With the development of its own personal computer, IBM had to make a choice between Bill Gates and Gary Kildall to build the Operating System (OS).  Kildall had extensive experience in the area, Bill Gates was younger and with a greater focus on computer languages.  Bill Gates ended up being ...

Language as the Ultimate Weapon

Image
" But if thought corrupts language, language can also corrupt thought ." -George Orwell, 1984 [1]   As part of the subject Programming Languages , I read Nineteen Eighty-Four, a dystopian novel written by George Orwell. I really enjoyed this book, it is written very intelligently, Orwell managed to build a complex and detailed universe. Something that surprised me enough was the language so well structured that the writer created: its origin, its bases, its grammar rules, its use. Amazing! But ... what does this novel have to do with a course in programming languages? The answer is given by Jem Berkes, in his article Language as the "Ultimate Weapon" in Nineteen Eighty-Four.  First, we need to understand the following: in the novel, political power makes use of language to emulate the truth, deceive the public and convince them of the good work that the "big brother" does. They manage to manipulate and change and control the thought,...

The Roots of Lisp

Image
The article "Roots of Lisp" written by Paul Graham, helps us understand what John McCarthy discovered from a handful of simple operations and notation for functions, that later evolved in a programming language: Lisp (because of "list processing"). The Lisp Model is a consistent model of programming, what McCarthy discovered is a landmark in the history of computers, and in what programming is becoming in our days. First, we have seven primitive operators: quote, atom, eq, car, cdr, cons y cond. It was very easy to understand its operation, I am familiar with some of them, although in Clojure they have different names (like first and rest). Then we have the functions, that are expressed with parameters and expressions. An expression whose first element is an expression is called a function call, this means that the parameters can be used both as operators or as arguments in expressions. Knowing this, we have a way of expressing new functions in te...

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 ...

Dick Gabriel on Lisp

Image
In the podcast titled "Dick Gabriel on Lisp" by Software Engineering Radio, the guest, Richard P. Gabriel, talks about the characteristics and capabilities of Lisp. An important approach is given to artificial intelligence as the historical context of Lisp. Dick Gabriel does a very good job talking about Lisp, Why? Well, he is a computer scientist, he has degrees in mathematics and artificial intelligence, he has a Lisp company and he also writes poetry! Lisp was one of the earliest functional languages, the computation is done by nesting functions. I agree with Gabriel when he says that it is very interesting, to be able to write Lisp programs using Lisp programs. In other words, the interesting thing is that functions are data and the data can be functions. People who work with artificial intelligence (AI) try to write programs that no one knows how to write, Gabriel thinks that it is the grand goal of Lisp. The language uses a metacircular interpreter, thi...

Beating the Averages

Image
As programmers, we always ask ourselves what languages we should learn, in what languages we should improve or even if we should learn more, in order to be competent professionals. In this article, Paul Graham writes about the development of his company called ViaWeb, whose software was developed mainly in the programming language called LISP. LISP was the key because it gave them a significant competitive advantage. Graham confirms something we all know: software is a very competitive business, the company that makes the best software in the fastest way, takes over the market and leaves out all its competitors. The author reveals the key to avoid this situation: choose the right technology and focus on doing what others are not doing. Do something weird! Graham and Morris, creators of ViaWeb, saw the great potential of LISP: speed, cost, and unique characteristics. Making use of a 'strange' language allowed them to dominate the market and their company began to gr...

The Semicolon Wars

Image
According to the article The Semicolon Wars, written by Brian Hayes, there are about between 2,500 and 8,500 programming languages. It's a Madness! With all these programming languages, it is complex to answer the following question: Which programming language is the best? Although I don't know more than 20 programming languages , I agree with the author when he mentions: "what's most fascinating about programming languages is how dramatically they differ." Diversity is good ! The different categories of programming languages adapt to different ways of thinking and focus on solving different types of problems. All languages have their advantages, disadvantages, and limitations, there is no such thing as a silver bullet. Something I found very interesting and reflexive, was the argument of the linguists Edward Sapir and Benjamin Lee Whorf , that maybe it can not be applied in human language but in the language of computers: " w...

About Me

Image
Hi! My name is Gabriela Silva, I'm 22 years old and I'm a ISC student. What do I expect from the Programming Languages course?  This course seems to be quite challenging and different from other classes I've taken. I'm excited to learn new and different things, it's the first time I work with Clojure, so I hope to learn a lot about this language and also about the different programming techniques that we will study throughout this course.  About me! - Hobbies and personal interests I spend a lot of time listening to music, I just can not live without it. One of my favorite hobbies is reading, so I'm happy because we are going to read a good novel in the course. I also love baking, whenever I have the opportunity, I do it. And of course, I love watching movies and TV series. Things I recently enjoyed  Books:   A very good compilation of short stories written by Edgar Allan Poe. My true love gave to me: a book of Christmas stories. ...