martes, 29 de marzo de 2016

Comments on "Language as the “Ultimate Weapon” in Nineteen Eighty-Four"

Verbal language can be a very important part of people’s lives, I could imagine life without it, it is the people’s way to express what they think and to interchange thoughts and emotions.

Without language, society would definitely be very different to what we are used to. On the other hand, it can be used as a weapon, when trying to control huge volumes of people, by not allowing them to communicate in a proper way and not been able to express their feelings and opinions. This is the case in the novel “Nineteen Eighty-Four”, in which language is reduced to a minimum level of complexity in order for the government to have control over people and not allowing them to express their political opinions, and therefore preventing the people from rising up and ask for change. This is expresses in a similar and more profound way in the article “Language as the Ultimate weapon”.

If people aren't allowed to communicated their thought it can become very easy to establish a strict regime, in which whoever is in control of the language, can be in control of the whole population, such is the case of the book, in which an imaginary country lives in an authoritarian regime in which people are controlled and condemned if they thing in a more freely way.

Language is a tool that allows humans to think and act freely, as stated in the article by Jem BErkes, it is key for social evolution and social improvement, without it a path to progress is very far away.
Language is the basis of our society, without communication, societies could not work together to better themselves, therefore it can be a great weapon if someone has control over it.

Talking in the sense of how this can be relevant to a computer science student. It is key to understand and know, that computer languages are very different to our spoken language, and therefore it is a whole new world of abstract and complex instructions. We must be able to understand that there are several ways of communicating things, and a computer language can be an example of an alternative of communication.


It is very important to try and think like the language in order to properly understand it. By doing this we can involve ourselves deeper into it and to greater things.

Comments on "The triumph of the Nerds: Part III"

In the early 1970´s computer Enterprise Xerox, created an initiative designed to dominate the future of the computer and technology market. They had developed and built a computer called “Alto” that was very expensive to build and was never sold to the general public. This computer had a graphic interface that included what we all know today as the mouse, which could allow users to move a mouse which was a cursor on the screen and allowed the use to have a much more efficient navigation through the elements of the graphic interface.

This computer, also had connection to other computers by an Ethernet connection, which was very ahead of any of the competition. They were also the first company to allow to connect a printer to the computer and print the content of what was shown in the computer.

Steve Jobs saw all these features of the Alto computer and wanted to have something similar in his computers. The computer in which he introduced the Alto like technology was the Lisa computer, it was never a huge commercial success due to its high price. Later on the Macintosh was developed which was sold at a very competitive price which generated a huge competition with IBM.

The Macintosh was the first affordable computer with a GUI interface and made an association with Adobe, which was a company specialized in design and could allow users to print exactly what was in the screen, among other features. Apple decided to buy the 19% of Adobe, which turned out to be a great decision, since users found great advantages of using adobes products on apple computers. This lead to a huge success for Apple.

At the same time Microsoft say the same opportunity and decided to implement a GUI into their OS, which they eventually called windows. This generated a series of controversial arguments between Apple and Microsoft, in which Apple said Microsoft had stolen their look.


Microsoft became the leading software company in the world and Steve Jobs was left out Apple by making some wrong moves according to the Apple board.

miércoles, 16 de marzo de 2016

Comments on "Rich Hickey on Clojure"

Not very often we hear from the actual creator of a programming language, in this case we heard from Rich Hickley, the creator of the Clojure programming language.

In this podcast, Rich talks about the most important differences and advantages between Clojure and all the other LISP based programming languages, and what makes Clojure a unique solution thanks to its uncommon features, that make Clojure a great programming language, when trying to solve a particular problem.

One of the main characteristics that Rich mentions about Clojure, is that is a programming language, based on the Java Virtual Machine (JVM) that works in a dynamic way and has the JVM working as an intermediate between the program attributes, and its functions. This works great when we want to develop and optimize for parallel programming, it uses literals as lists and vector, which not many LISP programming language implement.

Clojure can be a great option when trying to solve a given problem, but it is not necessary the best option in every case, sometimes using other languages like Java, may be easier for the programmer to give a solution to a problem. Clojure is a declarative programming language, which can be a great source of learning if we are not familiar or we don’t have much practice using declarative programming languages.

Clojure allows the use of libraries which allow the developer to work in a more efficient way when using data structures, theses libraries are a set of collection, that allow the programmer to implement in an easier way certain functions that eventually will lead to a better quality and performance of the software delivered. Another great characteristic of Clojure, is that the data structures are immutable, which guaranties a better performance, since values must not be locked and this makes it useful when wanting to program in a parallel way.


Clojure is one of the best programming languages, when trying to learn to code, it will open the panorama and will enforce our programming experience.

miércoles, 2 de marzo de 2016

Comments on "The promises of functional programming"

There are many functional programming languages in the industry, Clojure, LISP are some examples of such languages. These type of programming languages can sometimes become very useful, when we want to solve a specific problem. Sometimes using a functional programming language may not be the best option for solving a problem. We must analyse the problem we want to solve before choosing a functional programming language.

Functional programming languages allow us to solve mathematical programs using threads, the evolution of technology, has limited the amount of resources available in a computer to solve and execute instructions, the new solution to this recently has been adding multiple cores to processor to make the processing capabilities of a computer much higher.

There are many difference between the imperative type of programming and the functional programming languages. One of the main difference is that functional programming languages have no variable types, such variables are immutable because there are bindings that can’t store values.
Another main difference is that functional programming languages don’t use loops, they are designed to use recursion in order to reduce the execution time for a given problem that demands a lot of resources.

Finally another difference, is that functional programming languages are composed by functions which will in every situation yield the same result to and specific output. This results in side effects that are produced by the program, in order to maintain the natural flow of a functional programming language.

Functional languages are very good options if we want to write programs that solve a problem using parallelism, since bindings are immutable, the race conditions can be avoided, which in a future will avoid the necessity of implementing locks that will result in the absence of deadlocks.

The negative side of using functional programming languages, is that they are not very commonly used and compilers don’t produce very effective parallel executable code.