By Zhenzi from F(x) Team
"While the steam engine and electric power have liberated humans from physical labor, the artificial intelligence and machine learning have liberated humans from mental labor," said Jack Ma, when sharing his entrepreneurial experience with young people in Hong Kong. When talking about the unemployment issue caused by the steam engine and electric power, Mr. Ma also pointed out that it was such progress for human society when we gradually transferred from physical exertion to brain work due to technological advancements.
Today, the "human-machine collaborative programming" frees software developers from tedious tasks of assembling UI elements and writing business logic for the transition to other tech-intensive work with business abilities, basic abilities, and bottom-layer abilities. For more information, please see: Frontend Intelligence: A New Way of Thinking
The prevailing point of view in the industry is that low-code refers to an easier building system, and no-code simply means graphical and visual programming. This viewpoint separates low-code and no-code development into two parts (the UI and logic) and defines them as tools to solve the problems. Another point of view regards "low-code/no-code" as two stages of the same method, as I proposed in my previous article entitled Human-Machine Collaborative Programming, just like different stages of a complete autopilot cycle.
I agree with the second view more than the first, not only because I put it forward, but also because the second view defines, analyzes, and solves problems from a unified perspective of software engineering. The first viewpoint merely focuses on partial optimization of the process rather than subversive innovation.
Low-code and no-code denote are stage 1 and stage 2 of "human-machine collaborative programming," corresponding to human-machine coaction and human-machine collaboration. The biggest difference between coaction and collaboration is whether there is a bond of understanding between humans and machines.
Whether it is low-code or no-code development, the target of services is the user. Whoever the user is, a programmer or what, generating code is the goal. No matter if it is source code, low-code, or no-code development, it is just a way to describe the program with code, graphics, or domain-specific language (DSL). In "human-machine coaction," the description is subject to various constraints, with limited business scenarios for applications.
In the "human-machine collaboration" stage where constraints are reduced, there is a wide range of business scenarios for applications. The understanding between humans and machines means that AI enables machines to learn and understand descriptions and adapt to more business scenarios with much fewer constraints. This connection is what distinguishes "human-machine collaborative programming" from traditional "low-code or no-code" development.
Ever since the beginning of libraries, frameworks, and scaffolding, programmers have embarked on the road of pursuing higher efficiency. On this road, the low-code and no-code development is probably their ultimate goal. Reuse, componentization and modularization, DSL, visualization, and workflow orchestration were all attempts to achieve the final goal (either in a certain link or different way), but generally in the field of software engineering.
The concept of middle platform is used more under business circumstances. In software engineering and technology, platform is the concept that delivers a similar meaning. Whatever it refers to, the concept entails attempt system-wide innovations. The "human-machine collaborative programming" with intelligent frontend I proposed may belong to the software engineering and technology field. In the business field similar to mid-end, I would like to call it "demand and production" mode, a novel business research and development method. These concepts are either equivalents, derivatives, or new iterations to old ones.
DevOps and cloud computing are fundamental technologies. Their evolutions inevitably bring about changes in the upper application layer. The development of a distributed system is difficult without the containerization and elastic scaling of cloud computing, especially when it comes to the continuous integration and delivery (CI/CD), deployment, O&M, monitoring, and tuning, where North-South distribution, active geo-redundancy, scale-out, and high availability are all major concerns to be addressed. However, the development of fundamental technologies, such as cloud computing and DevOps, has internalized and solved the problems mentioned above naturally, reducing the attention and use costs significantly. Their relations (or connections) enable the building of application-layer technologies that are adaptive to a variety of complex scenarios with few constraints based on such fundamental technologies.
In my opinion, today, the core technology of "low-code/no-code development" is AI-driven "human-machine collaborative programming". In the past, "low-code/no-code development" mainly focused on improving R&D efficiency. Today, AI-driven "human-machine collaborative programming" focuses on improving delivery efficiency. Therefore, if the "low-code/no-code development" takes "human-machine collaborative programming" as its main implementation means, AI is the core technology that supports it.
Computers were initially very limited resources accessible to only a few. Nowadays, almost everyone holds a micro-computer: a smartphone. Looking back, operating computers was the privilege of programmers and so-called "technicians," but today, almost everyone knows how to use a computer. However, people operate computers indirectly because they need professional programmers and enterprises to write software to utilize the various functions of the computer.
With the evolution of computing power and the digitization and informatization of society, people find it increasingly difficult to be satisfied with pre-defined software. "Low-code/no-code development " enables them to produce software directly, instantly, and efficiently that meets their needs at low cost and helps them operate numerous complicated electronic devices and establish connections with the digital world. In my opinion, this is an irreversible trend and the general direction of "low-code/no-code development.
1. imgcook
2. uicook
3. bizcook
4. reviewcook
5. datacook
6. Pipcook
With the evolution of computing power and the digitization and informatization of society, it is increasingly difficult to satisfy people's needs with pre-customized software. "Low-code/no-code development " enables them to produce software directly, instantly, and efficiently that meets their needs at low cost and helps them operate numerous complicated electronic devices and establish connections with the digital world.
In my opinion, this is an irreversible trend and the general direction of "low-code/no-code development." In the end, software development is bound to become a basic skill for almost everyone, just like computer operation skills today, rather than a special competence of professional programmers. Therefore, the "low-code/no-code" method will bring about an essential change in software development, switching from turnkey delivery to partial delivery and overall business delivery to business capability delivery.
In my opinion, the future of "low-code/no-code development" lies in AI-driven "human-machine collaborative programming," which changes the delivery mode from developing complete software to providing specific software functions. Similar to the Shortcuts feature in iOS, users can decide how these specific functions are assembled into the software as expected and delivered to the end user. The AI-driven mode provides two benefits: reducing development costs and usage costs.
In traditional software development, a series of specifications are required, such as the product requirements document (PRD), interactive draft, design draft, and design document. Based on these specifications, the software is implemented by technical and engineering capabilities. However, as "low-code/no-code development" delivers specific functions and semi-finished products, which are used for unenumerable purposes and circumstances, using switch-case programming is not a smart move because you are likely to be exhausted.
AI makes predictions based on characteristics and environments, the understanding of patterns, and the very nature of objects. For example, an AI-powered machine recognizes a cat with an accuracy greater than humans regardless of the environment, lighting, and breed. Imagine, how high much it could cost if a programmer developed a program to recognize a cat?
The building system today is essentially a reconstruction of the programming process following the ideas of building. The content of the work has not changed, and the cost is transferred from programmers to POs, PMs, and PDs. What's worse is that platforms today are built from a technical perspective and are full of concepts that are puzzling for non-technical personnel, such as POs, PMs, and PDs. Programmers spend more time answering questions and teaching them how to solve a simple problem than communicating with them and implementing the requirements by piling up the source code, which is often interrupted.
AI-based "human-machine collaborative programming" does not display any technical concepts, POs, PMs, PDs, and other tech neophytes can use their familiar tools and concepts to describe their needs without changing their working habits. The AI platform will identify and understand these needs and convert them into programming and technical engineering concepts to generate and deliver codes, reducing the usage costs significantly.
For example, if you don't have sharp English writing skills, which is the better way to get a high-quality English article, piling up English words by searching through a dictionary or translating an article written in Chinese with Google Translator? You can only express yourself clearly with the language and concepts that you are familiar with.
When I first proposed and shared the concept of "frontend intelligence" on the Designer & Developer Frontend Technology Forum, I pointed out this core identification - understanding – expression process. This is the key path I have always believed would achieve the AI-driven "human-machine collaborative programming." As a result, we launched extensive cooperation with prestigious universities in China and abroad in AI recognition, AI understanding, and AI expression.
1. Identification
2. Understanding
3. Expression
It has been about three years since I put forward the concept of frontend intelligence. From my initial vision of "let the frontend keep up with the AI development" to the release of imgcook to "solve frontline R&D problems" and the launch of the open-source pipcook to "provide the frontend a reliable machine learning framework," I barely had time to sleep.
Changing the current programming and R&D modes from the root have never been easy.
Along this arduous journey, we have grown from a group of frontend operators to cross-cutting AI programmers and witnessed the change of software development methods from manual code writing to machine generation and the change of people's attitude from bystanders to active participators. We have never given up our faith. "Low-code/no-code development" is in the ascendant. So, many technicians and researchers are making efforts in this direction. However, no method is a silver bullet, and no theory is absolutely correct. As long as we keep on researching and practicing, everyone will be able to customize the software to operate increasingly complex and powerful hardware devices and have access to the digital world more conveniently and effectively. We can finally change the world of software development and software engineering! Thank you!
Practices of Intelligent Frontend in Alibaba Cloud's Big Data R&D Platforms
66 posts | 3 followers
FollowIain Ferguson - December 14, 2021
Alibaba Clouder - February 2, 2021
Alibaba F(x) Team - September 30, 2021
Alibaba F(x) Team - December 8, 2020
Alibaba F(x) Team - December 14, 2020
Alibaba F(x) Team - June 20, 2022
66 posts | 3 followers
FollowAn enterprise-level continuous delivery tool.
Learn MoreAccelerate software development and delivery by integrating DevOps with the cloud
Learn MoreA public Internet gateway for flexible usage of network resources and access to VPC.
Learn MoreOffline SDKs for visual production, such as image segmentation, video segmentation, and character recognition, based on deep learning technologies developed by Alibaba Cloud.
Learn MoreMore Posts by Alibaba F(x) Team