I am really interested in cross-platform mobile development and have watched the tooling space for a long time. I downloaded a copy of Gartner’s Magic Quadrant for Multiexperience Development Platforms this morning and noticed some blatantly incorrect information in one of the cons for the core product from my former employer OutSystems:
“The OutSystems platform delivers hybrid mobile apps that are reliant on Cordova, which is based on Adobe’s discontinued PhoneGap technology. This raises questions about the hybrid architecture that is central to its platform. However, OutSystems has shown some support for migrating to the ReactNative framework, but does not yet support the full framework.”
I used to be a Principal Analyst at Forrester Research, so I know from experience how important integrity is for industry analysts, so I was really surprised that this statement didn’t get flagged during Gartner’s fact-check process.
The OutSystems platform does deliver mobile applications using Apache Cordova, that part of the first sentence is true, the rest of it is made-up stuff. It’s not possible for Apache Cordova to be based on Adobe PhoneGap, the laws of physics prohibit it.
Let me explain…
Apache Cordova began its life as an open source project called PhoneGap back in the late 2000’s (2009). The project was started by folks at a company called Nitobi, and the day before Adobe announced its acquisition of Nitobi (October, 2011), the PhoneGap team donated itself to the Apache Foundation as Apache Callback. During the Incubation period over at the Apache foundation, the PhoneGap project tried on a couple of new names. One was DeviceReady, which any experienced Apache Cordova developer will recognize as an interesting name for the project.
The other was Cordova which happened to be the name of the street where the Nitobi offices were located. That name stuck, and from that day forward, PhoneGap was now officially called Adobe Cordova. So, if you think of it, you could say:
Apache Cordova == PhoneGap
But in reality:
Apache Cordova REPLACED PhoneGap. At this point, they’re EXACTLY the same.
Apache Cordova is the renamed PhoneGap; when PhoneGap became Apache Cordova, the only difference was the name.
Now, some time later (I don’t remember exactly when) the folks at Adobe decided to create a distribution of Apache Cordova which they called Adobe PhoneGap. In Adobe’s distribution, Adobe bolted on some additional capabilities and commercial services to Apache Cordova’s base code. They added new command-line capabilities, the commercial PhoneGap Build service, and, on top of that, Hydration. This means:
Apache Cordova == PhoneGap != Adobe PhoneGap
Adobe PhoneGap is a distribution of the open source Apache Cordova project in the exact same way that Ubuntu is a distribution of the open source Linux project. Ubuntu happens to be based on Debian which is, wait for it, based on the GNU Linux project.
To Gartner’s earlier statement: Since Adobe PhoneGap is a distribution of Apache Cordova, it’s not physically possible for Apache Cordova to be based on Adobe PhoneGap because Adobe PhoneGap is actually based on Apache Cordova.
This is what I don’t get — how could Gartner not know this? Surely they understand the concept of Ubuntu being based on Debian and would never say that Debian is based on Ubuntu (would they?). But why do they feel the need to do that for Apache Cordova? Apache Cordova is based on nothing, it’s PhoneGap renamed. As I said at the beginning of the article, it is not physically possible for Apache Cordova to be based on Adobe PhoneGap.
Now, I think what Gartner was trying to say is that Adobe abandoning Adobe PhoneGap is indicative of the market’s interest in Apache Cordova-based projects. In reality, Adobe’s announcement was based on the market’s interest in Adobe PhoneGap. There are other options available to Adobe PhoneGap developers for cloud build and hydration, so Adobe’s commercial offering was no longer necessary (shall we say profitable?).
Is the market losing interest in Apache Cordova-based solutions? Yeah, probably. Recent developer surveys indicate a reduction in interest, but no reduction in activity (developers maintaining Apache Cordova-based solutions) in Apache Cordova. Will a developer pick up Apache Cordova for a new project? Possibly, it depends on what the developer wants to do in the application and, of course, what skills the developer has.
Could developers deliver the same applications using more modern frameworks like Flutter and React Native (listing them alphabetically in order to not indicate a preference)? Yes, these frameworks are more heavily adopted then Apache Cordova right now. But, I read an article the other day about a developer abandoning their Flutter project because they couldn’t get Flutter to work the way they wanted it to (an app rendering content built entirely of HTML), so Apache Cordova apps still have a place in the world. The developer (sadly) implemented a web server inside of the Flutter app in order to serve the HTML content; this makes absolutely no sense to me when you could do the exact same application in Apache Cordova without a local web server in minutes. Pick the right tool for the job and your life will always be easier.
Will product companies deploying Apache Cordova-based solutions today abandon Cordova in favor of other solutions like Flutter or React Native? Yes, most likely.
What’s interesting is at PhoneGap Day 2017, Michael Brooks delivered a presentation which indicated that the Cordova team expected PWAs to be the death knell for Apache Cordova. Unfortunately, with Apple’s refusal to expose all of the capabilities available in PWAs through Safari is essentially killing PWAs instead.