Top programming languages for native apps

11 min read
December 6, 2021

In the first quarter of 2021 alone, Google hosted an impressive 3.57 million Android apps in the Google Play store. 

Apple pulled a similar, although somewhat lesser feat with 2.22 million iOS apps. Collectively, we’re looking at a smorgasbord of close to 7 million apps worldwide.

All of this diversity and innovation stems from the building blocks of any app—its programming language. And picking the right one for your next project is crucial if you want your app to stand out in today’s saturated app stores.

Here are the contenders for the top native app programming languages in 2021 and beyond.

Swift

Swift is the de-facto programming language for all Apple development, replacing the original Objective C. It was introduced by Apple back in June 2014 and has gained widespread adoption and acclaim since then.

An interesting move by Apple was to make Swift open source, which was the most applauded announcement at the 2015 Apple Worldwide Developer Conference. The goal was to encourage more developers to use the language.

And it worked. Swift was the most popular language that year:

1 swift popularitiy

Source: StackOverflow

Swift was also included in the top ten most popular programming languages of 2017 for both the TIOBE and PYPL (Popularity of Programming Languages) indices.

Unfortunately, Swift adoption has dropped since then (it currently ranks 14th on TIOBE’s November 2021 index). 

It’s argued that the slowdown was due to the introduction of other cross-platform languages, such as Microsoft’s TypeScript

Nevertheless, Swift remains popular.

The world’s top tech companies all use Swift for developing their native apps, including Facebook, Slack, and Linkedin. 

Uber also opted for Swift because, according to research scientist Raj Barik, the language is “more reliable than Objective-C.” And their competitor, Lyft, followed suit after a grueling endeavor of rewriting their app, which ultimately proved worthwhile.

2 swift apps

Source: Ideamotive

Even iOS’s competitor, Android, supports native app development using Swift via the SCADE 2.0 platform.

And the language is not limited to just consumer apps. It can be successfully used for corporate software development as well. 

Mike Gilfix of IBM even said of Swift:

“Swift is now ready for the enterprise.”

If you’ve ever used Swift, it’s not hard to see why it’s so popular. The language improves upon its predecessor, Objective C, in almost every way.

True to its name, Swift is quick and easy to learn and develop apps with. It uses syntax that’s close to human language in an effort to make code “beautiful.” 

It also has safety built-in, which enables you to write apps with fewer bugs overall.

And thanks to Apple’s move to make Swift open source, it’s not exclusive to just iOS apps. You can use it to develop for LinuxAWS Lambda, and even Microsoft Windows!

Swift was further improved during its 5.5 release in September 2021. It added features for concurrent programming, memory management, interoperability with Objective-C, and other performance enhancements.

Of course, to maximize the power of Swift, it pays to follow a few best practices while coding with it.

Proper naming and declarations of all variables and functions are critical in any language, especially with a human-readable language like Swift. Luckily, Swift.org provides comprehensive design guidelines.

Memory management is a crucial concern when writing fast and responsive Swift code. You can use the weak self and guard left self = self else {return} code blocks to extend an object’s lifetime as needed explicitly.

Finally, remember to keep access control a priority. Make sure to use private and fileprivate when appropriate.

For more information, you can check out Apple’s comprehensive documentation as well as Google’s excellent Swift Style Guide.

Objective-C

While Swift is all the rage for iOS development these days, Objective-C holds the title of the first iOS language. And with the language tracing its origins way back to the 1980s, it actually predates iOS by a considerable margin.

The reason Objective-C became iOS’s first language of choice was due to it being adopted by Steve Jobs when he was still at NeXT

When Jobs returned to Apple, he took the language with him. As a result, it became the foundation for both the OSX and iOS operating systems.

Eventually, Swift was developed to overcome many of the issues with Objective-C. Notable of these are its complex syntax rules, poor memory management, and steep learning curve.

Here’s a quick recap of the differences between Swift and Objective-C.

3 swift vs objective c

Source: Ideamotive

Although a glance above will tell you that Swift is, indeed, the better language Objective-C still holds a lot of sway.

In fact, according to Stackflow’s 2021 Developer Survey, Objective-C developers enjoy an average annual pay of $64,859. Surprisingly, that’s more than any other mobile programming language on the list, even Swift.

Take a look for yourself:

4 Objective C developers income

Source: Lvivity

This is proof enough that Objective-C still has its uses.

For one, many legacy apps still haven’t moved to Swift yet due to the costs and effort involved. 

For example, while Uber has upgraded 90% of its app to Swift, they still maintain libraries and code sections in Objective-C. Even Apple’s frameworks like Cocoa are written in the language.

Indeed, the Objective-C page at Stack Overflow is still relatively active, with users regularly asking questions. Also, the number of job openings there shows that there’s still some demand for Objective-C programmers worldwide.

You should also know that Objective-C and Swift are interoperable with each other. This means Swift code can be imported in Objective-C and vice versa. 

This is useful for adding new features written in Swift to an existing Objective-C app without rewriting everything.

If your project still warrants Objective-C, there’s no shortage of best practices to consider (Github‘s and Apple‘s guides are good places to start).

The bottom line is that while many consider Objective-C as a “dying” language, its almost 36-year legacy means it won’t be completely going away anytime soon.

Java

Java is, without a doubt, one of the most popular programming languages ever made.

It ranks highly on many lists, including the third most sought-after language by hiring managers, according to a 2020 HackerRank study

Java is also the most widely used language on Github in 2021 in terms of activity:

5 top languages 2021

Source: Career Karma

Java is one of the TIOBE Index’s highest-ranked languages, always placing in the top five for the past 20 years.

The reason for Java’s widespread adoption lies in its flexibility. Its “write once, run anywhere” paradigm makes it a perfect choice for cross-platform applications

It also has excellent built-in security and performance, making it a popular choice for mission-critical software for enterprises, financial institutions, and healthcare firms.

On the mobile side, Java is mostly synonymous with Android development, where it’s the de facto native language. 

Thanks to its robustness and ability to process large amounts of data, Java is also used to program the back-end side of many popular apps.

Netflix, for instance, relies on Java heavily because it’s scalable and cross-platform. They use it everywhere, from video encoding to its recommendation engine.

Indeed, Andy Glover, Director of Productivity Engineering at the popular streaming service, was quoted as saying:

“Java is the bedrock of our software architecture.”

Linkedin also uses Java extensively for many of its back-end functions, including messaging and logging. Most of these are available in their Github repository.

And, of course, Java is also used for game development. There are countless examples of Android games written in the language, but arguably the most popular is Minecraft

In fact, Minecraft is one of the few high-profile games that originally ran directly on the JVM.

Lately, though, the dominance of Java as the Android programming language of choice has started to wane with the introduction of Kotlin.

Kotlin

Kotlin is a Java-derived language that improves upon its predecessor in many ways. It’s faster and its code is much more concise and compact.

Indeed, it’s estimated that developers can see an almost 40% reduction when a Java code is rewritten in Kotlin.

Performance-wise, Java and Kotlin are comparable with each other since they’re based on the same architecture. But because Kotlin supports inline functions, it can compile slightly faster in some cases.

6 java vs kotlin

Source: Mobile App Daily

One of the critical improvements in Kotlin is that it solves Java’s infamous Null Pointer Exception error. Kotlin handles this almost automatically thanks to its implementation of null safety.

These drastic improvements eventually led Google to declare Kotlin as the preferred language for Android development at Google I/O 2019.

Since then, the adoption of the language has grown dramatically. By 2021, it’s predicted that there will be 5 million Kotlin users, 1.39 million of those active. 

That’s a 65% increase since Google’s 2019 announcement:

8 kotlin active users

Source: Jet Brains

It’s safe to say that Kotlin is a vast improvement over Java.

However, the great thing is that the two are fully interoperable with each other, making the switch to Kotlin relatively easy. As a result, many app developers have begun Kotlin adoption.

Pinterest is one of the early adopters of the language, even before Google’s 2019 announcement. While they experienced plenty of growing pains in porting the Pinterest app from Java to Kotlin, the move was eventually worth it to the company.

Christina Lee, an Android engineer at Pinterest and one of the foremost Kotlin advocates there, tells us why they made the switch:

“What makes [Kotlin] so nice to work with is that it is essentially a version of Java where best programming practices have been built into the language, so it is much easier to do the right thing than it is to do the wrong thing.”

Netflix also was one of the early Kotlin adopters. They primarily used the language in rewriting their video player UI in their Android app version.

And the future of Kotlin is going beyond just Android. The language can now be successfully used for cross-platform app development.

C/C++

If you’re like most developers, you probably already know about the power of C++. It’s arguably one of the longest-living languages that’s still in wide use today.

At first glance, that might not be the case. For example, C++ is ranked just 5th on the Popularity of Programming Language (PYPL) list behind Java, Python, and JavaScript. It occupies the same rank on the TIOBE Index.

However, that doesn’t accurately measure the impact of C++. 

For example, major enterprises, the most advanced 3D games, and scientific applications all rely on the performance and speed that only C++ can deliver.

Indeed, C++ programmers are still in high demand these days. According to Salary.com, the average take-home pay of a skilled C++ professional is $80,845.

ZipRecruiter places the figure even higher, at around $104,000 per year.

9 c developer income

Source: Salary.com

For mobile apps, C++ is mainly used as a cross-platform tool. That’s because the three primary mobile OS (iOS, Android, and Windows) all support C++ natively. That means C++ code can be written once and work reliably well regardless of the platform.

And due to its power and flexibility, C++ is also the perfect language for advanced back-end functions that require plenty of computational power.

Nowhere is this more evident than in the Spotify app. Its core uses a combination of Python and C++ to handle the millions of concurrent audio tracks that are streaming at any given time. YouTube also uses C++ as one of its languages.

The best approach to use C++ for mobile app development is through the Microsoft Visual Studio suite. That’s because the platform will install all the third-party tools and SDKs you’ll need.

Plus, you can leverage the powerful build environment and debugging features of Microsoft’s IDE.

The right tools need the right developer

Choosing the best programming language is merely the first step in conquering the app market. You also need an experienced and skilled developer to maximize its full potential and bring your vision to life.

And with a handful of successful native and cross-platform apps, we believe DECODE is the perfect partner for the job. 

So get in touch with us today, and let’s start building your app with the right tools!

Categories
Written by

Toni Vujevic

React Native Team Lead

Skilled in React Native, iOS and backend, Toni has a demonstrated knowledge of the information technology and services industry, with plenty of hands-on experience to back it up. He’s also an experienced Cloud engineer in Amazon Web Services (AWS), passionate about leveraging cloud technologies to improve the agility and efficiency of businesses. One of Toni’s most special traits is his talent for online shopping. In fact, our delivery guy is convinced that ‘Toni Vujević’ is a pseudonym for all DECODErs.

Related articles