James Governor's Monkchips

Flutter Propels Dart, frameworks, language adoption and cross platform development

Share via Twitter Share via Facebook Share via Linkedin Share via Reddit


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.

As such JavaScript, Python and Java take the top three positions. No surprises there, although it is definitely interesting to watch Python’s inexorable rise, and Java’s ongoing fitness.

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.

What interests me here is that we know frameworks lead language adoption. The data are pretty clear on that front. Think Rails (Ruby), Node.js (JavaScript) and Spring (Java), or any of the plethora of frameworks driving JavaScript onwards and upwards.

Google first released Dart in October 2011 under a BSD license. It is an object oriented language with a c-like syntax. Dart was designed to be easy to use for client-side development, which could compile to either native code or JavaScript. but it’s not easy to gain traction with a new programming language – and the main industry focus has been on native apps for IoS or Android. But over time, Dart has evolved, as has the industry. Some of Dart’s core design decisions map well to current programming styles – notably reactive programming. Support for asynchronous models, for example, with first class support of streams and functions. That is how front-end development is done today. It’s called React for a reason.

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.

Talking of React, there is a comparison with React Native to be made here. React is a Javascript library for building UIs. React Native allows you to render React code as native UIs, using native APIs.

While GitHub stars are very far from being a perfect proxy for adoption they can be a useful indicator of interest. Flutter appears to be growing significantly faster, as React Native plateaus in recent years. Perhaps surprisingly then a framework for a “new” language is looking like it could potentially outcompete a Javascript-based framework in a strategic niche.

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.

Last month I got a briefing from Appwrite, a remote-first company building a popular open source backend as a service platform. It just took a $27m series A round.

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.

7 comments

  1. Interesting insights.
    I think targeting webassembly will be a huge win and also lead to higher adoption.

  2. […] de Icaza tweets a bit of color when referring to a blog post about Flutter, and it’s rather […]

  3. […] RedMonk analyse l’apparition du langage Dart, grâce à Flutter, dans leur top 20 des langages de… […]

  4. […] is popular. RedMonk analysts recently noted that Dart is rising in the ranks of the most popular programming languages, closing the gap with […]

  5. […] and content. Find a helpful open-source package on pub.dev and check out this list with favorites.RedMonk shows Dart is now on the playing field with JavaScript and Python, which then plays a role in […]

  6. […] RedMonk shows Dart is now on the playing field with JavaScript and Python, which then plays a role in Flutter. According to RedMonk analyst James Governor “Dart is, like so many technologies, a 10-year overnight success story.” Dart is easy to learn, especially if you’re coming from JavaScript or Swift. […]

  7. […] RedMonk shows Dart is now on the playing field with JavaScript and Python, which then plays a role in Flutter. According to RedMonk analyst James Governor “Dart is, like so many technologies, a 10-year overnight success story.” Dart is easy to learn, especially if you’re coming from JavaScript or Swift. […]

Leave a Reply

Your email address will not be published. Required fields are marked *