sábado, 8 de septiembre de 2018

Revenge of the Nerds

Revenge of the Nerds
The author starts by comparing two statements, that all programming languages are pretty much equivalent and the opposite, some programming languages are better than others in solving some specific problems. Sometimes is simpler and more comfortable to think that programming languages are equivalent, however, it is a lie.

Lisp was never really designed to be a programming language, instead, as an effort to define an alternative to Turing Machine. Some time later, Steve Russell looked at the definition of eval  and realized the translation to machine language was actually a Lisp interpreter.

Lisp was made different by nine new ideas that were to 2002 still unique to Lisp. The most interesting and most important are the following. Functions are a data type and they can have a literal representation, can be stored in variables and passed as arguments. Lisp was the first one to support recursion. Symbol type variables that are pointers to strings in a hash table to test fast equality.

The are three main problems that can arise from using less common languages. Programs may not work well with programs written in other languages, Amount of libraries at our disposal. Amount of programmers familiar with the language. The importance of this problems varies on the amount of control there is over the whole system. If you have little to no control, then it is advised to stick to the common languages, else, you could create your own language if you want.


If you use a less powerful languages it is pretty much certain you will end up with a larger program. It is not specific how much shorter Lisp program would be, but against C there has been numbers that is 7-10x smaller. With all these information I just keep on thinking that functional languages should be the first approach of a person to computer programming.

No hay comentarios:

Publicar un comentario