miércoles, 6 de septiembre de 2017

Revenge of the Nerds

This article is about the most important aspects of programming languages and specifically of LISP, LISP was created by John McCarthy, and what is awesome about it, it's that it was not designed to be a programming language, McCarthy did it as a theoretical exercise, he showed how given a handful of simple operators and a notation for function you can build a whole program, he called LISP because it used lists as its basis, it stands as List Processing. But McCarthy was not the person who developed the language to work in a computer, it was Steve Russell.

LISP is the basis of many programming languages we know at this moment, for instance they implement many of the fundamentals of LISP, for example:

-       Conditionals: Most of the language have this feature included nowadays
-       A function type: IN lisp, functions are a data type just like integers or strings, they have a literal representation can be stored in variables can be passed as arguments.
-       Recursion, LISP was the first to support it.
-       All variables are effectively pointers, values are what have types, not variables
-       Garbage Collection
-       Programs composed of expressions.
-       A symbol type.
-       A notation for code using trees of symbols and constants.
-       The whole language there all the time, there is no distinction between read-time, compile-time and runtime.
-        

As you can see, not only LISP  has this fundamentals, many languages have this fundamentals and the most important part of the article is to basically know that each programming Language focuses on specific tasks, web development is to javascript, data Structure java or c, and it is important for us as engineers to know which Language to use for each task to make our lives easier and our work the best.