×
Community Blog Low-Code/No-Code: From the Perspective of Frontend Intelligence

Low-Code/No-Code: From the Perspective of Frontend Intelligence

This article explains the similarities and differences between Low-Code and No-Code development and their benefits.

By Zhenzi from F(x) Team

What Is Low-Code/No-Code Development?

"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

1

Different Interpretations Towards "Low-Code/No-Code Development"

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 Development and No-Code Development: What Is the Difference?

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.

2

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.

How "Low-Code/No-Code Development" Is Related to the Industry

What Are Its Relations with Classic Ideas, Methods, Technologies, Middle Platform, and Other Concepts in the Software Engineering Field?

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.

Relations with DevOps, Cloud Computing, and Cloud-Native Architecture

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.

3

What Are the Core Technologies that Support "Low-Code/No-Code Development?

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.

Is the popularity of "low-code/no-code development" a sign of revolutionary breakthroughs in software development technology or a new opportunity derived from classic software engineering ideas, methods, and techniques with the continuous advancement of technology and business?

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.

"Low-Code/No-Code Development" Today

4

1.  imgcook

  • More than 20,000 users, over 60,000 modules, used by 70% of frontends in Alibaba, and zero frontend participation in research and development of the Double 11 Global Shopping Festival and other major promotion activities
  • 79.26% online code availability without manual participation, 90.9% degree of restoration, 83% accuracy of icon recognition, 85% of component recognition, 92.1% of layout restoration, and 75% of layout manual modification
  • 68% increase in R&D efficiency

2.  uicook

  • More than 90% of UI content is generated intelligently in marketing activities and big promotion scenarios
  • Intelligent UI generation covers the core business of daily shopping guides
  • UI intelligentization and personalization increase business value by more than 8%.

3.  bizcook

  • Preliminary development of NLP-based demand labeling and understanding system
  • Preliminary development of NLP-based service registration and understanding system
  • Preliminary development of NLP-based glue layer business logic code generation capability

4.  reviewcook

  • Automatic scanning for asset loss prevention and control and automatic identification of asset loss risks and public opinions by CV and AI
  • Automated UI testing, data rendering, and Mock-driven automated business verification co-developed with the testing team
  • Based on code analysis and understanding and online Runtime identification and analysis, the AI Codereview (co-developed with the engineering team) discovers and locates problems automatically with higher efficiency and quality than Codereview.

5.  datacook

  • A community-based open-source project, Datacook is merged with Denfo.js and co-developed with its authors to solve the problems in data collection, storage, and processing end-to-end in the AI sector. Datacook is comparable to HDF5, Pandas, and other Python-based libraries, especially in deep learning and machine learning capabilities, such as massive data and data set organization and data quality assessment.
  • As the core technology and foundation of Datacook, TFData library is developed and maintained jointly with the Google Tensorflow.js Team to build an easy-to-use dataset ecosystem.

6.  Pipcook

  • Pipcook is an open-source pure frontend machine learning framework.
  • With the help of Boa Constructor, Pipcook allows native import of popular Python packages and libraries and supports Python data types and structures, making it easier to share data and call APIs in different languages.
  • The Pipcook Cloud has access to mainstream cloud computing platforms to help the frontend implement CDML intelligently, forming a closed loop of data and algorithm engineering. It can help developers build industrial-grade available services and online and offline algorithm capabilities.

5

Full-Blown "Low-Code/No-Code Development" Platforms

Platforms

6

To What Extent Can "Low-Code/No-Code Development" Change the Software Development Mode Today?

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.

What Is the Future of "Low-Code/No-Code Development"?

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.

7

Reduce Development 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?

Lower Usage Costs

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.

Common Technical Challenges in "Low-Code/No-Code Development"

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.

8

1.  Identification

  • Requirement Identification: The NLP, Knowledge Graph, graph neural network, structured machine learning, and other AI technologies are leveraged to identify the requirements of users, products, design, operations, marketing, R&D, and engineering and relationships between concepts.
  • Design Draft Identification: The CV, GAN, object recognition, semantic segmentation, and other AI technologies are leveraged to identify the elements in a design draft, the relationships between the elements, the design language, the design system, and the design intent.
  • UI Identification: The regression and posterior analyses of user behaviors are leveraged to identify the degree, effect, frequency, and timing of the influence of the UI on user behaviors and the relationship between the UI variability and its impacts on user behaviors.
  • Identification of Computer Programs: The code, AST, other raw data analysis, and the NLP technology are leveraged to identify the language expression ability, language structure, logic in language, interaction between language and external systems through API in computer programs.
  • Logs and Data Identification: The availability, performance, usability, and other indicators of the program are identified through NLP, regression, and statistical analysis of logs and data. Locations of the logs and data that affect these indicators are also identified.

2.  Understanding

  • Horizontal Cross-Domain Understanding: Identified concepts are parsed to find the mapping relationships between concepts of different domains at the more abstract underlying layer to compare them and understand the concepts of other domains in a certain domain.
  • Vertical Cross-Level Understanding: Using the AI algorithm capabilities of machine learning and deep learning, the relationships between concepts at different levels are loosened to achieve a cross-level understanding of low-level concepts, thereby supplying and using more technology and business capabilities.
  • Understanding of General Knowledge: Based on the knowledge spectrum constructed by general knowledge, the open issues faced by AI are divided into different domains. The general knowledge in a specific domain forms the ground of understanding, which is not groundless speculations or conjectures.

3.  Expression

  • Personalization: The method uses big data and algorithms to match users with software features and the powerful AI generation capability to reduce the costs in R&D for highly differentiated requirements, thereby realizing personalized software services and pushing software-as-a-service to its limit.
  • Empathy: Using frontend intelligence to deploy algorithm models on the user side protects user privacy and enables timely learning of and response to user emotions, demands, and scenarios, so the software can resonate with the user. For example, since I have to show my health code in travel these days, my iPhone recommends the Alipay shortcut every time I enter the subway station. I don't have to look for the Alipay app for the health code. This makes me feel iOS is very intelligent and considerate.

Summary

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!

0 0 0
Share on

Alibaba F(x) Team

66 posts | 3 followers

You may also like

Comments