English original text:Who will steal Android from Google?
Text / Steve Yegge
Translation / Su Benru
Source: CSDN (ID: CSDNNews)
“ Who will steal Android from Google? ”
As early as last year, Google faced a huge fine threat due to the alleged monopoly of the Android mobile operating system. Coupled with the contenders of various competitors and the siege of native Android by the cross-platform alternative framework, Google’s days seem to be not good.
As a veteran of technology who worked at Google for 13 years, Steve Yegge, after joining the Southeast Asian travel giant Grab, posted a blog post analyzing why he left Google, emphasizing Google’s growing ability to innovate. The weak, once triggered a wide-ranging hot discussion. After a lapse of nearly a year, he also highlighted some of the problems with Google's Android technology in this article, such as the lack of Dev Stack, poor compatibility, low security of the development framework, etc. What do you think about this?
The following is a translation:
Foreword: From leaving Google to bad Android
I still can't be 100% sure why the one I posted is "Why should I leave Google" (https://email@example.com/why-i-left-google-to-join-grab-86dfffc0be84 The blog post will receive so much attention. In that blog post, I just licked some nonsense such as “I changed my work more casually”, but I don’t know why it was translated word by word into 80 languages until I was only one day later. Tally · Portman's column goes beyond. To be fair, that column is much more interesting.
I guess one of the reasons is because there was no news in the week. Another reason might be that the Medium website has a large number of users? The Medium website is a good platform. When I think about the days of blogging, I used to hope that Google can also create a new product like Medium, but as you know, there is no ……
Regardless of the reason, the reply I received from my blog post is still very interesting. Someone in Pakistan said that if I happen to be in the same city as him, I would invite me to have a beer. Someone in London is willing to pay a thousand knives. Let me spend an hour on the phone talking to him about the voice search market or about Garbo. I politely refused because I actually don't know anything about it. A Russian even came over at a party and said to me: "You have established a lot of enemies." Haha, what a fun time.
There are also many comments on the Internet that have a lot of misunderstandings about the key information I want to express in that blog post. Some people even ask, “Is this not a car service? ” I have tried to paint a larger "painting", but it seems to be messed up. When I have time, I will go back and look at the blog post to see if I can make everyone understand more.
But today I want to focus on Android—— standing on the stand of a layman and hobby Android/iOS developer, sharing my personal opinion.
I have been paying attention to Android because we are trying to hire some mobile developers, and you will think this is a simple matter. But it turns out that mobile developers are “hot items” on the market today, and many companies have needs, and there are not many people in the market who know how to develop mobile. Recruiting them is just as easy as trying to catch a unicorn.
Why do every company need mobile developers? Because desktop web development is slowly disappearing. I have some friends in Google's various development teams —— Well, maybe it can only be considered a former friend —— they once accused me in the back. But no matter how they criticize me, as the whole world tilts toward the mobile side, desktop web development will gradually decrease. You may remember that Facebook changed from “Web First” to “Mobile First”, which was almost 8 or 9 years ago, and Facebook was almost finished. I am not saying that this change will happen overnight. But when the company realized that they were either a mobile Internet company or abandoned by the market, it did experience a crisis of survival.
They succeeded, but it was not easy, because Android's Dev Stack is the world's largest poo sandwich.
Android environment caused by the scorn chain of Google’s internal engineers
But when I do all of this development work one after another, from system programming to large-scale data engineering, from compiler design to service framework development, from game development to web development, to mobile development, I can Make sure that front-end programming is at least as difficult as other development efforts, even if it's not harder. Everything in the backend looks beautiful, neat, orderly, distributed, and parallelizable. —— compared to the front-end web development that was still a mess after 25 years, it was a paradise. If you compare it to the mobile programming that includes iOS, the front-end web programming will be like a wonderful trip to Bali.
How about Android? That's right. This is the biggest of them, “poo sandwich”. If you don't mind me talking, then Android developers are heroes. If you use Android to develop giant apps like Google Maps, Facebook or Snapchat…… if I tell you, you won't believe —— after changing a line of code, sitting there will take 20 minutes to see it happen. What? Every change you make, no matter how subtle, has an 80% chance of not being effective on the first attempt, because Android's feature interoperability matrix is exceptionally simple. You can use X or Y, but for a damn reason you can't use X and Y at the same time.
This is a matter of device compatibility. I have a bunch of one-star reviews in the GooglePlay store because my Wyvern game app can't work on LG devices at random, so I have to go to eBay to buy a $60 cheap LG device (instead of the inferior $600) The LG device) reproduces the bug and finds that Android has two APIs for getting mouse click events on the scrolling list, but there is an API that doesn't work on LG.
I want to say, have you made a mistake!
It’s because Android has such inexplicable things happening, and now many competitors, big or small, have launched their own Android replacement framework. They want to replace not only the missing support libraries (although many do), but what they want to do is a comprehensive replacement for Google Android's comprehensive development stack. Alternative frameworks that are now available include Microsoft's Xamarin, Adobe's Cordova, and Facebook's React Native. In addition, take a closer look, there are Framework7, Appcelerator Titanium, Onsen, Sencha, Kendo, XDK, Ionic, Mobile Angular, Unity & mdash; & mdash; Scorpio, which is the whole one!
Just like anyone who has tried Android development will give up: "Android is too bad, I have to do a better one myself. ”
And Google, not willing to be overtaken by competitors, responded, "Oh, is it?" You can't compete with us because our competitors are ourselves! ”. Then they launched Flutter, a 100% serious Android development stack that competes with native Android, and the Android development team even refuses to recognize it.
The problem with these development frameworks is that they make Google vulnerable. Most of these frameworks are cross-platform, which means you can run on iOS and Android with just one app. No matter if you are a big company or a small workshop, no one is willing to pay double salary. Please ask the two development teams to write the exact same application on different platforms. As a result, huge economic pressures have driven companies to move to a cross-platform framework. The only thing that drags the trail is that these frameworks are not as good as the "native" development framework.
But some of these frameworks (especially Facebook's React Native) are very close to this goal. If one of them succeeds in grabbing a large enough market share, then Android is basically part of the developer ecosystem, and the system is no longer controlled by Google.
This doesn't seem to be a big deal because Google still has a Play Store, OEM and licensing. For most people, they seem to be sitting comfortably in the driver's seat. But consider: If all mobile developers start using a specific cross-platform framework X, then literally any other hardware/operating system manufacturer or alliance can compete with their own hardware/operating system platforms (eg Windows) directly supports the framework X, and all applications can run on it (possibly faster and easier to start). This will completely cut Google out. Believe me, many companies want to do this. Sorry, I said wrong, not a lot, but all. Who doesn't want to?
Google’s response to this situation is never to give in. They doubled their own "native" (traditional) Android programming, providing official support for the Kotlin language, which is a big step forward for native Android programmers. I like Kotlin, which stands for the future of Java. But let us face the reality: this is not the development direction of mobile development. There are two reasons why people write cross-platform frameworks: First, because they want the company's applications to work on both platforms without having to do twice the work. Second, because Android native development is still so painful, even with Kotlin, many companies feel they should throw it away and start over from an easier technology.
If you're an Android or iOS developer and you spend some time trying React Native (Facebook created it to help solve these problems), in less than 30 seconds you will realize that this is a better way, but only if it is You are not developing games, otherwise you may prefer to use Unity. For business and product-class applications, React Native delivers reasonable performance, cross-platform compatibility, and extremely convenient tools (best from Microsoft) that dramatically increase development speed. Remember when I said that the change in one line of code took 20 minutes to see in the regular Android stack? This can happen in large applications like Nest or Facebook, but even a medium-sized application can take 2-3 minutes. React Native is instant, and once you change the code, you can see the effect instantly.
This means that product features can be published 10 times faster; this means faster time to market; this means a preemptive advantage; this means you are constantly winning in the competition. Abandoning the native programming framework and switching to a fast-paced cross-platform framework like React Native will keep you invincible.
I suspect that without evidence, Google's Android team is not sure whether cross-platform is good or bad for them, but they tend to be "bad" or they will provide more support for cross-platform Flutter. I personally think this is good for them, but I said no.
Regardless, Google is currently working to maintain its leading position by improving the native experience. Moreover, since the native experience is the worst for large applications like Snapchat and Instagram, they are primarily trying to solve large application development experience problems, which are largely determined by build time.
In order to solve this problem, Google has done a lot of work on improving the "official" Android application build system, which itself is based on the already very complicated Gradle system, and Google has subsequently added a lot to it. A messy Android-specific thing. Day after day, the system is becoming more and more complex, and even building engineers can no longer understand some of them. If you want to try to figure out the difference between the Build type, the Product flavor and the Flavor dimension, you can only say good luck. Because Google has been increasing the complexity of this system, they believe that the addition of these things is important for large companies with large applications.
Ironically, most large companies are actively abandoning them and instead support Facebook's Android build system ——Buck, it seems that Google is heading towards a dead end.
So it seems that Google has understood that this is a problem, but they are redoubled to a solution that no one likes —— a native stack with an extremely complex Gradle build system —— developers are moving away from Third-party development stacks are gaining market share.
Internet giants launched "attacks" against Android>
To make matters worse, the development stack is not the only attack on Android. There are other ways to steal Android from Google. One way is to create a more successful store: Play Store is Google's main control over Android, and it has caused a lot of controversy at the corporate and government levels. Because Android is said to be an open system, the Play Store is 100% controlled by Google. Cyanogen, supported by Microsoft and Twitter, was a major attempt to break this situation. Although it ended in failure due to internal power struggles, it was the first time that I seriously tried to “cut the throat” against the Play Store.
Also guess who else and the competitors are joining forces to fight against Google? You guessed it, it was Jeff Bezos (Amazon's CEO). Because if you don't steal Android from Google, he can't be the world's first trillion. Amazon's app store has done quite well, and I see Amazon's performance in the competition across almost every scene between Amazon and Google. Beware, Google!
If these are not enough to make Google worry, then there is a third attack on the Android system, and this attack is in the midst of Google's key —— online advertising. Today, Facebook's Android app has become quite large (hundreds of engineers have worked on it for years) and has evolved into a true platform where companies can now place ads directly into Facebook apps. For example, the New York Times can buy advertising there, and all the money goes directly from the New York Times to Facebook, instead of even paying a penny to Google, you can imagine how Google feels.
Just as WeChat is in China, —— WeChat app has become a thriving platform on which to build and deploy other apps (and ads). Just like embedding a complete market into the app, Facebook and WeChat mobile apps have become independent advertising channels.
Let's clarify: The only reason Google creates Android is that Android is an advertising channel. Google is an advertising company, the world's largest advertising company, and is always attacked by companies that want to shift their eyes to their own channels rather than Google channels. At the end of the day, this is almost exactly the same as attacking against net neutrality. Telecom operators and ISPs want to give you all the ads you want to see, or at least get a share of Google and Facebook ads.
Whenever you see a company like Facebook, Google, Amazon or Microsoft mysteriously entering a new, unfamiliar business, you can be sure that the new advertising channel battle begins. Google's Chrome is an advertising channel that controls web access; Microsoft's Xbox is an advertising channel for PlayStation that threatens to use the PC as a channel for surfing the Internet at home; YouTube is an advertising channel; Instagram and WhatsApp are similar products; HBO/Amazon /Netflix Content Wars is a straightforward advertising channel; Amazon Echo is an advertising channel, and your home has become one of the largest advertising channels of the day; even Google Maps is an advertising channel for local advertising …… Once you start to observe, you will find that advertising channels are everywhere.
Most importantly, companies want you to watch your favorite content (books, movies, games, etc.) through their channel instead of other people's channels, so they can get advertising revenue, or at least subscription revenue.
Android may be Google's most important channel —— even if it is not today, it will definitely be in the next decade. They can't lose control of it. But we've seen that at least three different dimensions of collaborative attacks are happening: the developer ecosystem (React Native and its friends), the store app (Amazon's App Store and Cyanogen successors in rumors), and lightweight In-app market (Facebook and WeChat, etc.). So far, Google’s response to every threat has been …… well, have to admit that they are still in the lead, at least for now.
Closer to home ——
All of this seems like a bunch of useless talks (originally), but it actually has a real impact on companies like Crab, because we have to make major decisions about which technology stacks we use to develop mobile applications. The application is a window (ie, a channel) to the outside world for our passengers, drivers, merchants, agents, etc.
If you think Google does have the potential to lose control of Android, then your best bet is to use a cross-platform framework, as it will hedge your bets with improved portability. If you are in a fierce competition and need faster product release speeds, you should probably choose products other than native Android. Android is still chasing the “Gradle” train, but this road will never go too fast, and this is largely because the legacy of Android design is difficult to solve.
Among the cross-platform options, React Native looks like a winner. It attracts a lot of Web developers, which is probably the world's largest developer audience and hard to compete with. Grab recently started investing in React Native to see if it can fulfill its promise, and so far it looks pretty good. Of course, there is still a long way to go before we can retreat from our native Android and iOS apps, because porting really takes time.
Summarize the main point behind this blog post: The mobile developer market is scarce and hard to hire, because everyone except Google knows that Android programming is difficult. So now the entire ecosystem is growing rapidly, and many competitors are trying to make their way the only real way of mobile development …… which makes recruiting mobile developers more difficult because the entire ecosystem is so fragmented.
But if you don't think about your style, now is a good time to become a mobile developer. If you are a non-mobile developer, you should consider switching to mobile development for a while. Starting with the back-end experience and learning mobile development, you will become a “full-stack developer”, a developer that is even rarer in the market and a more market-worthy unicorn.
If you are interested in this, it is time to participate in such competition to gain control of Android, many companies are doing this, and even other Google teams are doing the same. There are a lot of big sharks around the Android ship, and Google needs to be vigilant.
Disclaimer: The above is my personal opinion, and there may be many biases. At the same time, I don't mean to speak to my employer (Crab), you don't have to believe it. In fact, I didn't even go back and read it again.