RedMonk recently published our regular programming language rankings – this for the first half of 2022. The rankings generally aren’t noisy – our methodology is forward looking and yet also reasonably conservative.
Further down the rankings the real point of note was the emergence of Dart (bright yellow, bottom right), which has now entered a period of significant attention growth, with respect to Rust or Kotlin.
Dart (+1) / Rust (0) / Kotlin (0): On the one hand, it is not exactly shocking that Kotlin (#18) and Rust (#19) didn’t move in these rankings – as discussed at length above, this was very much the norm. It’s mildly surprising, perhaps, because both languages have been “hot” recently and generated quite a bit of interest and attention, each for differing reasons. But it takes a lot to move within the Top 20. What was very surprising, however, was the fact that Dart was able to move up one spot and tie Rust at #19. It took Kotlin two quarters to make that jump, and while Rust did it similarly in a single quarter, Rust also had a great deal more time. Some thirty-six months after Dart was languishing about in the mid-30’s, it has not only cracked the Top 20, it has tied the developer darling Rust in doing so. The two most important questions now are first whether it can sustain this place and, if so, whether there is more upside to be had. The next run or two should tell us a great deal about these three languages.
Dart is, like so many technologies, a 10 year overnight success story. When we consider Dart then it also makes sense to look at Flutter, the framework that builds on the language.
Flutter is an open source framework initially released in May 2017, again led by Google, designed for building natively compiled, multi-platform applications from a single codebase. The industry has taken a few runs at this use case before – see for example Xamarin, PhoneGap and Ionic – but Flutter seems well suited to the problem of building and deploying good-looking applications for deployment to iOS, Android or desktop. Using Flutter means learning a new language, but that language is well supported from an education point of view, and can make teams far more productive for multiplatform development.
Flutter is mature enough that Google Pay is rebuilding its app with it. The Google Ads mobile app is also Flutter-based. So Google now has the language, the framework, and a couple of core applications that rely on Dart. Google scale and money counts when it comes to language and framework adoption. As with Facebook and its stewardship of React, you don’t have to have a Trillion dollar company behind you to thrive as a framework or language, but it certainly helps. The resources Google can and does apply to Flutter and Dart are considerable.
Last week at Google IO Flutter 3 launched. In previous releases, Google added web and Windows support to Android and iOS. Flutter 3 adds stable support for macOS and Linux apps. A new Casual Games Toolkit targets a classic mobile development niche.
On the education side Google has invested in evangelists, the ecosystem, and solid docs. DartPad is a neat tool to play with the language in any browser, which is also integrated into the languages Codelabs.
Of course the React ecosystem as a whole is a juggernaut with continued momentum.
Unlike Facebook, which built React for its own use, then open sourced it without a plan to make money from it, Google has a clear financial incentive to invest in adoption of a cross platform language. Android suffers from the fact that so many organisations build with iOS in mind. Often Android users can wait as long as 18 months to see a hot new app released on their chosen platform. Which sucks obviously. Instagram launched in October 2010 on IoS. It launched on Android in April 2012. That pattern is still reflected today. iOS-first is a nightmare for Android. It sucks up engineering resources, and engineering priorities and makes Android a less attractive development platform. It’s a vicious circle. If Flutter and Dart make inroads on Swift and Objective-C that’s an obvious win for Google.
One clever touch to make the case in the Google IO Flutter 3 launch was that a new productivity app Superlist launched at the same time. Here’s the screen to enter the private beta. Notice “Available soon on all major devices.” Also you should check out the homepage. The slider effect is very satisfying.
So let’s look at adoption.
Alibaba now relies on Flutter for its marketplace platform. More traditional adopters include BMW with its My BMW App – its Android app was falling behind iOS and couldn’t catch up because of an Apple first approach. Adopting Flutter in 2019 meant that it could consolidate development and release new products across different platforms at the same time.
It’s not just BigCos though – an old friend of mine Chris Swan now works as an engineer at the @ company – a startup working on privacy applications and services. It’s using Flutter for app front ends, with full stack Dart all the way down to device drivers on IoT hardware.
So that’s a few thoughts on technology, resources, and customer adoption. What about the broader ecosystem? Google seems to be applying particular attention to Africa. I have noticed developers and evangelists from various African countries increasingly talking about Flutter.
Here is a nice post about Flutter Developers Kenya on that subject.
A successful community is an engaged community, and early adopters tend to have that “us against the world” vibe that encourages excitement and responsiveness.
CEO and founder Eldad Fux had some useful insights into Flutter and community engagement.
We’ve been focusing on giving Flutter a native environment. Devs can write their functions directly using Dart using cloud functions. We’re also seeing the usage of Dart on the serverside going up.
Our big jump was when we released the Flutter integration in May 2020. We saw a huge jump in interest about Appwrite. We were surprised – then we released native iOS and Android this year, but haven’t seen the same jump. Just look at Reddit – Flutter is really engaged. If we post something there it immediately gets a response. iOS and Android? Those communities are not so active.”
So Appwrite was Flutter-first and has benefited from that attention to SDKs and developer experience in a new environment.
In summary, Flutter is driving Dart adoption, and Flutter could potentially overtake React Native as an approach for building cross platform applications. Dart is in a really interesting position in our rankings, and I will be watching its growth closely in the coming quarters.
Disclosure: GitHub, Google Cloud, and the @ Company are clients. Other named vendors are not.