Doing for the first time a program is an activity that in many cases can be very difficult for some people, all of this depending on which is the problem that the program is trying to solve and which is the language that the programmer is using to create the solution because the truth is that the language in this case can be the difference between have a good experience in the programming or to have a nightmare trying to solve a problem that is not really difficult in itself but that the language doesn't allowed you to solve it in an easy way. Now the language despite of being different to the other languages, specially the most popular languages like Java or Python, share an important characteristic between them that is that they belong to the family of "imperative programming " instead of the family of the "functional programming".
The "functional programming" as Hinsen says in his article is a form of programming that allows to write a program using functions, like the mathematical expression, which change the way in which most of the programmers know how to do a program, all of this because the "functional programming" have characteristics like the absence of variables or loops and the extremely use of the recursion which makes the activity of programming with a functional language a task that involves a high learning curve and a different way of thinking, different of how the "imperative world" works.
Now, like we programmers can say that if "functional programming" is not very popular in the industry it is not necessary to learn how to manage the tools of this form of programming which maybe can be a huge mistake because in the present the technology has advanced so fast that the same has created forms in which a program can be executed talking about the parallelism and concurrence programming which is an application area that the "functional programming" serves very well and for the same is important that as a programmers give to this way of thinking and programming a chance because in the technology world anything have an static position.
In functional programming it is common to write functions that take functions an parameters and yet return another function, they are called high-order functions.
The article then talks us about concurrency and parallelism. The big issue with concurrency is the difficulty of maintaining the data in a coherent state. And for parallelism the difficulties are to identify independent computations inside a program and coordinating them with the required communication operations so that the resulting program always produces the correct result and does this efficiently for typical input parameters.
If you're interested in reading this article, here is the link: The Promises of Functional Programming.
No hay comentarios:
Publicar un comentario