Article Preview
Top1. 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.
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.
Top2. 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.