Why choose Yao

The beginning of the universe seemed to be taking a deep breath, then holding it. No one knows why, but whatever the reason, I'm glad the universe was born this way, because my existence is also due to it. All my desires and musings are the slow exhalation of our universe. My mind will be there until this long exhalation is over.

——Ted Jiang, "The Life Cycle of a Software Body"

The Beginning

At 00:40 on January 29, 2022, on Saturday, there are still two days before the 2022 Chinese New Year. It is raining lightly outside the window, and it is another cold winter. The last time it was this cold was 2016.

I don’t know how many times this is the first time I have started to write again. This paragraph is really difficult to write. It is written too much. It is suspected that Wang Po is selling melons and boasting. Go, it should be a face-to-face sharing. Although I am a member of the core development team of Yao, I will try to express the differences between Yao and other solutions in an objective way. can gain something.

Why choose Yao? This question is very pragmatic. Frankly speaking, we have always had a doubt about the positioning of Yao. You say it is a framework, and it can support low-code construction. You say it is an application, but you can Saying that writing JSON is not writing code, the only difference is that writing JSON is 10 times more efficient than writing code, yes, you heard that right, and I'm not bragging, it's ten times, maybe more.

At the beginning of Yao's formation, we delivered no less than 3 projects in a month. According to past experience, if these projects are developed using code, it is conservatively estimated that it will take more than half a year, not including the time for testing. Later, due to various needs, it supported functions such as data visualization, large data screen, and data cleaning. There are more than 36 page components in total, including five types of pages: tables, forms, charts, Kanban, and large screens. The project is getting faster and faster, and we start Realize that Yao, more than just frameworks, if I had to give a definition it would be:

Go language-driven low-code application engine.

There is no excessive decoration, just as we advocate the spirit - practicality is beauty.

We're not shy about talking about the term "low-code," even though it's used by some Pass (Platform-as-a-Service) vendors for some misnomer. We hope that through Yao, developers can re-examine software development, free from some heavy, repetitive, boring, and highly substitutable work, and do more unique and valuable things, even for fun , It is also better than a group of top students who graduated from the world's top universities to compete 996, who can roll better.

In 1913, Ford established an automobile assembly line to install engines for industrialization. Before that, human beings had been wandering at the gate of the industrialization era. After that, human beings officially entered the industrialization era. The assembly line also established the historical status of Ford for a century. .

I call it "human mechanization".

It is now 2022, the Internet era has come to an end, and the Internet era has brought about "human digitization". Human digitization solves the problem of people's individual needs, but people's needs are If there is no change in production, production will not be able to meet demand, or there will be a situation that is more common in today's world - overproduction, and in some consumption areas, there is an extreme lack of production capacity.

In order to solve this problem, smart scientists and think tank scholars have proposed a new solution - "Internet of Everything", not just "Industrial Internet", but to connect all the things we can control through data, I said It is "Dataification of the environment".

But at the same time, we will face a new problem, that is, it takes so many years to use a centralized server to handle the personalized needs of so many people in the world, and it cannot even be said that it is doing well. With so many devices in the social environment, it is basically impossible for us to rely on developers to go to 996 and engage in crowd tactics.

It's time to start a revolution in software development. Maybe, I mean maybe, Yao is not necessarily at the end, but we hope that through our efforts, the era of the Internet of Everything will come sooner.

Compared

Although Yao and most of the technology stacks on the market are not the same species in a strict sense, new things will inevitably face some doubts, so it is necessary to make some comparisons to inform developers what Yao can do and is not good at doing what.

Laravel

We take a lot of inspiration from Laravel, Yao and Laravel know a lot:

  • Elegant MVC architecture

  • Easy to understand ORM

As far as the traditional back-end framework is concerned, Laravel can indeed be said to be the king of the PHP field, but in the face of a fading PHP ecosystem, Laravel's extreme elegance cannot change the fate of PHP's sunset. Compared with Laravel, Yao also has unparalleled advantages if Yao is only used as a back-end framework:

  • Based on Golang, the performance hangs up against PHP related frameworks

  • Yao CLI, 0 dependency development project

  • Serverless and supports cloud native deployment

  • Flow-based programming mode, low entry threshold (refer to Unreal Engine Node Editor)

  • Supports the use of Javascript to process data

  • Plug-ins, plug-ins developed by third-party languages ​​that support the GRPC protocol

  • Massive processes, suitable for 80% of business scenarios

  • More features to explore...

Light Flow, Mendix, Power Platform

Low-code now has two mainstream directions:

  • Code abstraction, like various aPaas platforms, they are mainly responsible for integrating some code blocks to make it easier to use.

  • Abstract code refers to the ability to have complete logical expression, and to achieve low-code goals through a series of high-level code tool chains.

What we do is "abstract code". It is not difficult to do "code abstraction", and more energy may be spent on building platforms, marketing promotions, and sales. But doing "abstract code" is very challenging, because strictly speaking, "abstract code" has left the category of "meta-programming" and entered the field of programming languages, which requires us to have a strong The ability to realize and self-discipline, think about some problems from the level of programming language, not just limited to the level of tools.

This is a different road. We hope that we will take this step. It will not only let us be seen by everyone, but more importantly, we will raise a banner. We must create technology-driven rather than platform-driven products. Have core competitiveness.

Compared with the above solutions, Yao still has many advantages:

  • Open source, accept code security audit by everyone

  • Truly decentralized, exists as an engine, essentially a command line tool

  • Easy to deploy, packaged products can be run directly on the target platform

In addition, Yao is suitable for developers with certain programming experience to learn and use. For novice users, you need to first have basic knowledge of database model, interface, and data flow for development. According to our team's internal experience, a front-end developer with about 1 year of development experience can use Yao skillfully and build commercial projects in only 1 week, and can complete about 6 business modules in one day. This is compared to traditional software. Development may be more than ten times worse in efficiency. Oh, and because it is a low-code method, there is no front-end and back-end joint debugging, so what developers see is what they get.

Yao is also not good at things. At present, the low-code integration of front-end and back-end is limited to background applications. For some customized UIs, you can only use Yao's back-end capabilities. This is Yao's limitation, and we can't hope It is unrealistic to say that Yao can satisfy all scenarios. We should do our best and strive for perfection, so we have always had a clear goal - the era of interconnecting foreign objects will come sooner.

Future

We will launch a visual operation service in the coming days, which will visualize all JSON operations, which can further reduce the development threshold and allow novice users to easily develop enterprise-level background applications while looking at the development documents. We're also considering refactoring some of the core modules so that developers working with JSON have the same convenience as developers working with visual interfaces.

Grateful

In addition, you may have noticed that the style of our official website is somewhat similar to Nextjs, yes, we did get a lot of inspiration from Nextjs, about design, about open source, respect for Vercel! At the same time, thanks to the following open source projects (in no particular order), without which Yao would not exist:

Why choose Yao

The beginning of the universe seemed to be taking a deep breath, then holding it. No one knows why, but whatever the reason, I'm glad the universe was born this way, because my existence is also due to it. All my desires and musings are the slow exhalation of our universe. My mind will be there until this long exhalation is over.

——Ted Jiang, "The Life Cycle of a Software Body"

The Beginning

At 00:40 on January 29, 2022, on Saturday, there are still two days before the 2022 Chinese New Year. It is raining lightly outside the window, and it is another cold winter. The last time it was this cold was 2016.

I don’t know how many times this is the first time I have started to write again. This paragraph is really difficult to write. It is written too much. It is suspected that Wang Po is selling melons and boasting. Go, it should be a face-to-face sharing. Although I am a member of the core development team of Yao, I will try to express the differences between Yao and other solutions in an objective way. can gain something.

Why choose Yao? This question is very pragmatic. Frankly speaking, we have always had a doubt about the positioning of Yao. You say it is a framework, and it can support low-code construction. You say it is an application, but you can Saying that writing JSON is not writing code, the only difference is that writing JSON is 10 times more efficient than writing code, yes, you heard that right, and I'm not bragging, it's ten times, maybe more.

At the beginning of Yao's formation, we delivered no less than 3 projects in a month. According to past experience, if these projects are developed using code, it is conservatively estimated that it will take more than half a year, not including the time for testing. Later, due to various needs, it supported functions such as data visualization, large data screen, and data cleaning. There are more than 36 page components in total, including five types of pages: tables, forms, charts, Kanban, and large screens. The project is getting faster and faster, and we start Realize that Yao, more than just frameworks, if I had to give a definition it would be:

Go language-driven low-code application engine.

There is no excessive decoration, just as we advocate the spirit - practicality is beauty.

We're not shy about talking about the term "low-code," even though it's used by some Pass (Platform-as-a-Service) vendors for some misnomer. We hope that through Yao, developers can re-examine software development, free from some heavy, repetitive, boring, and highly substitutable work, and do more unique and valuable things, even for fun , It is also better than a group of top students who graduated from the world's top universities to compete 996, who can roll better.

In 1913, Ford established an automobile assembly line to install engines for industrialization. Before that, human beings had been wandering at the gate of the industrialization era. After that, human beings officially entered the industrialization era. The assembly line also established the historical status of Ford for a century. .

I call it "human mechanization".

It is now 2022, the Internet era has come to an end, and the Internet era has brought about "human digitization". Human digitization solves the problem of people's individual needs, but people's needs are If there is no change in production, production will not be able to meet demand, or there will be a situation that is more common in today's world - overproduction, and in some consumption areas, there is an extreme lack of production capacity.

In order to solve this problem, smart scientists and think tank scholars have proposed a new solution - "Internet of Everything", not just "Industrial Internet", but to connect all the things we can control through data, I said It is "Dataification of the environment".

But at the same time, we will face a new problem, that is, it takes so many years to use a centralized server to handle the personalized needs of so many people in the world, and it cannot even be said that it is doing well. With so many devices in the social environment, it is basically impossible for us to rely on developers to go to 996 and engage in crowd tactics.

It's time to start a revolution in software development. Maybe, I mean maybe, Yao is not necessarily at the end, but we hope that through our efforts, the era of the Internet of Everything will come sooner.

Compared

Although Yao and most of the technology stacks on the market are not the same species in a strict sense, new things will inevitably face some doubts, so it is necessary to make some comparisons to inform developers what Yao can do and is not good at doing what.

Laravel

We take a lot of inspiration from Laravel, Yao and Laravel know a lot:

  • Elegant MVC architecture

  • Easy to understand ORM

As far as the traditional back-end framework is concerned, Laravel can indeed be said to be the king of the PHP field, but in the face of a fading PHP ecosystem, Laravel's extreme elegance cannot change the fate of PHP's sunset. Compared with Laravel, Yao also has unparalleled advantages if Yao is only used as a back-end framework:

  • Based on Golang, the performance hangs up against PHP related frameworks

  • Yao CLI, 0 dependency development project

  • Serverless and supports cloud native deployment

  • Flow-based programming mode, low entry threshold (refer to Unreal Engine Node Editor)

  • Supports the use of Javascript to process data

  • Plug-ins, plug-ins developed by third-party languages ​​that support the GRPC protocol

  • Massive processes, suitable for 80% of business scenarios

  • More features to explore...

Light Flow, Mendix, Power Platform

Low-code now has two mainstream directions:

  • Code abstraction, like various aPaas platforms, they are mainly responsible for integrating some code blocks to make it easier to use.

  • Abstract code refers to the ability to have complete logical expression, and to achieve low-code goals through a series of high-level code tool chains.

What we do is "abstract code". It is not difficult to do "code abstraction", and more energy may be spent on building platforms, marketing promotions, and sales. But doing "abstract code" is very challenging, because strictly speaking, "abstract code" has left the category of "meta-programming" and entered the field of programming languages, which requires us to have a strong The ability to realize and self-discipline, think about some problems from the level of programming language, not just limited to the level of tools.

This is a different road. We hope that we will take this step. It will not only let us be seen by everyone, but more importantly, we will raise a banner. We must create technology-driven rather than platform-driven products. Have core competitiveness.

Compared with the above solutions, Yao still has many advantages:

  • Open source, accept code security audit by everyone

  • Truly decentralized, exists as an engine, essentially a command line tool

  • Easy to deploy, packaged products can be run directly on the target platform

In addition, Yao is suitable for developers with certain programming experience to learn and use. For novice users, you need to first have basic knowledge of database model, interface, and data flow for development. According to our team's internal experience, a front-end developer with about 1 year of development experience can use Yao skillfully and build commercial projects in only 1 week, and can complete about 6 business modules in one day. This is compared to traditional software. Development may be more than ten times worse in efficiency. Oh, and because it is a low-code method, there is no front-end and back-end joint debugging, so what developers see is what they get.

Yao is also not good at things. At present, the low-code integration of front-end and back-end is limited to background applications. For some customized UIs, you can only use Yao's back-end capabilities. This is Yao's limitation, and we can't hope It is unrealistic to say that Yao can satisfy all scenarios. We should do our best and strive for perfection, so we have always had a clear goal - the era of interconnecting foreign objects will come sooner.

Future

We will launch a visual operation service in the coming days, which will visualize all JSON operations, which can further reduce the development threshold and allow novice users to easily develop enterprise-level background applications while looking at the development documents. We're also considering refactoring some of the core modules so that developers working with JSON have the same convenience as developers working with visual interfaces.

Grateful

In addition, you may have noticed that the style of our official website is somewhat similar to Nextjs, yes, we did get a lot of inspiration from Nextjs, about design, about open source, respect for Vercel! At the same time, thanks to the following open source projects (in no particular order), without which Yao would not exist: