A Critical Evaluation on Programming Paradigms to Achieve Optimal Resource Utilization of Mobile Softwares in Mobile Devices

A Critical Evaluation on Programming Paradigms to Achieve Optimal Resource Utilization of Mobile Softwares in Mobile Devices

Selvakumar Samuel (Asia Pacific University of Technology and Innovation, Kuala Lumpur, Malaysia) and Arangasamy Kovalan (Periyar Maniammai University, Vallam Thanjavur, Tamil Nadu, India)
Copyright: © 2014 |Pages: 10
DOI: 10.4018/ijide.2014010105


This paper evaluates the features of mainstream programming paradigms. Imperative, object oriented programming and functional programming concepts are considered here. This is an effort to identify the programming paradigms which consume less resource from mobile devices. Designers usually depend on the programming languages, language oriented programming design is in current practice. Choosing appropriate programming paradigms during the mobile application design is not in practice now; Failure to use the best approaches for mobile computing from programming paradigms will cause mobile applications to consume more mobile resources. Imperative paradigm concepts such as inheritance, creating redundant objects, unnecessary constructors, recursion, strings concatenation, thread synchronization, using global variables and abstract methods results in redundancy, memory leaks, stack overflow, low execution speed and consumes more memory. These features are relatively not suitable for mobile software development. Functional paradigm concepts such as higher order functions, tail recursion, lazy evaluation, referential transparency, parametric polymorphism, and list comprehension principles are suitable for mobile software development as they consume less memory and or use less processing power. Using appropriate paradigms will optimize the resource utilisation of mobile applications in mobile devices.
Article Preview

1. Introduction

Presently, mobile devices are able to do things that are normally done with computers, including desktops and laptops except for software development. The advantage of mobile devices is that it consumes much less power compared to computers, hence if used for common computing need; it will save energy and contribute towards keeping our planet green.

In programming, there are many paradigms that have been suggested and this keeps evolving, in order to suit the requirements of software development of the respective times. A paradigm defines a fundamental approach to design a solution for a given problem. Choosing an optimal paradigm will enhance the accuracy and performance of the solution. Mostly procedural, structural and object oriented features are common when we use languages like Java, C#, C++, Objective C etc. for mobile software development. Inappropriate use of paradigms consuming more resources while running the mobile applications in mobile devices.

“Optimization is the process of making your application run more effectively. You can optimize for many things like speed, memory space usage, disk space usage, etc.” (Bartlett, & Bruno Jr., 2004).

The optimization of a program design is highly dependent on the programming paradigm. As optimization can occur at a number of levels, the system can make the best use of the available resources through design level optimization.

The performance of a system is greatly affected by its architectural design. Therefore, among all other items of design, the choice of paradigms affects efficiency the most (Bentley, 1982).

The simple JavaMe code shown in Example 1 demonstrates the role and dominancy of programming paradigms in a program design.

Example 1.

The output of the 12- lines code is just to display a message “Hello mobile world” as shown in Figure 1. But the usage of programming paradigms is vast, it has most of the object oriented and other programming concepts such as class, objects, encapsulation, packages, inheritance, abstract methods, static, constructors, etc., while it executes it will take more mobile resources which is not worthwhile for the required output. This is the main flaw of the current approaches.

Figure 1.


Mobile devices have limited resources compared to desktop machines; hence the application of the desktop development approaches is not suitable for mobile application development.

Choosing the appropriate paradigms for program design will increase the efficiency, performance and accuracy of the system. This will use relatively less resources. This discussion is applicable for desktop development as well, but most required for mobile software development.

2. Imperative And Object Oriented Programming Paradigms In Mobile Software Development

Procedural and structural programming paradigms are considered as imperative programming paradigms and programming languages based on these concepts are referred to as imperative programming languages. Imperative and Object Oriented programming are common in the languages used when developing mobile and desktop software. Among all programming paradigms, object oriented programming can be considered as a dominating paradigm (Roy et al., 2003). Concepts such as multiple inheritance, creating multiple objects is often used in the mobile application design. Other concepts which are also used in mobile application designs are abstract methods, recursive procedures, concatenating string, thread synchronization, declaring global variables, etc. But these concepts are not suitable for mobile software development. Software developers keep using these concepts because most development tools are based on these two paradigms i.e imperative and object oriented programming paradigms.

Complete Article List

Search this Journal:
Open Access Articles: Forthcoming
Volume 11: 4 Issues (2020): Forthcoming, Available for Pre-Order
Volume 10: 4 Issues (2019)
Volume 9: 4 Issues (2018)
Volume 8: 4 Issues (2017)
Volume 7: 4 Issues (2016)
Volume 6: 4 Issues (2015)
Volume 5: 4 Issues (2014)
Volume 4: 4 Issues (2013)
Volume 3: 4 Issues (2012)
Volume 2: 4 Issues (2011)
Volume 1: 4 Issues (2010)
View Complete Journal Contents Listing