“These are the four typical problems in the financial industry where functional programming provides its best value. The table represents my own conclusions after working with multicore, imperative languages, functional languages, clusters and the Cloud.”
“I think the potential for Open Parallel could be to provide expertise to perform many of the things I mention in the second column. I still see potential in many applications that are written in R and have to scale (NB.- Gastón is referring to observations about R from Ross Ihaka, one if its authors: see comments below following this post). That’s where I see potential for Open Parallel.”
Typical problem in the financial industry How does functional programming help?
Prototyping complex algorithms that will run on huge amounts of data take more time than expected. Modern functional programming languages reduce development time and make it easy to perform rapid prototyping for complex algorithms used in the financial industry.
Difficulties to scale across multiple cores, processors, servers and clusters. Difficulties to move to the Cloud. It is usually necessary to make a lot of changes to the existing code in order to transform extra power into application performance when working with imperative languages. Modern functional programming languages support multicore and parallel distributed programming from scratch. Because of the way in which functional programming languages allow you to code, you can take advantage of immutability and reduced undesired side effects, and therefore, you’re ready to scale without the typical concurrency and parallel programming nightmares that you have with imperative languages. It is easy to scale according to the capabilities of the hardware infrastructure without having to make changes to the different algorithms. In addition, modern functional programming languages offer excellent execution speed (older functional programming languages were slow but that’s history).
Performance problems, difficulties to find errors for specific cases when performing computations, applying statistical analysis, and/or processing complex rules in huge amounts of data. It is usually difficult to test all possible cases. Code correctness is difficult to achieve. Modern functional programming languages make it easy to code artificial intelligence rules in a natural way and allow developers to take advantage of recursion without undesired side effects. The immutability nature of functional programming languages and the possibility to work with units of measure reduces error rates in complex rules that are so typical in the financial industry. The code is less error prone and it is easier to predict results without having to test all possible cases. In addition, functional languages make it easier to create efficient engines that can process rules on huge amounts of data and scale. Code correctness is easy to achieve.
Difficulties to work with lexing and parsing when analyzing rich data. It requires huge efforts to create efficient, scalable and correct code using imperative languages. In addition, code is difficult to read. Lexing and parsing are part of most modern functional programming languages. There is a natural way of analyzing complex rich data. The code is easy to understand and can scale without requiring huge efforts in optimizing algorithms. Developers just focus on writing the algorithms and then they run it on the necessary data with minor changes.

Some information about functional languages and the financial industry

 

Advertisements