The Promises of Fuctional Programming
The way of develop software has evolved along with the hardware that substains it. As the article mentions "We moved from machine code to assembly languages and then problem-oriented programming, which have evolved to integrate techniques such as structural and object-oriented programming." We went from monolithic programs via separately compilable modules and libraries to software component technologies.
Following the line of finding new alternatives a different approach was developed as a mathematical theory in the 1930's (Alonzo Church’s λ-calculus) and as a programming technique in the 1950s (John McCarthy's Lisp language).
So on one hand we have the functional programming which was harder for the hardware to compile and requieres a lot of learning and unlearning, and on the other hand the imperative programming (the traditional one) easier to compile into efficient machine code. The functional programming was designed for another type of operations like calculus whereas the imperative programming could be more "general".
On recent years there has been an increase on people interested in functional programming because of the advantages that this paradigm provides for concurrent and parallel programming. It is also suggested that functional programs are more robust and easier to test than imperative ones.
The most recent Lisp dialect is Clojure that sets itself apart by three features: it has four highly optimized data structures (lists, vectors, maps, and sets) designed for pure functional programming, it offers extensive support for concurrency, and it was designed for the Java Virtual Machine with the goal of easy interoperability with other JVM languages, including Java itself.
Functional programming appears as the answer to some of the operations academics couldn't accomplish with the imperative programming. In recent years more a more people have chosen functional programming because of the way this paradigm manages concurrent and parallel programming among other advantages. In the end it's always good to have diversity even in programming paradigms.
No hay comentarios.:
Publicar un comentario