Speaking the language: A deep dive into mobile programming, Part 2: What to consider when selecting mobile programming languages
This is Part 2 in a three-part series on mobile programming. Part 1 detailed the difference between using a web browser and a dedicated application.
Mobile programming must be a collaborative process to be effective. Developers must communicate with both business leaders and end users to determine how an app will help accomplish strategic goals and plan out features and functionality.
However, once the planning phase is over, developers alone are responsible for choosing the mobile programming tools for building and testing apps. A number of factors can influence this decision, which typically must strike a balance between business needs and available resources.
The following are some of the most important considerations when choosing mobile programming languages:
Mobile apps have to run on something, whether it’s a mobile operating system — such as iOS, Android or Windows — or on a browser as a web-based app.
Let’s say the enterprise wants developers to build an app for employees who use iPads in the field. Right away, developers can narrow their programming language options to Objective-C — a longstanding first choice for iOS developers — or Swift, a streamlined, modern version of Objective-C. Swift is also open-source, which would be attractive to developers who might want to port the app to other platforms.
Similarly, developers with a mandate to build apps that run on Android would have to choose from mobile programming languages designed for creating code that runs on Google’s operating system. This invariably has meant Java, a language developed years ago by Sun Microsystems. Java lets mobile developers build code that can run in multiple environments. This is vital for Android, which is used in various flavors and on hundreds of different smartphones, tablets and wearables from various manufacturers.
Another significant and practical consideration when choosing a mobile programming language is the development team’s experience and expertise. Developers with years of experience building iOS apps with Objective-C are more likely to choose that language, whereas newer iOS developers would naturally gravitate toward Swift.
Larger enterprises that require mobile apps to run across multiple platforms may have in-house developers with experience in all major mobile programming languages. If not, they face a choice between using less-than-ideal tools for the apps they want to build — which can delay the development process and result in disappointing app performance and adoption — or spend money to acquire the necessary talent.
A programming language that is widely used and has deep support in the developer community can provide flexibility, if not advanced features. For example, C++ may not be suitable for advanced programming, but many developers are familiar with it. Python, an object-oriented language, also allows for app development across multiple platforms.
Mobile developers are often under tremendous pressure to get apps into the hands of end users as quickly as possible. Developers in such high-pressure production environments rely on languages such as Python, whose advanced data structures, shorter lines of code and dynamic semantics facilitate rapid app development, as well as Node.js, which offers developers more than 230,000 modules that can be built into an app.
The mobile programming languages mentioned above are among the most popular, but there are many others, including Ruby, .NET, C#, Lua and PHP. Developers should choose the tools that best enable them to build mobile apps that meet enterprise requirements.
Check back soon for “Speaking the language: A deep dive Into mobile programming, Part 3,” which will discuss how leveraging the right programming language can help your business tap into society’s connection economy and generate value in the user experience.