sábado, 20 de octubre de 2018

Language as the Ultimate Weapon

Language as the ultimate weapon

Author Jem Berkes explains different perspectives of George Orwell's novel 1984. He mostly states that Orwell is worried on the power of speech and tries to make the reader conscious and how they can be manipulated without even noticing. 

In Orwell's distopia, which is set in a supposely near future he from Orwell, he states the and emphatizes the great power of rhetoric and how it is used to politically manipulate people. This novel is not far from truth. It is widely known that worlds greatest orators use rhetoric to emphatize and convince people on following their same ideals.

In the article, Berkes mentions that language shape peoples' minds and beliefs to the point where reality can be easily manipulated. I think all of this is easily related to politics and world order. Language is used to conceal truth and the interests of just a few.

After reading this, I can agree on languages power in both right and wrong ways, Nevertheless, languages can be seen in programming as a tool to solve different problems and with different perspectives or paradigms. There is not one that is ing and better than any other in all ways, that's what makes programming fun and infinite. There is never one single way to do something and finding unique, faster and reliable ways to solve problems is what makes new programming languages being developed.

sábado, 13 de octubre de 2018

The Roots of Lisp


The roots of Lisp

Paul Graham shows no this paper once again why Lisp is such a power language. Paul shows a series of highlights where he tries to tell us some of Lisp's main pros against other "common and mortal" languages. An interesting point to keep in mind is the amount of credit Paul gives to McCarthy, who as we have discussed before, was the theoretical creator of Lisp. Paul Graham shows a great level of worshipness and acknowledgment as he even says McCarthy is as important toprogramming as Euclid is in geometry. 

According to Paul Graham, best programming languages are C and Lisp. Now that I have some knowledge on Lisp and been coding on one of its derivative languages, Clojure; I know that is not false at all. Personally I think Lisp and every language derived from this one is the ammount of abstraction built into the compiler so that multiple datatypes can be evaluated in the same way without having to worry about conversions, datatypes, memory, etc. However, I think and can certainly give credit to the architecture of all functional languages instead of just Lisp. 

Instead, Graham gives all credit to Lisp handling all expressions as lists, where the operators mainly occupy the first element in a list. However, we can actually see this operators from a different perspective, a bit more like functions. This emphatizes another Lisp great feature, which is that is functional.

In conclusion, Lisp main feature is its design and achitecture. How functions are evaluated allows programmers to comprehend more, how the code is working. This also translated into the ability to create macros.

sábado, 6 de octubre de 2018

The promises of functional programming

The promises of functional programming

Computer technology has dvanced since its beginnungs, however programming techniques have pretty much remained the same. IO burst, followd by a CPU burst and then another IO burst. But there is another technique developed in 1950s as a programming techniques and it is called functional programming.

Functional programming is not very know or used because it's commonly used for research and not for real-life programs. Recently it has gained more popularity because it has advantages for concurrent and parallel programs and it provides a simple way to test programs.
Functional programming is used by computing functions by mapping input values to output values. The only task should be to return the same output when given the same input without side effects. One important part of functional programming is that as functions don' need to write in memory, variables are not needed. This may sound as a problem but the computation of a value is much easier. 

Functional programming uses abstraction very prominent so we use what we call a higher-order function that uses another function as a parameter and returns another functions as a result. This makes it very usefur to implement repeated patterns inside an algorithm.

Concurrency and parallelism are gaining importance since single threaded performance is not improving nor moving forward as it should. Also computer hardware is becoming more powerful to a point where it becomes almost impossible to improve more. These concepts are sometimes very hard to work on using traditional programming. Therefore enters functional programming.