On October 4, 2016, Us local time, Google put forward the AI-First (ARTIFICIAL intelligence First) strategy for the First time in a new product release [1]. For the past decade, Google has been mobile-first, and the next decade is going to be a revolution. This is going to be a technology revolution on a much grander scale than the mobile Internet, and we are now at a historical cut-off point.

The development of the Internet is like a train running at high speed. Driven by technology, creativity and capital, it keeps a huge momentum going forward. In the face of this constantly changing world, practitioners can only keep up with the pace of progress if they keep learning and thinking all the time. For the technical personnel, with each technological evolution, the huge and constantly developing technical system in front of us shows a variety of complicated technical branches, so that everyone who peeks at the door feel dazzled. What should we learn, what should we give up, which technologies are flash in the pan, and which technologies really have lasting vitality, is the subject that everyone faces.

History is a mirror. Behind us, the revolution unleashed by smartphones and the mobile Internet is maturing and still exerting its power; Ahead of us, a technological revolution with artificial intelligence at its core is gathering momentum. It’s a good time to remember.

Looking back over the past ten years, I have witnessed three major technological changes: the first is the rise of smartphones, the second is the rise of open platforms and Social games, and the third is the comprehensive migration of the Internet from the Web to mobile apps. Now, listen to me slowly.

The rise of smartphones and the decline of traditional mobile phone makers

In January 2007, when I graduated from school and joined Motorola, the division was working on the Linux-Java platform. The Linux-Java platform is actually a mobile operating system based on the Linux kernel. Its bottom layer is a tailored Linux kernel, and the middle is a variety of supporting frameworks implemented by C and C++. The upper layer applications can be implemented using Java and run in the JVM.

The team I was in at that time was responsible for the research and development of Multimedia Library on the Linux-Java platform. The technologies often involved in my work were OpenMAX[2] and GStreamer[3]. OpenMAX is a multimedia technology standard designed to abstract some of the basic multimedia functions to maintain portability while taking advantage of the underlying hardware to improve performance. OpenMAX provides abstract components to the upper layer, such as camera, Codec, and Mixer, while GStreamer is at a higher level and combines these components into pipelines to accomplish more complex multimedia tasks. In fact, on Android today, OpenMAX and GStreamer are still two indispensable technologies for multimedia.

Motorola has a long history of trying to make linux-based phones, such as the A760[4], the world’s first linux-based mobile device, released in 2003. However, Motorola’s Linux-Java platform was not a success and was later aborted with the introduction of Apple’s iPhone and Android. The Linux-Java platform, while technically similar to Android, which is also based on the Linux kernel, does not contain some of the key elements that will make smartphone successful, such as the iPhone’s full-touch interaction design and multi-touch technology. Nor is it a highly open system like Android.

Without the iPhone, traditional handset makers (Motorola, Nokia, SONY Ericsson, etc.) might not have declined so quickly. At that time, there was no essential difference between different mobile phones in terms of technology and product experience, and their competition in the market mainly depended on the variety of shape design and unique marketing strategy. Straight plate, clamshell, slide cover, mobile phone appearance has become a variety of, but did not get rid of the key input.

The most original multi-touch technology of iPhone was not actually invented by Apple [5]. But there is no doubt that the iPhone is a master, and it has pushed the industry’s perception of smartphones towards a full touch screen. Meanwhile, the release of iPhone has had a profound impact on the development of Android system. A quick story goes that Google originally designed the first Android phone without a touch screen, instead using a slide-out keyboard similar to the blackberry. But while Jobs was showing off the first iPhone, Andy Rubin, who was on his way to a meeting, asked the driver to stop immediately. “My God,” Mr. Rubin said to his colleague in the car, “I don’t think we’re going to make this phone.” [6] As a result, The Android system had to be redesigned.

Before the emergence of iPhone, the mainstream mobile operating system was Symbian OS[7]. It was a relatively closed system, unfriendly to third-party developers. Upper-level applications can be developed using Java, but in a very limited J2ME environment. At that time, I tried to learn to use J2ME to write some programs, and found that its function was very simple. Basically, it could only run the simplest JAR package, and there was no local storage. For example, if you want to implement an e-book application, then you must also package the e-book data resources into jar.

2007 was definitely a special year for the smartphone industry. The iPhone debuted in January of that year and went on sale six months later. Android was released in November of the same year. Google has also launched a consortium called the Open Handset Alliance (OHA) [8], which brings together a number of technology companies (including Motorola) to develop Open standards for mobile devices based on Android.

In the years after 2007, the global smart phone revolution began, and the mobile Internet will soon open.

Open Platforms and Social games

In August 2008, I started my second job at Xiaonei (later Renren). The department I joined was the newly established Open Platform department.

Xiaonei’s Open platform, which can be said to be the earliest batch of Open API services in China, started its construction work in early 2008 (led by Li Fusong) and was officially released in July 2008. In the entire history of the development of Internet technology, the open platform is definitely a pioneering work. Ever since Facebook first came up with the concept, and to this day, openness has been the dominant theme of the Internet. Including now common with a platform account login such functions, is from that time began to slowly deeply popular.

At that time, the initial form of open platform is to display the content provided by third-party developers within the page frame of the campus Intranet. Initially, this was technically done in two ways.

The first is called XNML, which is the Markup Language customized by Xiaonei [9]. It is similar to extended HTML. For example, a developer can include a custom tag like: in a page, which when displayed in the browser automatically resolves to a link representing the name of the user currently visiting the page. The principle is that XNML pages spit out by third-party servers are parsed by Renren’s proxy servers, rendered into real HTML pages, and then spit back to the browser. The CSS and JS contained in third-party pages are also filtered in this process to remove unsafe elements.

The second is called the IFrame method. Third-party pages are directly nested within the page framework of the campus Intranet, but when you want to call some front-end services of the platform through JS, such as sending News Feed, you need to communicate “across domains” between two completely different domains.

Later, there was a third approach, a standard developed by Google called OpenSocial. Essentially the same way iframe works.

But at the end of the day, it doesn’t matter which way the third party does it, because that’s when Social games become popular. Instead of relying on JS and CSS, Social games are programmed using AS, and the resulting SWF file is played in the browser’s Flash Player.

The popularity of Social games has led directly to the popularity of AS programming. In the past few years, with the rise of Web 2.0 concepts and the increasing complexity of implementing browser-side applications, front-end engineers have emerged as a new professional role. With the popularity of Social games, AS has become an important option in the technology stack of front-end engineers in addition to CSS and JS. It wasn’t until the mobile boom that AS began to decline.

The most important Social Game in history is “Happy Farm”. It was developed by the Five Minutes Team in Shanghai, which was completed in May 2008 and launched on the campus Intranet Open platform in November 2008 [10][11]. My colleagues and I were among the first to play the game. When we first played the game, the first feeling was that it was going to be a hit.

The reason why Happy Farm is very important in the development history of Social games is because of its originality and influence around the world. Both on Facebook abroad and on various social platforms in China, Happy Farm has numerous imitators, including Zynga’s FarmVille. At a Renren open Platform award presentation, the representative of the five-minute team — a young girl — proudly announced that they would always make original games! Although the development of five minutes later did not go well, but their original spirit is always worthy of respect.

Social Game can be regarded as the last wave of entrepreneurship on PC. Before and after Renren went public in 2011, the former employees of Renren formed many start-up teams to develop Social games on Tencent platform, which was gradually opened up. I started my business around the same time.

Tencent’s opening up has been slow and cautious. One manifestation of this in technology is that they invented the concept of OpenId very creatively [12]. What this OpenId does is exactly the opposite of what it says. The ID that Tencent’s platform passes to third-party developers to identify users is transformed into an OpenID to ensure that third parties cannot match it with QQ numbers. In addition, the OpenId of the same user varies between different applications or games. This means that even if the same developer makes multiple games, you can’t match users across multiple games. But in any case, Tencent’s move from closed to open created a huge opportunity for entrepreneurs at the time. At that time, some people began to believe that it was possible to build a billion-dollar company by developing games on a platform like Tencent.

Now I recall the experience of working on the campus open platform, which is still unforgettable. Together with a group of young people, with a passion, they have helped to open up the Internet. In this process, we have witnessed the struggles of many entrepreneurs, some of them successful, many of them failed. But I believe that everyone who has gone through this has learned a lot.

Web->App

Around 2012, the entire Internet began to shift from the Web to apps. A few years before that, it was widely believed that everything should run in the browser.

Building an App back then wasn’t as easy as it is now. The iOS and Android programmers in the market are just beginning to split up and there are very few of them. Remember back then, iOS engineers with more than six months of work experience were considered veterans and could earn a high salary when looking for a job.

If it weren’t for Apple and the iPhone, Objective-C would probably have been a dead end, causing problems with the syntax and error-prone type systems of modern programming languages. But by then so many people were learning the language that Objective-C quickly rose to the top of the programming language charts.

Like many startup teams, we taught ourselves iOS and Android programming from scratch. I remember my colleague Shannon dancing for joy when she finally solved a long-running performance glitch on her iPhone app.

Today, iOS and Android have become very mature development platforms. In addition to Native development, there are cross-platform solutions like React Native and Weex that allow apps to be written in JavaScript. In mobile game development, the use of scripts to write game logic is older and more mature than the cross-platform approach to apps. Whether using Cocos2D-X or Unity3D, with a scripting language, LUA or JavaScript, you can publish your game code as if it were a Web page.

At this point, the front-end technology has come full circle. JavaScript can now be used almost anywhere. It can be used to develop Web and H5 pages, iOS and Android apps, cross-platform mobile games, and server programming with Node.js. The front-end technology, in a unified fashion, has evolved into full-stack technology.

In the meantime, Apple is pushing its Swift language, and there are other options for Android development, such as Kotlin.

Thus, the trend of technological diversity and uniformity exists simultaneously. Who is the future? Clearly, they will coexist for a long time. The native approach is certainly here to stay, and the extent to which cross-platform solutions eventually replace native will depend on how mature they become in the future.

Further into the future, wait for the next disruptive thing.

App->AI ?

If apps have revolutionized the Web, what will? Now people are pinning their hopes on AI technology.

Like Google, major players are already building their presence in AI. Yann LeCun, Geoffrey Hinton, and Yoshua Bengio, two of the academic “big three” of deep learning, have been recruited by Google and Facebook, respectively. Another expert in artificial intelligence and deep learning, Andrew Ng, was also lured away by Baidu. In September, Microsoft also established a new division focused on AI research [13]. IBM, which historically developed the Deep Blue chess program, is a veteran player in AI. Not to be outdone, Amazon has taken off in the market with its smart speaker, Amazon Echo.

Overnight, it seems, a revolution in artificial intelligence is about to take hold. But technological revolution, it just comes quietly. We’re still in the very early days, and it’s kind of like when the mobile Internet started five or six years ago. Moreover, AI-related technologies, especially deep learning, are still far from mature, and it does not have a solid mathematical foundation to support it. Driven by capital, however, it is accelerating from the laboratory to industry. That means more uncertainty ahead.

However, I firmly believe that the true boom of ARTIFICIAL intelligence will come one day, though it may take longer than people think.

(after)

References:
  • [1] yourstory.com/2016/10/goo…
  • [2] www.khronos.org/openmax/
  • [3] gstreamer.freedesktop.org/
  • [4] en.wikipedia.org/wiki/Motoro…
  • [5] www.billbuxton.com/multitouchO…
  • [6] tech.qq.com/a/20150329/…
  • [7] en.wikipedia.org/wiki/Symbia…
  • [8] en.wikipedia.org/wiki/Open_H…
  • [9] open.renren.com/wiki/XNML
  • [10] en.wikipedia.org/wiki/Happy_…
  • [11] www.fminutes.com/aboutus.htm…
  • [12] wiki.open.qq.com/wiki/%E6%A6…
  • [13] blogs.microsoft.com/blog/2016/0…
  • [14] en.wikipedia.org/wiki/Amazon…

Other selected articles:

  • Xiaobai’s Path to data Advancement (I)
  • Why does Redis use jumpers instead of balancing trees?
  • Do you need to know about deep learning and neural networks?
  • On the turning point of life
  • Those antipatterns of programmers
  • Authentic technology with wild way
  • The programmer’s cosmic timeline
  • How annoying is Android push?
  • Asynchronous processing in Android and iOS development (iv) — Asynchronous tasks and queues