On October 15, “Go+ Together! Go+ 1.0 press conference and Go+ Developer Foundation launch Ceremony” was held in Shanghai.
In this conference, Xu Shiwei, CEO of Qiniuyun and inventor of Go+ language, and contributors of Go+ language jointly released Go+ version 1.0 and announced the Go+ development roadmap. Under the title “Go+ Together”, Xu Shiwei shared why Go+ is needed, the goal of Go+, and the ideas and direction of Go+ ‘s future development.
The following is the summary of Xu Shiwei’s keynote speech.
Thank you all for coming to the Go+ 1.0 launch. This is going to be a very memorable day for me. Last year we launched Go+, and today I am proud to say that Go+ is commercially available and ready to Go into production! From the perspective of the next decade, this is a very important event. For today, I have thought about it for a long time. At first, I planned to share more things than what I have to share today. But considering the time, I still deleted a lot of them. What I want to talk about most today includes three aspects: 1. You and Go+ 2. What do Go+ want to be 3
I know there are a lot of non-technical people out there today who are not the regular audience for what we call programming languages, but thank you very much for coming to this historic moment. The first part I want to share is that Go+ is relevant to everyone in this room, even non-technical people. Second, what does Go+ want to be and what is our goal? Why does the world need Go+ when there are already so many programming languages? This is a question that many people ask us, and it’s a topic THAT I hope to be able to clarify on such an occasion. Third, how should we develop after we have defined our goals? How can Go+ become a popular language in the real sense? I set a flag for myself in my moments yesterday — I hope Go+ can surpass Go one day. I don’t think this ideal is too far away. Why do I have such a view? What kind of charm can Go+ rely on to develop and surpass Go?
You and Go+
First, let’s talk about how you relate to Go+, why you care about Go+, and how programming languages relate to you.
Before I talk about programming languages, I want to talk about the process of automation. The human history has been more than two thousand years, the earliest stage is manual labor, no automation can help us improve efficiency. Mechanical automation is the first process of automation we know of, symbolized by the advent of the steam engine in 1776.
The logic behind mechanical automation is “hardware as program”. In fact, the concept of program is automation, and the biggest problem in the period of mechanical automation is “factory peak”, a machine from the time of factory is clear what function, can not carry out subsequent iteration change. The advent of programming languages was the idea that we could change the automation of programs, software-defined programs, and one of the most important events was the advent of the computer or the concept of the computer in 1941. Looking back on the past is more important than looking forward. How will automation evolve as we look from today to the next 10, 50 years?
I have shared my judgment and opinions with many friends.
The first is what happens in the next decade? I think high probability is the word we hear a lot — software automation eats everything. Until today I thought it was just a slogan or a direction, after all the word has been around for a long time, but is software really eating everything? Not really, because so much of it is still mechanical and manual. The main scope of software automation is consumer Internet before, now turn to industrial Internet, all industries will be Internet, and the process of the Internet itself is the process of software automation. I think the next 10 years will complete the software automation process, all industries will fully enter the software automation stage. The second step, I think, is to take a longer view, 50 years from now. I think there will be an important evolution in software automation. Everyone is talking about big data and artificial intelligence. In fact, this represents the next stage of software automation, from code-driven evolution to data-driven evolution, from IT to DT. Having a sense of the future is actually very helpful in how we judge and understand trends in such a basic field as programming languages. What does the trend of development in ten or fifty years have to do with us?
First of all, since software automation will engulf all industries, those of you in this room, whether in health care, education or other fields, will have the most direct relevance to software automation. This is especially true of the next generation. Now artificial intelligence is hot, causing a wave of children to learn AI, but from my perspective today, it is a little early for them to learn AI. If they’re between the ages of eight and ten, that’s actually the best time for them to start programming. Why do I think that? Let’s take a look at what a programming language is. Programming languages are very similar to natural languages in the sense that, in the most straightforward logical sense, they are expressive tools that drive the computer to do what you want it to do, that is, to express your thoughts. But it differs from natural language in that it is a way of getting the computer to do things for you, in effect automating software. A lot of people have a phobia about programming languages, but there’s nothing profound about them if you understand the logic behind them.
The topic just now is actually quite straightforward, I believe many people can understand. Now I want to discuss with you a very core question — how much will the future of human civilization depend on code? I have some thoughts on this topic.
First, I’ll think of knowledge in two categories:
- I think: the knowledge density of engineering technology is much higher than that of scientific theory: one scientific theory may correspond to thousands of engineering technology applications. Scientific theories are abstract, such as Newton’s three laws, which can be expressed clearly in natural language. Writing can basically meet the needs of scientific theory expression.
But when we look at engineering, let’s say we’re building an atomic bomb, if we’re still writing about engineering, one of the problems is that it’s not accurate. Different people see the same sentence, meaning completely different interpretations. A huge problem with imprecise expression is the possibility that the technology will be lost. But if we use programming language to record, it can achieve accurate inheritance, there will not be a few years after the human can not understand the technology. This is a big change in programming languages.
With that in mind, the next point I want to share is that programming languages are the code for higher civilization. Programming languages will become the underlying infrastructure of human civilization because they change the way we record engineering. This is a very important theory. If you don’t know how to program, you may only understand part of the science, but the range of knowledge you can acquire may only be one-thousandth of that. Because the vast majority of the world’s knowledge, the greater density of knowledge, comes from engineering, which is what we need to pass down precisely in programming languages. If you do not know programming, it means that you may not understand most of the knowledge of the future, in a sense, it is another kind of “illiteracy”. In this sense, programming languages, although they appeared more than two thousand years after the development of human beings, represent a higher level of civilization code. It is a tool for transmitting human knowledge system. This is my personal view of programming languages. In this dimension, programming languages are very relevant to all of us.
The next topic is, are programming languages hard to master?
I actually answered this question earlier, but I want to share with you that programming languages are much easier to learn than natural languages. Programming languages learn some of the expressions of natural languages to make them easier to understand, but at the same time programming languages do not copy natural languages completely because they do not need to inherit the complexity of natural languages. Good programming languages have fewer, more refined, more precise syntax conventions, like Go and Go+, that can be learned in a week or two. You might think it’s an exaggeration to learn a language in a week or two, but that’s actually how I’ve taught my own children. Expertise is another topic, but the basic syntax and core presentation skills of a programming language can be taught in about two weeks. A programming language is much simpler than most people think, because it is essentially a tool for expressing ideas.
What do Go+ want to be?
The second topic you may be interested in is what Go+ wants to be.
When Go+ was released in July 2020, everyone knew that its slogan was “For data science.” But a while ago we changed it to “for Engineering, STEM Education, and Data Science.” It’s a trinity. It looks like its target is too big. Colleagues within Seven Cows will also ask whether “trinity” means Go+ has lost its focus and doesn’t know what to be. What’s the point of Go+? This is the first question that pops up when many people see the slogan.
Before I talk about the Go+ trinity, I want to talk about the Jobs iPhone trinity. These screenshots were taken from jobs’ presentation in 2007. The iPhone’s trinity is a widescreen iPod, a revolutionary phone and a great Internet access experience.
Do these three things take the iPhone out of focus? I think in many cases, today’s scientific and technological revolution itself is cross-border integration, and cross-border integration is a very important theme of the following technological evolution.
Why do programming languages need to cross borders? First, I want to talk about what the trinity of Go+ stands for, and explain what the trinity means.
The three explanations are specifically in English because I want to post them on the Go+ website after this conference. Firstly, for engineering, we believe that the significance of our revolution for engineers is that you can work in a simple language that even children can master. This is an evolution that we think is very important in engineering. We all know that the concept of low code is very popular right now, but the thing that really lowers the barrier to expression is the change in language. Secondly, in the field of STEM education, we hope that children learn an engineering language from primary school, so that they can use it in their future work. Like I’m going in circles? Yeah, same point as before, we’re just looking at it from a different Angle. But I think it’s very important. As you can see, that’s not how it works today: The first programming language that kids start out with is probably Scratch. But Scratch is not going to be used in projects, so you definitely need to learn other languages. We want beginners to be able to learn an engineering language from scratch, and this is clearly possible.
Finally, for data Science, we want engineers and data scientists to be able to talk to each other in the same language. I think this point is crucial for talent cultivation in the period of Data science or Data technology.
Let’s talk about them one by one.
First of all, I think the integration of engineering and STEM education is a big trend.
The first logic is what we just mentioned, which is that software automation is going to eat everything, everything, in the next decade. In such a context and process, one of the most important challenges we must face is where engineers come from, and there are simply not enough of them today. At present, the training system of engineers is not so perfect, and this trend will force the innovation of the training system of engineers. I think Go+ is actually the first language to face the reform of engineer training system. Today’S STEM education is separate from the engineering community, and schools often teach things that the engineering community doesn’t use, or doesn’t use much anymore. It is very painful for enterprises to recruit college students, that is, what schools teach and what we want are two different things. I believe that people who run companies understand this very well, and those who do management in companies and need to go to school to recruit also understand this very well. If we make the language of engineering easy enough for a seven – or eight-year-old to master, then naturally the language of instruction equals the language of engineering. I think this is a huge change, because we have really integrated the industry, the university and the research institute, and the integration of the industry, the university and the research institute is a very key and the most essential thing in the innovation of the engineer training system. How to make the university and the industry talk in the same language instead of doing things separately is a very important thing. We hope Go+ can carry such a mission. So the first trend I can see about Go+ is the integration of engineering and STEM education. All of the trends and the future that I just talked about presuppositions that there needs to be an engineering language that can be mastered by a seven – or eight-year-old. Can Go+ be mastered by primary and secondary school students?
In fact, half of Go+ ‘s current cases are contributed by children. Here we share two cases with you:
The first example is very simple, implementing a dialogue between several characters. And this is something that’s usually taught in the first or second class in Scratch teaching.
The second example is more complex, closer to engineering aircraft wars. Today, I am very happy that Go+ can be learned and used by children aged seven or eight. While seven may be too early, my personal opinion is that around 8-10 is the best age to start programming.
So what does Go+ change, or do, that Go doesn’t?
I think there are two things that are most important: First, for beginners, Go+ hides the complexity of the project. They don’t have to understand the engineering concepts of functions, modules, etc., right from the beginning, which is too difficult for kids, and we got rid of that right away.
Second, expressions closer to natural language were used. I’ve also posted an example here of a monkey eating a banana. When the monkey movement, check whether the banana and monkey collision, if yes, the monkey ate the banana, the game is over. Add one to the number of bananas eaten. This code is so simple that you can basically read it without coding, and that’s Go+.
And this is something that we think Go+ does that Go didn’t do, that allows a very young child, who can basically write articles, to write programming. I’ve always tried to dispel the fear of programming by saying that anyone who can write can learn to program. Programming languages have far less syntax than natural languages, so you have nothing to fear. This is a very interesting thing.
The second trend I see is the integration of engineering and data science. This is also a significant trend.
In my previous Go+ posts, most of the topics were “Go+ and data Science”, so I will briefly cover this topic today. If you are interested in this topic, you can search the content of my previous speeches. I just want to share the main logic with you. First, the evolution of software automation over the next 50 years from code driven to data driven relies heavily on a new and relatively unknown role: the data scientist, or data engineer. Data scientists will continue to see explosive growth in demand in the future. After AlphaGo went viral, the AI boom briefly made data scientists much better paid than programmers. This is actually because the relevant talent is too few, not easy to find. In terms of his ability, he needs to have a background of development engineer, the ability of mathematics and statistics, and a certain sense of business. So the ability requirements of this role are quite comprehensive.
One of the most likely ways to develop a qualified data scientist is to come from an engineer, a very natural talent development path.
There are many specialized fields in the world, and there are also languages for data scientists, the most typical of which are R and Julia. But why did Python win in the end? As it happens, Python moved to the top of the list of languages this month, knocking C and Java off the top, which I think is a very symbolic event. The logic behind this is simple: There are so many engineers in Python. There are lots of Python engineers, so data scientists come from Python engineers, which is the most natural talent development path. So Python’s position at the top of the list itself represents a major trend — the integration of engineering and data scientists.
Let’s summarize these trends:
- The integration of engineering and STEM education solves the system of training engineers; – The integration of engineers and data science addresses the training system of data scientists. That’s why Go+ is doing the trinity. We believe that these two major integration to solve today’s it talent core appeal.
We let engineers and school students use the same language to talk, so as to realize the integration of production, learning and research and complete the construction of engineer training system. We have engineers and data scientists talking to each other in the same language, and we’re building data scientist training systems.
This is the trinity of Go+.
Iii. How does Go+ develop
And the third question that people are very concerned about is — can you grow? Why can Go+ grow and surpass Go?
The first topic I’d like to talk about is what are the popular codes for programming languages, what makes a language popular or not, and what’s behind it.
As we all know, Go was released in 2009. It was only two years ago when Qiuniuyun was founded in 2011. Version 1.0 was not released until April 2012. Go+ 1.0 was released at a much faster pace than Go, and we released version 1.0 in just over a year. Why, when Go was a baby in 2011, did we think the language would be so powerful?
I think there are several points to judge the popularity of programming language password: first, the value scale: from the value of the language itself, whether the language has the potential to become popular;
Second, open source and community ecology: does the language have a big enough “backer” from this dimension?
Third, the killer app: where the language can be used and where it can break through first. These three dimensions, I think, are the most important logic in the language popular code.
Let’s start with the value scale. From the perspective of value, I think these points are very important:
Number one, less is exponentially more. I really like this sentence, which has a tremendous impact on my architecture or engineering thinking. The power of a language lies not in having many features, but in having enough features to express enough power. Like a lot of people trying to write super long powerpoint slides, I usually judge a person by whether or not you get your message across in a few pages, which is the most powerful. The core value of Go language is the principle of minimization of language features, with fewer but better functions. Second is nature (to avoid surprise). There shouldn’t be a feature of the language that makes you wonder why it is the way it is, it should be the way it is when you see it. First of all, there should be little grammar. Second, it should be natural. What you see is what you get. Second, the cost of learning. The cost of learning consists of two parts. The first is how difficult it is to get started, and the second is how high the cost of subsequent learning is. Both Go and Go+ adhere to the principle that languages can be learned in a week or two. Behind this is the value scale of “less is exponentially more”, benefiting from the principle of “minimization of language features”, so the barrier to entry is extremely low.
The cost of subsequent language learning depends on future expectations. What this means is whether language features can be kept stable over the long term to reduce the cost of learning in the future. The Go language will probably not change much in the next 20 years. When it leaves the factory, it will be basically what everyone expects in the future. This is an incredibly important and difficult thing to do because most languages can’t do it. For Go+, we hope that Go+ 1.0 will be the basic model for the future. Of course, we will add some “spice” to the data science part, but in general it will remain the same, because I think it needs to be restrained from a technical perspective.
Before Go+, we saw two languages do it, Go and C. C is a language that appeared 60 years ago, but today it looks exactly the same as it did when it first came out, with little change. The reason why a language that was invented 50 or 60 years ago is still number one today, and has just been knocked down by Python, is that language features have remained stable for so long. The third point is performance. A language should be high performance, and the key here is to be silent. It doesn’t require the user to understand a feature, it requires a natural property, not a feature. A lot of language optimization, is the need for users to do additional optimization, and the meaning of “smooth things silently”, is to use the most natural expression, natural with high performance, without additional use burden, the higher the performance is better. These three features are one thing: the more powerful the better, and the lower my learning costs, the better. Divide the two, obviously the so-called value measure is actually cost performance. All things are cost-effective, language is the same, with the smallest things to express the most powerful ability.
The second popular password, I think, is open source and community ecology. **** **** language is very kernel things, programmers learn a language, let him to change is very difficult, so there should be a logic to let them change language. Go+ cannot develop without a strong “father”. Can we find a “backer” for ourselves? The logic behind community ecology is actually this. Go+ adopts inclusiveness and inherits multiple community ecology. We want strong backers in every area. So what community ecology needs to be compatible and inherited? First, engineering first Go. In engineering, we choose compatible Go, our syntactical features are compatible, Go+ is a superset of Go. Of course, we also adhere to the principle of “language feature minimization”, on the basis of Go syntax features, add minimal functionality. We think Go is one of the fastest growing languages in the future, and Go+ will grow even faster and eventually surpass Go. Second, teaching first Scratch. I really admired Scratch when I was teaching kids myself. This language appears very early, but what is so powerful about it? The language is really weak in terms of functionality, and I’m sure all engineers would despise this language, but someone wrote Minecraft on it. That’s interesting. Minecraft is a super complex game, much more complex than most games we see. Why would anyone write Minecraft in Scratch? I was surprised when I saw it, but I understood. Why are people so obsessed with education? In fact, we are very concerned about the education of the next generation. What are we doing about it? The engine capability and design are Scratch compatible and build on that for automated code conversion. The Go+ engine is fully Scratch compatible. What’s the advantage of this? In the training system of engineers, one of the most difficult things is the teacher talent, teachers are relatively scarce. Scratch cultivates so many teaching resources that Go+ “covets” very much, so we choose compatible Scratch to lay a solid foundation for entering the teaching field. Finally, data science first Python. We made a very bold decision, the technical implementation of the decision behind the difficulty is super high, of course, it has not been implemented today, it is just a great force, but first blow out again. We plan to import Python packages directly from Go+ to address one of the biggest problems with Go and Go+ in data science, namely the weak community ecology. Packages in the Python data science world are ubiquitous, and implementing this feature solves Python compatibility problems. We’re still figuring out how to do that, and I’ve figured out how to do that, and it’s very possible.
The third popular code for programming languages is “killer apps”. * * * *
Every language needs a killer app, and Go’s killer app is well known. Go’s main field is back-end programming. Today’s cloud computing infrastructure is basically written with Go, like Docker and Kubernetes. There is no cloud company today that doesn’t use Go. Cloud computing infrastructure is Go’s killer app. So where should Go+ start? Where to start? What is our killer app? I have been thinking about this question for a long time, and my answer today is actually very simple. We start from the integration of engineering and STEM education, and we start from the construction of the training system for engineers.
So who are we competing with? Is a Scratch. Our competitive strategy was super simple, number one ecological resource compatibility, I could use anything in Scratch, capability compatibility, my capabilities were so much more powerful than that.
Second, I think it is the core logic, which is the way of integration of industry-university-research institute. This is something that Scratch can’t do, because no one in the engineering community can look at Scratch. But it’s pretty impressive that it’s in the top 20. Go+ has to be in the top 20 to win Scratch. Go was 12th last month. If we want to beat Go, we need to be in the top 10. That’s sort of the logic. In terms of competing with Scratch, our slogan was: you don’t have to start with a toy language, you can start with an engineering language that you’ll need to work with. I think Go+ can do that, high dimension against low dimension. In terms of capability, Go+ is much better than Scratch, not to mention in terms of performance. What is left is the lack of teachers and the whole ecology. I’m pretty excited about it myself. Before today’s press conference, a lot of people from different industries came to me to talk about cooperation with Go+. However, my idea is to be cautious and choose education-related groups first. We started from the training system of engineers, hoping to make Chinese engineers far more than other countries through this reform. We all know that Huawei has a core logic called “saturation attack”. Chairman MAO once said that the simplest military logic is to fight a victorious battle with twice the number of troops. Sun Tzu’s Art of War also holds a similar view, namely, “Win first, then fight”, which requires sufficient forces and conditions for victory to win a certain battle.
All the logic is that the multiples of resources are the winners and losers. If China wants to rejuvenate the country through science and technology, it must have more engineers and talents than others, preferably more than twice as many as others. It relies heavily on the engineer training system. Go+ wants to take on this responsibility.
As you all know, one of the most interesting things in the Go field is that there was a question circulated online: why is Go the most popular in China? The search index is much higher than other countries because of the high demand for engineers in China. If Go+ can train enough engineers for the country, Go+ will surely make it into the top 10.
So why is Go+ uniquely valuable in STEM education?
I had dinner with a friend yesterday and he brought up the concept of education 2.0 to me. In Europe, such as Finland and Denmark, there is an education 2.0 teaching mode based on PPL. After listening to this logic, I found that it is very similar to the education concept I proposed.
So I use education 2.0 here, it is actually I have been advocating programming is the new era of “labor skills class”. What’s the logic behind this? The idea is for students to apply what they have learned, not to learn all the time.
In fact, learning is very anti-human, we do not love learning. What kind of situation makes a person keep learning? The core logic is to let him create, let him learn to apply, let him get a sense of achievement. So finding the joy of learning is letting him create.
The concept of “labor skills class” in the new era is to let students work and create, rather than just keep learning. It is the core logic of education 2.0 to find the weak points of one’s knowledge through creation, and to learn eagerly to make up for what one does not know. This solves the problem of too long an educational feedback loop. The reason why parents and children are so anxious right now is that teaching is very anti-human, and parents have invested for 20 years, and after 20 years, they can see the results, and they can know whether the child is good or not; A child learns for 20 years, and after 20 years he knows whether he can or not. If you were an investor, would you invest for 20 years? No, I sold it halfway through. I’ve talked to teachers at my son’s school, and I think the most important thing about programming is not adding a course. They’re already stressed enough, and adding a course doesn’t make any sense. At the core, we need to solve the closed-loop problem of teaching, which is the real and substantial solution to the problem. This is education 2.0, which I think is very important. The second is the integration of production, education and research. The core logic of industry-university-research integration is to push the real productivity tools into education, which will solve the problem I just teased — what schools teach and what companies want are two different things. Only by spreading what engineers use to the field of teaching and making teaching really useful can we truly solve the problem that what schools teach is what enterprises need. The linkage between enterprises and schools will be closer and the linkage at the school stage will be realized. Today, linkage with schools is still the patent of giants, most companies do not have such ability, if we do a good job of industry-university-research linkage, so that all companies can link with schools, this is I think it is very important to solve the engineer training system, to realize the integration of industry-university-research. If we can get this right, we can really revolutionize the system of training engineers.
And this is the last page that I want to talk about in the content, in terms of Go+. “The purpose of learning is to solve problems in real life.” This is the speech Stanford President gave to us during my study tour in the United States in 2017. It started with the definition of learning. They look at what learning is from the perspective of an educational institution. Why do we learn? In fact, it is to learn to apply, to create, to solve the problems in our reality.
Fourth, open source is the greatest protection of intellectual property
Finally, I’d like to thank you all again for coming. Most of you are technical people, so before I finish, I’d like to talk to all the technology entrepreneurs about the best business model for PaaS.
You can’t put your barriers to competition on the basis that the giants won’t copy you. **** today I want to share with you, is how to let the giant won’t copy? This is very important. First, “Open source is the biggest protection of intellectual property”. I want to give you an example of this. MySQL and SQL Server are known as the battle, MySQL than Microsoft SQL Server technology is superior? No, MySQL is technically “a little bit worse” than Microsoft SQL Server.
But why did MySQL win? I don’t think it’s a triumph of technology, it’s a triumph of mechanics. Open source is a very important means of creating, building and maintaining your barriers to competition. There’s actually a logic here. Open source makes it impossible for giants to copy. The first is the mental burden. The psychological pressure of signed plagiarism is completely different from that of anonymous plagiarism. In signed plagiarism, the developer who submits the code first has the mental burden of not wanting to be scolded. Secondly, the giant will also cherish their feathers, but also a bit of restraint. I believe that everyone will have similar feelings, in the BBS one real name everyone will not speak, this is the power of signature. Secondly, it is useless to copy the giant. Open source has a huge siphon effect, so it is very difficult to have a second place in the open source community, even if the giant copy after also can’t win you. The last thing I want to share, which may have nothing to do with Go+, is why Go+ is open source. But more importantly, today is a good time for technology entrepreneurship. I would like to give you some advice from my perspective as an old entrepreneur and the earliest technology entrepreneur in China. To think about PaaS entrepreneurship today, the most reasonable business model is open source.
Thank you!