Copyright Notice Author: Wu Zhihua (nickname: Tianshi), senior wireless technology expert at Alibaba, head of the basic platform department of Taobao Mobile Platform, and head of the Weex project This article is contributed by the Taobao Mobile technical team. Today, Taobao Mobile announced that it will donate the Weex open source project to the Apache Foundation for incubation. This is Alibaba's third Apache Foundation open source project after JStorm and RocketMQ. The Apache Foundation has a very strict access mechanism. The joining of Weex shows that it has been recognized internationally. We also very much hope to see China's mobile open source projects succeed internationally. At the GMTC conference in June this year, I talked with Taobao students about the development of Weex, which is completely based on Github. In this article, Mr. Tianshi sincerely shared more stories behind Weex. I think it is this sincerity and openness that are the key to Weex's success. This article also talks about the preparation process for Weex's open source and how to join the Apache Foundation. I believe it can be helpful to those who are preparing to open source their company's technology.
(On June 30, 2016, the Weex project was open sourced and the team took a group photo) At the end of October, Alibaba Cloud's Tang Rong invited me to give a keynote speech on Weex open source at the Yunqi Conference Open Source Special. I looked at the list of speakers: the first was John Willis of Docker (a well-known DevOps expert), the second was me, the third was Michael Widenius, the father of MySQL (the author of the first line of MySQL code), and the fourth was Alibaba Cloud's Chu Ba. I was grateful for Alibaba Cloud's recognition, but I was also under a lot of pressure. First, I was worried about speaking nonsense in front of senior masters and industry colleagues, and second, I really wanted to say something to the industry, even if it was just to make everyone remember one or two sentences. Behind the scenes of Weex open source The process of preparing the presentation PPT is a process of continuous summary and self-cultivation. Back to a year ago when we discussed whether Weex should be open source, we had the idea of following the hot technology trends and keeping up with the trend of open source, but we firmly believed that Weex might be the only opportunity to build a technology ecosystem in the field of mobile technology. At the same time, a lot of discussions were also held on "what is Weex and what it wants". Weex is not RN, three-terminal consistency, or Vue. These points are important but not necessarily the most essential understanding. The preparation for the entire project to be open source started from the Spring Festival until April, and there was a lot of behind-the-scenes work (removing internal logic from the code, migrating the code repository to github, documents, demos, official website). In the meantime, we have been communicating with the industry and have been asked about our understanding of Weex and the maintenance of open source projects. I remember that Selina from Geekbang came to discuss cooperation and was asked about Weex. My view at the time was that "in the mobile era, there is no more suitable way to describe the interface and express business than HTML/CSS/JS. The current smartphone GUI system is just a poor approximation and imitation of HTML. Weex/RN is an inevitable product in a sense." Frankly speaking, the open source of Weex was still in a huge controversy at that time: one was that the consistency of the three ends we adhered to was for the sake of difference, or we had our own thinking and firm belief, and the industry was skeptical about our ability to achieve the consistency of the three ends; the other was the negative impression accumulated by Alibaba's past open source, which brought many challenges to the open source of this project. These difficulties and challenges in front of us prompted us to constantly think about how to go about the open source path of Weex, and our confidence and courage were also in torment. As time goes by, various preparations are gradually being delivered, and we are getting closer to the QCon announcement of open source internal testing on April 21. The effects that Weex open source internal testing can achieve are also discussed on the table. How many people can Weex open source attract? Should it be an internal test or a public test? Is the term internal test appropriate? There are constant internal disputes, and the modesty of the technical team has also caused trouble for the cooperative market operation team. The whole thing is very uncertain, but the established goals must continue to move forward, decisions must be made, and execution must be carried out. As the team leader, I was under a lot of pressure at that time. I was always worried that the Weex open source would fail and there would be no follow-up. On the weekend of March 19, I was at home under pressure and suddenly had an idea: "We should immediately do an open source internal test within the group to see the response of the internal developers of the group." Open source internal testing We did it as soon as we thought of it. We asked the team to write an article on the intranet to call for open source internal testing within the group and let the group's technology development department promote it. As a result, the effect of such a crude and simple activity was beyond our expectations. Many students in the group contributed some interesting demos and components to us. It was these earliest community contributions that gave us the confidence and encouragement to persevere. Then came the story of the open source internal beta test at QCon on April 21st: the team worked until 4 a.m. on the evening of April 20th to rush the release of the Weex official website, and then Nantian’s keynote speech at QCon that day was very successful and received a lot of praise from the industry, allowing the industry to see our deep understanding of the direction of mobile technology. Following closely, a large number of developer application emails continued to come in, and the Weex open source journey started. In retrospect, the open source internal test has played a critical role in helping Weex gradually improve the developer experience within a controllable range, giving us the opportunity to constantly correct ourselves and avoid the situation where a large number of developers rush in when the project itself is immature and causing it to get out of control. When we rushed out to open source, we found out about the many problems of various Weex tools in the developer environment, the strong demands of developers for debugging tools, and the problems with documentation. A large amount of input also made the Weex project more complete, sound, and more humane. In the two months of open source internal testing, we served a large number of developers with enthusiasm and passion, solved many problems, and let the community see our determination. Some enthusiastic developers also began to help spontaneously establish the Weex Help forum and QQ group, and the prototype of the Weex community was formed. Later, it was the official open source at the end of June. The team had to balance the pressure of business implementation while fulfilling the promise made at QCon - "Weex will be officially open source at the end of June", which was actually quite difficult. We held a small celebration ceremony on the day of the open source, which was also the first overall appearance of the team to the outside world that everyone saw on Weibo later - "Friends expressed their love and persistence for Weex open source with full enthusiasm and sense of ceremony." Collaboration with VueJS author Yuxi You Another thing worth mentioning on the road of open source is the story of introducing VueJS author You Yuxi as a consultant for Weex. In fact, Gougu had been in contact with Xiaoyou for a long time, and had been talking for nearly half a year. He had always had some small entanglements in Xiaoyou's work style and responsibilities. Mainly because there were no examples to refer to at the group level in the past, it took a lot of effort to convince all parties, and at the same time, he had to take Xiaoyou's feelings into consideration. My personal principle is "to respect Xiaoyou as much as possible, and finally I boldly decided to let Xiaoyou work entirely for the open source community, and all delivery and cooperation will be carried out in the community". We are doing open source things, and we also hope that Xiaoyou's work results will be reflected in the community and serve the community developers who love Weex and Vue. Once the principle is determined, the form of cooperation will be clear and simple, and there will be less unnecessary constraints and pressure when cooperating with each other. However, I have to thank my boss Nantian for making this happen. He allowed us to freely experiment with some innovative ideas. I also sincerely hope that the cooperation between Weex and Vue will live up to the community's expectations. On September 3rd at Nanjing JSConf, You Yuxi officially announced that he would "join the Weex team as a technical consultant to promote the integration of Weex and Vue in the front-end framework and community." The community feedback was almost all positive. That day, I said to Gougu: "Xiaoyou, this is the most appropriate time to join. It is not a good time to join too early or too late." Promote Weex to join the Apache community Let’s go back to the Yunqi Open Source Summit mentioned at the beginning of the article. Before the Open Source Summit in October, the team was invited to share a lot in the industry, and received feedback from community developers: “Some companies in the industry are worried that this project is too Alibaba-like, and stopped the attempt to connect to Weex.” This feedback prompted us to think about how to make the project more neutral so that more developers can participate and contribute. After discussion, the team felt that promoting Weex to the Apache community might be a way to reassure the industry. So we started to take action and first found Ji Junxiang from the JStrom project of the group. Mr. Ji was very enthusiastic and always believed that projects like Weex should build a wider influence. We hit it off on the concept and direction, so we started to prepare. Lao Ji has done a lot of work on Weex's path to the Apache incubator, and last week he was introducing the Apache community's workflow to the Weex team. Through Lao Ji, we also got in touch with Luke, a teacher at Apache Kylin. It happened that Luke had a speech at QCon Shanghai, so we ran over to have a face-to-face exchange with Luke. During the more than one-hour exchange, Luke explained to us the philosophy and rules of the Apache community, and Apache Kylin's The Apache Way, and also let us appreciate the demeanor of someone who truly loves open source technology. Finally, we invited Luke and another teacher to be mentors of the Weex project, but the champion position was still vacant. So I had two tasks at this Yunqi Conference Open Source Summit: one was to tell everyone about the philosophy that Weex has always adhered to; the other was to find a champion. Thoughts on Weex While preparing the PPT for the Open Source Summit, I have been thinking about what to say to the industry. My mind is full of the road of Weex's implementation in the group in the past six months (the many hardships of the team and the never-ending road to performance stability) and the details of the open source road in the past six months. What is Weex? What should we insist on? Why do we spend so much effort to make Weex open source? We have been thinking about these three whys over and over again, and we must answer them. I thought about it for a long time and revised the PPT many times. I thought about the changes in mobile Internet technology in the past ten years, and also thought about my own many technical experiences in the past. I thought about the evolution of Taobao Mobile's technical architecture from 2009 to the present: from Native to H5, through WebApp/Bird's Nest, and then to RN/WVC/Weex. On the evening of October 13, I wrote a paragraph: "Weex hopes to bring the unified technical standards and open and free sharing spirit of the Web to the delivery of mobile Internet services." This is the path we have identified. The speech on the afternoon of October 14th was unexpected. I thought many people came to the venue to see the two great people, Docker and MYSQL, but it turned out that many friends were interested in Weex and open source, and many friends asked questions after the speech. I remember someone brought up the issue of WeChat Mini Programs and Weex. My understanding is that these are two completely different things: "Mini Programs are more of a closed business ecosystem. Weex is more willing to set unified technical standards for the delivery of mobile Internet services. We hope to always adhere to open source and neutrality, and everyone can use it without any burden. As for the future, I still firmly believe that mobile Internet technology will mature and unify, and unified technical standards may bring many wonderful things. This is something that technical people are willing to believe in and work hard for." After the speech, I felt heavy physically and mentally. I had a deeper understanding and a heartfelt sense of mission for Weex's practice of standardization and consistency of three terminals. Whenever we do a little more in standardization, we can reduce a lot of costs for developers. When I returned to the team, I immediately communicated with the core backbone to promote the establishment of the Weex Technical Committee, which is committed to promoting standardization and regularization in the project. Weex’s Double 11 Test At the end of August, the pressure of Alibaba's Double 11 was overwhelming. Weex replaced H5 as the basic terminal rendering solution for Double 11, which was the only and most important task for the Weex team. How to ensure the stability and performance of Weex during Double 11, meet business needs, open up the whole link of R&D, production and monitoring, ensure the implementation of business code best practices and performance standards, and constantly refine downgrade plans and repeated drills. Guidao and Gougu led the team and worked together with the Double 11 venue team in the joint project room for more than two months. The pressure was great, and there was no way out, so they had to keep moving forward. Once Weex was downgraded during Double 11, the efforts of nearly a hundred people would be in vain. Fortunately, and with our hard work, Weex withstood the test of Double 11 and delivered a good result: Weex's coverage rate in the Double 11 venues was close to 99%, and the number of pages was close to 2,000, covering almost all Double 11 venue businesses including the main venue, sub-venues, sub-sub-venues, and crowd venues. The opening rate of the main venue on Double 11 was 97%, and the total venue pages reached 93%. Wonderful things also happen during this period. Sometimes when you work hard to a certain extent, miracles will come quietly. As I wished, I joined the Apache Foundation As mentioned earlier, we started the Apache preparation process in August and have been looking for a Champion but to no avail. On October 11, Lao Ji from JStrom helped to send an email to the Apache community "Seek one Champion for incubating Weex project", but the email fell on deaf ears. We were disappointed for a while, and we also tried to send an email to JS Foundation to inquire about the corresponding project incubation process, but we did not receive a response. Until November 3, a miracle happened quietly. Benjamin Young (Weex Champion, W3C Invited Expert) replied to us in an email and wrote: Were you all able to find a Champion for the Incubator? I'd hate to see this great project miss out on benefiting from the Apache Way. I remember that it was exactly 10 o'clock on Thursday night when I saw this email. I couldn't help but excitedly call Gougu to tell him the good news. God rewards hard work. After finding Champion, the subsequent proposal submission, community discussion and voting process went incredibly smoothly. In the end, we were lucky enough to be admitted to the Apache Incubator (http://incubator.apache.org/projects/weex.html). I have repeatedly told the team that the reason why Weex has some technical influence and community attention in the industry today is not because we are doing well, but on the contrary, we are not doing many things well. It is just that we are lucky that we chose the right direction for this project, and we have received a lot of attention and support from the group and technical people in the industry, so we have the opportunity to do this first step well. We have just started to return to our original aspirations. The road of adhering to standards is not easy to walk, and we hope that more friends in the industry will walk with us, but we firmly believe that if we take the right path, we will not be afraid of the distance. Looking back on the past decade, a large number of technical people have made efforts in cross-platform GUI, dynamic mobile applications, improving mobile browser technology and HTML5 standards, from non-intelligent operating systems to WebOS and then to iOS/Android systems to continuously pursue the improvement of UI drawing and business expression efficiency, and then to today's RN/Weex. Everything seems like a reincarnation, technology always moves forward in twists and turns but will not simply repeat itself. |
<<: Network framework analysis – all tricks
>>: Android simple "blow to achieve" and recording and playback examples
1. System native UIActivityViewController Pros an...
It is said that the most powerful growth routine ...
"Use XXX diapers to help mom have a good sle...
Content marketing has become a key factor for bus...
Resource introduction of "The Invincible Eas...
As we all know, the growth of an enterprise is cl...
In 2015, everyone started their own business, and...
[51CTO.com original article] Taniey's relatio...
Taobao automatic delivery project, make money onl...
With the continuous popularity of short videos, ma...
Course Catalog: ├──Wang Chong 1.1.mp4 1.11G ├──Wa...
1. Introduction to brand cooperation Different fr...
With the arrival of 2021, it has become increasin...
TOP9 How Baidu impressed users in its early days ...
I wrote the first answer on Zhihu , which unexpec...