An Overview of Practical Impacts of Functional Programming
An Overview of Practical Impacts of Functional Programming
net/publication/323714122
CITATIONS READS
9 4,080
2 authors, including:
Ye Yang
University of Science and Technology of China
66 PUBLICATIONS 730 CITATIONS
SEE PROFILE
Some of the authors of this publication are also working on these related projects:
Who Should Take This Task?: Dynamic Decision Support for Crowd Workers View project
All content following this page was uploaded by Abdullah Khanfor on 01 April 2019.
Abstract—Functional Programming (FP) is a programming programming in FP that it’s the essential aspects in improving
paradigm in which the mathematical function evaluation is the developers productivity in the early 1990’s. Unfortunately,
main block in building the software. FP languages are more general claims with each programming paradigm, including
suitable for handling parallelism and concurrency. Over the FP, that will improve the software development process [5].
years, many different FP languages and programming style had To develop further understanding on practical evidences of FP
been proposed and studied. However, FP is generally considered
to be difficult to learn and master than another programming
in software development life cycle, the main motivation of this
paradigms such as object-oriented programming. In this paper, study is to conduct in-depth research to identify the effects on
we aim at deriving an understanding of practical impacts of using software development life-cycle caused by adopting FP.
this paradigm in the software engineering practices through a
literature review.
II. L ITERATURE S EARCH AND S ELECTION C RITERIA
Keywords—Functional Programming, Software Engineering,
Literature Review. The early introduction of FP in the late 1960s propose
a challenge to collect all the possible research papers. Not
only that, the growing trend over the years for the usage of
I. I NTRODUCTION AND BACKGROUND
keyword “Functional Programming” in software engineering
The limitations on producing a faster clock rate Central and computer science research, is another layer to collect
Processing Unit (CPU), the growing number of interconnected papers. Especially, the influence of FP in software development
devices, and the demanding for more computing power raises life cycle (SLDC). Our paramount inclusion criterion is to
significant challenges for developing software that overcomes examine the papers that show any evidence of FP impact in
these constraints. Therefore, fundamental changes are required SDLC such as Design, Implementation, Testing, Maintenance,
for programming methodologies and paradigms to utilize the etc. Therefore, we exclude papers unrelated to our criterion;
existing computing power. Different programming paradigms e.g., papers concern in the programming language design.
have been proposed and applied in order to solve different Afterwards, published papers in one of the conferences and
problems such as Object-Oriented Programming (OOP), Func- journals related to FP or Software Engineering are collected
tional Programming (FP), Symbolic Programming, etc. The for the next phase of our research. The literature language,
simplicity of OOP eases the representation of many problems, of the gathered papers, is in English. Therefore, An exclusion
and the numerous OOP tool suites speed up the wide-spread for publications in other languages from our literature review
of OOP. Moreover, a large number of programmers familiar process. Lastly, all the accumulated papers are before August
with OOP paradigm is a cornerstone of its popularization in 2017.
building complex systems.
We perform the search in different online libraries. Consid-
Nowadays, with a physical limitation of faster CPU [1] ering the publishers related to computer science and software
that adopt Moore’s Law [2] is the primary motivation to engineering topics. The digital libraries that we conduct are:
employ parallelism and concurrency of distributed multi-core IEEE Xplore, ACM Digital Library, Elsevier ScienceDirect,
systems. Parallel computing is hard to achieve [3], but the more Springer Link Online, Wiley Online Library, Taylor & Francis,
demand with multi-core processors and distributed systems Oxford Journals and Google Scholar. We apply Functional
that require higher and well-structured computation processes. Programming as search term to all selected online libraries.
However, McKenney highlighted that parallel programming is This end up with 184 artifacts relevant to the topic. A first
considered to be hard topic [3], largely due to difficulty in FP round of screening process by reading the title and abstract
paradigm. The high cost of parallel systems and the relatively in which is performed to the collected research papers, talks,
rare demand made many developers not exposed to it. This books, reviews and articles. Papers with titles relevant to our
resulted in the lack of expertise in parallel programming within criterion had been examined carefully to extract informative
typical researchers and practitioners; the low accessibility to ideas and conclusions related to this paper. Figure 1 reflects
working parallel code; and the high overhead communication the collected paper for the study and shows the cumulative
between different parts. Hughes [4] demonstrated modular frequency over the years of publication.
180 encourage and enforce the developer to use the mathematical
160 functional style as the main block to bulid the software [20].
Number of Papers