Entradas

Does Newspeak has something to do with Programming?

I found the reading really interesting, because the reading talks about how language and media control the way we think and how by removing concepts from language it is harder to think or communicate the concept. The reading mentions "b y manipulating the language, the government wishes to alter the public’s way of thinking. This can be done, psychologists theorize  because the words that are available for the purpose of communicating thought tend to influence the way people think ". Applying this concepts to programming  languages it made me think that todays top programming languages kind of limit your way of thinking by oversimplifying some of the instructions there are, for example removing pointers or making it difficult to use advance data structures. I also noticed that the people who use these new programming languages tend to have less knowledge about the low level instructions that can be executed. Every single programming language limits the vision of the person

Two is more than double of one

This week's reading talks about pair programming, a software development practice in which two developers work at the same time in the same project in the same thing in order to keep track of the work in case one misses. But it also improves times, productivity and software quality. The reading's goal is to facilitate the transition to pair programming by explaining how you already know how to do it. The text begins explaining how pair programming in the XP methodology for development is really successful and how programmers attribute the success of their productivity and the methodology to the technique. And although many programmers tend to work alone and resit to the change, most of them  succeed in the transition to pair programming and begin loving it. The first rule of pair programming is Share everything, even mistakes. The second one is play fair, meaning that you shall not take the control of the development and let the other person also be the one who codes. The thi

What about women?

I think the reading was amazing, specially for the month we are in. It is very interesting to know the article mentions all these prominent women in Computer Science who did not get in their time the recognition they deserved. On the other hand, I knew before a lot of the facts about women in computing the article mentions. I can recall that my sister once explained to me that the first programmer was a women because men were most suited for hard labor such as Electronic Engineering and not for something soft as software.But then, just as the article mentions it, the things changed and the number of women in the area drop suddenly because they were replaced by men who saw potential in the area. In this specific area, discrimination against women began due to the high payment job that it represented and also because it was a nerd job, a job for people who often have trouble talking with anyone, people that is really mean. And, if you add up all of these with the fact that women were co

What makes Lisp Lisp?

I found this last text repetitive and boring, I think I had understood where Lisp came from and almost everything there was to know about its story in the previous readings and podcasts. The only part of the reading I found interesting was the eval definition function where they showed you how to write the Lisp interpreter in Lisp. The thing with programming using a functional language is that is a complete flip of paradigm, when the data is also the code and you need to differentiate it using quotes. One of the difference I found in this reading regarding Lisp and Clojure is that in Lisp the empty list represents false and the atom t represents true where as in Clojure we have true to represent true and false or nil to represent false. Also, I noted the differences between the primitive functions in Clojure and in Lisp, where in Lisp they are called weird and in Clojure they have the name of what they do. This last I noted since the podcast about Lisp that explained why the functio

What is Clojure?

The podcast "Rich Hickey on Clojure" explains what made Rich Hickey consider the idea of creating a new programming language called Clojure, based on Lisp and running in the Java Virtual Machine. What I enjoyed the most of the podcast was the explanation of the immutable data structures because if you consider data to be immutable and consider a big program then you should worry for memory as everything would be kept in memory and this is not efficient. So, what makes Clojure efficient? It turns out the programming language uses Single Linked List and instead of creating an exact copy of an Array or Set but with a value change, it uses the Nodes of the Linked List just to add the new path of the changes. In other words, if A->B->C and you change B to D it create a new A to point D and D will point C, so you would have your two lists A->B->C and A'->D->C. This intelligent approach reduces redundancy and memory usage by recycling the parts of the structur

A real dive into LISP

The podcast Dick Gabriel on Lisp mentions a lot of the workarounds from this programming language, one of the most interesting aspect of the programming language is that it is very similar to the theoretical Turing Machine. The importance of Lisp is the promise that it makes to help in the research of artificial intelligence due to its functional approach to programming. This approach is what makes it really similar to the Turing Machine, because said machine is a mathematical representation of programming and functional programming is also a mathematical representation. Comparing Common Lisp with Clojure which is a Lisp dialect that we are learning, you soon realize that Lisp has not taken yet the world of programming because it is not a very obvious language, a lot of the mnemonics have to do with the assembly implementation of the language itself and not with the action that it makes in a higher level. I think this is one of the reasons why functional programming has not taken the

Is really functional programming better?

Since the beginning of software development, we have used the same programing techniques, the author mentions that this is because it “closely resembles how a computer works at the hardware level: the processor fetches data from memory, performs elementary opera- tions on it, and writes the result back to a memory cell” (Hinsen, 2009). The only different technique that has been developed is functional programming, which was developed as a mathematical theory first and then into a programming language called LISP. So, we have two different approaches: functional programming and imperative programming.   Functional programming consists on composing functions for computations, just as previously mentioned, this paradigm was first a mathematical theory and thus a function is “a mapping from input values to output values” (Hinsen, 2009) not to be confused with subroutines. A big difference between functions from functional programming and from imperative programming is that functional fu