According to the rules this article should be called “digital technology noun explanation – low code”, but before the noun explanation is a day or two grass, this article dragged for more than half a month, 788 wrote more than ten thousand words, so do a title party.

The concept of low code has become a hot and controversial topic this year. After some human, “everyone is programmer”, and a lot of people, if you have ERP veterans at the low code, don’t to speed faster than the “middle” of stinky street, at a so ThoughtWorks China CTO at “low” cancer “code”, there are many think low code is old wine in new bottles, have already, Or it could be nothing more than advanced outsourcing. Unfortunately, no matter support or disdain, all kinds of experts write articles are “grass”, so far there is no one view is correct and detailed. A few of his three views are correct, but the style is too concise. You can understand what you may know, but you still don’t understand what you don’t.

This article aims to provide a comprehensive overview of the current turbulent field, and to clarify seven major issues:

  • What is the relationship between low code and no code (also known as zero code)?
  • How do you tell if a low code platform is professional?
  • Is there a professional low code platform in China?
  • Is Low Code Old Wine in New Bottle?
  • Is low code really bad for professional enterprise applications?
  • What applications is low code bad for?
  • Low code is not a silver bullet.

In view of this field is too messy now, I hope we can forward more, so that more people correctly understand the low code.

Low code and no code are two different things

The first step is to make a distinction between low code and no code, because the two are very different, but now the industry is often confused, which leads to many, many problems, such as two sides arguing but not referring to the same thing, vendors talking to each other, industry report results can not be read.

Low Code Application Development Platform (LCAP) is a widely accepted concept in the industry, and leading analysts such as Forrester and Gartner have published reports on Low Code Development Platform (LCAP) for years.

As shown in the chart below, you can see that the two reports are very close to each other, especially the top six are identical. This shows that the low code application development platform has been a relatively mature market.

Analytics, by contrast, have a more nuanced attitude to no code. While the concept of a no-code development platform has also been mentioned by some analysts, such as G2 (not to mention the current chaos of domestic analysts), Forrester and Gartner have never published a no-code development platform report.

Not that Forrester and Gartner are saying that no code is a bogus concept, but the consensus is that no code is a marketing term used to highlight the fact that a tool does not require a programming foundation, and to allay the fears of business users.

‘No-code’ is a marketing term, implying The tool is for non-professional developers.


– By Gartner,

(https://appian.com/resources/…

Businessspeople hankering to deliver their own apps love the “no-code” message. Thus, “No-code” has become a marker for products aimed at empowering business users. However, Customers report that even powerful low-code platforms in some cases can’t produce apps without any coding. So what does it do This mean for the “no-code” promise?


– By Forrester

(https://go.forrester.com/blog…

The word “no code” is usually used to describe the development tools in some niche fields. The most common one is the application building platform (commonly called App Builder in foreign countries), such as Appy Pie in foreign countries, Yigang in China, Jiandaoyun, etc. It can also be used to describe an online form tool such as Airtable/AppSheet/TreeLab or a workflow tool such as Lightstream. As you can see in the figure below, there are also twelve “schools” of no-code and low-code, which show that no-code is a pretty broad concept.

But a code-free “universal” development platform doesn’t exist yet, and I don’t think it will. Because software development requires writing logic, it will also require writing code, unless one day artificial intelligence can write code automatically.

I think the relationship between low code and no code is a bit like relational databases and NoSQL. Relational databases are specific to a particular kind of database, and even though product implementations from multiple vendors may vary, they at least provide similar functionality and are highly SQL compliant.

Although today’s standard level is not as high as the database, both Gartner and Forrester have started to provide relatively clear screening criteria, such as to support common scenarios (such as UI, logic and data three layers), to meet professional development needs, etc. Standardization will surely increase as the industry develops.

NoSQL is anything that is not SQL, whether you are a KV, a wide-column, a document, or a graph. The term NoSQL has been around for a few years, but it’s not being used much now, because as the market becomes clear, people are not focusing on the broad NoSQL but on specific types as needed.

Personally, I think the word “no code” will fade out in the future. Although twelve schools are very busy now, there will not be many schools with real influence in a few years. At this time, people will not pay attention to no code but directly look for specific products.

The rest of this article will focus on low code for general-purpose application development. Low code is not a phrase that appeals to business users. Business people are scared off by the word “code”. Low code doesn’t matter. If business people can’t write 100 lines of code, they can’t write 10.

It has been a common understanding among header-analysis organizations that low-code platforms are primarily for professional development, and while Forrester has taken a misstep in the past by releasing a low-code development platform report for business people, it has stopped publishing the low-code development platform report for professional developers for the last two years.

User data also show this. In 21CTO’s article “Low code development is not low, users still need to link up with IT departments”, IT is reported that “only 6% of low code development is done by business people”, while Outsystems’ data shows that 69% of users are professional developers. Appropriate technology CEO Yi Bo has also said that low code facing “understand the technology of disdain, understand the business of learning will not” embarrassment.

So no code is completely different from low code: no code for business people, low code for developers; No code generally refers to the development of a variety of subdivided field application tools, low code refers to a general development tools; No code is not recognized by international header analysis organizations, and low code is widely recognized.

Now many domestic industry experts and analysis institutions often confuse the two, which has caused great confusion to the value measurement of technology, Party A’s technical planning and selection. I urgently hope that we can distinguish low code from no code, and focus on the research of low code platform with common capabilities.

Two, professional low code long what kind

The fish and dragons are mixed up on the market now so-called “low code” the product is very much, how can ability distinguish quickly “professional”? Very simple, find a most professional product to label.

Which product is the most professional? Why did low code take two or three years to catch on? Not because of SaaS vendors like Salesforce, not because of BPMS vendors like Appian, but because of Outsystems.

Outsystems, which has been around since 2001, exploded in 2018 when D raised $360 million. Both Forrester and Gartner have put Outsystems in the Leader Quadrant, and Aju says Outsystems is one of the four low-code platforms he most admires. So Outsystems is the epitomizing of a professional low-code platform.

Comparing Outsystems with many of the so-called low-code platforms in China, I found six criteria that differentiated the most: model driven, visual development, expression languages, software engineering, open integration, and scripting languages.

2.1 Model Driven

“Model-driven” is probably the most obvious distinguishing mark, because there happens to be a concept called “form-driven” that is also very popular. A lot of people get confused about these two concepts, but in fact the two types of products are quite distinct.

  • Look at the user’s manual first, so you can see the difference without installing a trial. The manual for using model-driven platforms such as Outsystems or Mendix has a large chapter on data modeling and processing, including how to define entities, relationships between entities, primary keys, uniqueness, indexing, how to access data, filtering, grouping, statistics, etc., and provides SQL or similar extensions. For form-driven products, the first chapter of the manual explains how to define the various forms, which are interface-related controls such as radio and multi-select drop-down boxes, text date numbers, and so on.
  • Secondly, you can look at the interface. The following images show the interface between a model-driven OutSystems and a form-driven product.

(Model-driven, Outsystems)

(Form-driven)

2.2 Visual Development

Visual development is not about dragging and dropping an interface (which can only be called visual design), but about having a complete visual programming language system that can write business processing logic. If you look at the documentation for products like Outsystems, you’ll find that many programming languages have basic constructs such as sequence/branch/loop/continue/break, input/output parameters, local/global variables, structs and lists, exceptions, and so on. Although these things are done by dragging and dropping, they don’t seem to be as intimidating as the dense lines of code, but they are enough to scare off business people. Here are a few images from Outsystems to get a feel for it.

(Left: logic development toolbox, note If, Switch, For Each process control; Right: a simpler logic)

How to throw and handle exceptions

2.3 Expression Language

Expression languages are similar to the formulas in Excel, which allow you to do some more complex calculations. Below is the expression editor for Outsystems. You can see the various operators, as well as many built-in functions, such as math functions, string handling functions, and more.

The Outsystems example seems simple, but expression languages can be complex. Microsoft is a language expert. Here’s an example of Microsoft Power FX. This expression is an expression that extracts the last word of a sentence, which is pretty complicated (it took me quite a while to figure it out).

Expression languages also have more approachable designs, such as canoes designed with building blocks similar to Scratch. The two designs are functionally equivalent, with blocks being easier to use and designs like Power FX making it easier to write complex expressions.

2.4 Software Engineering

Professional low code platforms need to provide software engineering support such as testing, debug, version control, etc. Software development is buggy (low-code platforms mostly eliminate syntactic bugs, but not semantic ones), and requirements are always changing. Testing, Debug, and versioning support are also essential. The reason why Outsystems does the best job, I think, is because of its excellent debug support. Below is the Debug interface for Outsystems, which looks like a professional IDE.

2.5 Open Integration

In theory, it is enough to develop a standalone application that is not too complex, but typical enterprise software is interdependent and integrated, so the platform also needs to have the ability to call external APIs and open APIs to others. If the platform does not have these two functions, the developed applications cannot be connected and integrated with each other, which is all technical debt. When we look at foreign articles on low code, we often see a word called Shadow IT, which refers to this problem. It would be a disaster for everyone to create apps that don’t integrate.

2.6 Scripting Language

Scripting language is to use JavaScripts, Python, JAVA and other extensions, these are actually serious professional programming languages, but the low code platform will encapsulate the complexity of the project, so that developers do not need to configure the deployment environment, you can write code, write a key to release immediately can run.

In fact, the above criteria and Gartner are very consistent. Gartner says in the Magic Quadrant report:

An LCAP is characterized by its use of model-driven or visual development paradigms supported by expression languages And possibly scripting…

Model driven, visual development, expression languages, scripting languages are all mentioned.

In summary, to judge whether it is “professional” low code, we can focus on six aspects, such as model driven, visual development, expression language, software engineering, open integration and scripting language.

3. Is there a professional low code platform in China

There seems to have been a lot of low code platforms in China. Dao Yiyun made a series of assessments before, T research, Haibi and other analysis reports, but as long as we compare the above standards, it is not difficult to see that although the low code public opinion is very noisy, so far it should be said that there are few professional low code platforms in China.

For example, Alibaba has been trumpeting this year, claiming to be a “low code” application building platform, but in fact it is a “form-driven” “no code” platform. In fact, Ali bordered the line by saying “building” the platform rather than “developing” it, and you wouldn’t call him overhyped. But there’s a big gap between “build” and “develop.” “build” means to build an application based on mature modules and then stop when the existing modules run out of space.

I’ve looked at most of the products mentioned in a lot of analysis reports in the country, but after a look around, I think ClickPaaS is probably up to scratch (I’m not sure, because ClickPaaS doesn’t open the user manual, and I don’t do in-depth research on it). After all, it has model-driven and open integration, and the other barriers are not up to scratch.

Such a chaotic state let our CIO can do, this again shows that if there is a lack of effective standards screening really professional low code platform, is bound to low code and no code in a pot of confluence, the results are confused.

Four, low code is really a new bottle of old wine

There is also a popular view about low code is the old wine in the new bottle, said Delphi, PowerBuiler (later called PB) more than 20 years ago was low code, but has long been eliminated by The Times, today’s low code is no play. The most likely people to say these words are seniors.

It takes a bit of Digg history to clarify these issues, but Delphi and PB were gods back then because they were so much easier to use than other technologies of the era (such as the difficult MFC) that they did a lot of enterprise informationization. Flipping through a “Delphi development typical module complete”, which is full of sheet material, inventory, document management, wholesale and retail, real estate information management and other cases.

These two were later eliminated by The Times, mainly because The Times changed and they didn’t keep up. With the advent of the Internet era, software architecture quickly changed from desktop C/S to Web B/S, and then mobile APP. Web apps and apps are much more demanding on the front and back end than desktop apps, because you’re building websites and apps to attract users to visit them, unlike desktop enterprise apps that you need to use for work even if it’s not easy to use. Over the past two decades of the Internet, the technology stack has grown more and more complex, and new low-code technologies have only been brewing slowly.

But after more than a decade of efforts from vendors like Outsystems, today’s low-code technologies are far better than those of Delphi and PB. Today’s low code is “low” much, then DELPH, PB, if according to today’s standards, even entry qualifications are not.

We take the most popular Delphi as an example, Delphi although known as “visual programming language”, but that is to achieve the visual development of the interface and database ORM, all logic is to use code to write, including how to show the data in the table are also to write code. Of the six standards we talked about, the top two are model-driven, visual development, none of that.

PB is a bit better than Delphi. Its core DataWindow can be added or deleted without code, which is the threshold of model driven, but it does not support entity relationships, and the model driven capability is incomplete. At the same time, PowerBuilder also has no visual logic development, and by today’s standards can only hover at the threshold.

Posting two old pictures to let you feel the fried chicken – Delphi.

(Delphi main interface, to achieve the visual design of the user interface)

(Delphi logic interface, have to write code)

Don’t three days when sit up and take notice, let alone more than 10 years. Today’s low code is not a new bottle of old wine, but a new bottle of new wine, new inside and out. New bottles because the concept of low code is new. New wine because today’s specialized low code products such as Outsystems have far more power than Delphi and PB did in the PC era two decades ago.

I want to say that low code is a new bottle of old wine, ah, when they see Tesla, they will say new bottle of old wine, isn’t it a car, when they see iPhone, they will say new bottle of old wine, isn’t it a cell phone, I will make phone calls, send text messages. These people, it’s probably not because of anything else but because they’re too old.

Can low code develop complex enterprise applications

Many people in the industry now believe that low code can’t handle complex enterprise applications.

For example, Guo Zong, an ERP veteran, in his article “Low code, not to be faster than the” middle platform “, thinks that low code is only suitable for “the application of simple workflow and form flow” or “the development of the extension of the functions of large application software”, but “not suitable for the development of the core business of complex logic”. The general manager, however, did not say why.

“Technical Leadership” in “How to Bring Down a Company with Low Code?” One article argues that low code is only suitable for “innovative exploration”, “short life cycle” and other applications. Again, no evidence is given.

There are many similar comments, but there is a common character, that is, only say low code is not good, do not explain, and a lot of time also put the words of that firmly. A lot of people take themselves seriously.

Enterprise applications sound fancy, but they’re decades old. How complex can they be? The interface need not be very fashionable, do not carry millions of concurrent, nor intelligent recommendation of what advanced algorithms, in fact, from the perspective of software development enterprise applications are relatively simple.

Complex enterprise applications are mainly the domain model and business process is complicated, but once upon a time, we can see that low code platform in the field of modeling and logical ability is more comprehensive, again through the extension mechanism of script language, open integration, convenient for low code, can be realized and the professional code development cooperation. So developing complex applications with low code is inherently fine.

I am not alone in my opinion. Ren Xianghui, CEO of Mingdao Cloud, wrote an article titled “APAAS can’t handle complex applications, can it?” The complexity of enterprise application is decomposed into six dimensions, such as data, authority, process, algorithm, integration and report form, and then the solution is given one by one. This is a realistic attitude. I think Ren Zong’s analysis has been more sufficient, I will not expand to say. I believe that anyone with an unbiased, in-depth analysis will find that there is nothing complex about enterprise applications that low code cannot handle.

And with lower code this type of application platform development, there are many unique advantages, such as the load on the developer (we experience is a month can use very slipped), development of high efficiency and facilitate communication between business people and development (because logic is mostly visual), is not easy to form an island (because of low professional code platform default will be generated according to the model API). Outsystems makes a point of saying on its website:

OutSystems is well-equipped to build ERP and similar large, complex systems with the desired performance and scalability.

Outsystems has some examples of this, supply chain, CRM, ERP. Outsystems was founded in 2001. What were you doing instead of developing enterprise applications?

But a lot of people would say, of course Outsystems as a vendor claims that, but there’s not a lot of complex enterprise applications in low code these days. Yes, but I think it’s just a matter of time.

First, it doesn’t take long for low-code technologies to reach maturity, even Outsystems. Outsystems has been established for 20 years, but the low code looks simple on the surface. In fact, it is a rather complex technical system, which involves the design of core programming language, such as DSL, type system, generics, etc., as well as how to diff, debug, and undo, which are not easy. Low-code platforms also have to keep up with a technology environment that has changed dramatically over the last 20 years. Twenty years ago, it was C/S,.NET, then B/S, Java, then APP, the operating system changed from Windows to Linux, and now we are facing the transition from SOA to microservices.

The director of the OutSystems engineer Tiago Simoes has introduced the development of 20 years OutSystems (https://medium.com/outsystems)… You can see that Outsystems has been adding functionality until 2014, when version 9.0 supported data aggregation, while trying to keep up with the technology trend. It was not until the 10.0 version of 2016 that Client-side Logic, Local Storage, asynchrony, Reactive and other functions were introduced in one go that mobile APP had good support. This thing is not to do do not know, a do surprised, we are doing canoe low code to know that this thing is difficult.

More important may be non-technical factors. Most enterprises have not so high requirements for CRM and ERP customization. Compared with the low code development from scratch, it is a more appropriate choice to implement the suite of software such as Saleforce and SAP and then do some secondary development. This also explains why SaaS giants like SaleForce and ServiceNow all have their own low-code platforms, while Siemens bought Mendix.

In addition, the implementation of enterprise software such as ERP relies heavily on consulting experience, which cannot be solved by low code, while experienced consultants in the industry are obviously more familiar with products such as SAP, and have no intention to change. Professional programmers on the low code conflict is also very big, very not easy to practice a martial arts, with the low code seems to be useless? The more the industry touts how much faster it is to develop in low code, the more resistant development teams are likely to be.

In short, the industry is popular to say that low code can not do CRM, ERP and other complex enterprise applications, this view is said by many people, but there is no basis. From a technical standpoint, low code is best suited precisely for enterprise applications. At present, there are not many cases of using low code to make complex enterprise-class applications, because the low code technology is not mature, the customization requirements are not strong enough (software suite can meet), or the industry is not willing to do it, it does not mean that it can not be done.

What types of applications are not suitable for low code development

Not only do many experts mistakenly assume that low code won’t work for complex enterprise applications, they are also wrong about what types of applications low code is suitable for.

What low code is really not good at is applications that have specific requirements, such as:

  • High requirements on algorithms and complex data structures: I don’t think anyone would want to use a low code platform to do Leetcode problems, play ACM games. There is a subtle distinction between the complexity of the business logic and the complexity of the algorithmic logic. The complexity of the business logic is not a problem for low code, the complexity of the algorithmic logic is a problem. Then what is the business logic complex, that is, the business staff is generally said clearly, or can understand; What is the algorithm logic complex, that is, business personnel can only give a goal, specific how to achieve is no matter, even if the explanation is also a face of stuffy force do not understand.
  • Especially demanding on the interface: such as games or social entertainment apps like Douyin and Cloud Music. The current mainstream low-code platforms are not good at making cool interfaces (there are certain types of low-code platforms such as App Onboard that are game development focused and beyond the scope of this article).
  • Head Internet-level application: There are a large number of users of the head Internet application. In order to optimize the performance, there are many tricks used. The front-end and back-end technical architecture is very complex. Note that this is not to say that all Internet applications are inappropriate, just those with a large number of users.
  • Analytical and intelligent applications: Analytical applications should naturally use more professional BI tools, and intelligent applications should also use more professional machine learning platforms and other tools.
  • System software, scientific calculation and other highly professional applications. This is not much to say, it is estimated that no one wants to use low code to do, but more to say, although the kernel of these systems is certainly not suitable for low code development, but the interface is very suitable, our low code product is based on the cloud computing platform interface development.

By now you can see that many of the industry’s popular ideas about low code for this and that are also wrong, such as:

  • Low code for “simple workflow and form-flow applications” : In fact, professional low code is not particularly good for this type of application. Gartner, for example, says that Outsystems support is not very good. In fact, the best candidates for this type of application are “form-driven” products, which are not professional low-code platforms. Professional low code platform to engage in these is not completely not good, but belongs to the cannon to fight mosquitoes, cost-effective.
  • Low code for “short life apps” : In fact, if you were to use “the most professional” low code platform like Outsystems for a “short life app” marketing page, you would be tempted to cry. Why is that? Because the marketing page of the interface requirements are very high ah.
  • Saying that low code makes for “innovative apps” : The article that divides apps into infrastructure (ERP), differentiation (CRM), and innovative apps based on Gartner’s approach is also wrong to say that the first two types of apps are the stuff of traditional IT, while low code makes for innovative apps. Internet APP is a typical innovative application, the above has said that this low code can not be done.

Seven, low code is not a silver bullet, do not over-mystify

We said above that low code is suitable for the development of typical enterprise applications, the advantages are obvious, such as developers on the fast hand, high development efficiency, improve communication and integration, but do not think that low code is a silver bullet, used to solve all the problems. There are three main reasons.

  • Development tools are only part of the solution to software development.

As a development tool, low code can speed up software delivery when the needs are clear, or speed up iterative software updates when the general direction is clear but the specific needs are unclear. However, enterprise application is closely related to enterprise management mode, business direction, business process, organizational structure, and people. If there are problems in these aspects, software does not know how to do, which is not the solution of development tools, so please consult. Low code is like special forces, individual combat ability is strong, but if the general is not good, strategic and tactical collapse, also can not win the war.

Lack of authoritative data, don’t expect too much.

There is a lot of hype about low code productivity, most of which is about a 10-fold increase, and that’s bullshit. Some vendors and analysts publish data that looks particularly good, but can’t be trusted because of the aforementioned distinction between no code and low code.

For example, Alibaba’s data on “matchable” says that the average app development cost increased from 17.5 person days to 3.5 person days, a 500% improvement. But as mentioned earlier, “matchable” is code-free. No code tools because they are highly optimized for a particular type of application, it is normal to have obvious benefits, but they are not universal.

Professional low-code vendors like Outsystems and Mendix are afraid to advertise multiples, so the better a vendor’s advertising, the less likely it is to be a professional low-code platform. From our experience, with low code to do some small systems really fast, but on the scale can also be several times, I think it is not possible. Based on our initial experience, we feel that an increase of one to two times is a reasonable expectation.

  • The industry’s typical project structure limits the value of low code.

Low code platform because of visualization, high efficiency, the most suitable for business and development close communication and cooperation, rapid iteration. However, the current typical project system between Party A and Party B requires both parties to sign detailed contracts and SOW in advance, which puts agile development back to waterfall mode and makes it difficult to reflect the value of rapid iteration with low code. The project system has been in existence for too long, not for a while will change.

summary

A final summary:

  • No code and low code are not a hierarchical concept. Low code is a general application development platform for professional development represented by products such as Outsystems and Mendix. No code is a marketing term used to describe a wide variety of business-oriented tools, such as application building, online forms, workflows, and so on. There is no universal application development platform without code. No code is such a broad concept that it’s likely to fade in the future.
  • To judge whether a low-code platform is professional, we can focus on six aspects: model driven, visual development, expression language, software engineering, open integration, and scripting language. Contrasting these standards, it is not difficult to see so far should say that there are few professional low code platform, although public opinion is very noisy.
  • Most of the industry’s ideas about low-code adoption scenarios are wrong. For example, many people in the industry say that low code can not make complex enterprise applications, but there is no basis. From the technical principle, low code is actually the most suitable for enterprise applications, even CRM, ERP such complex applications; The industry is also wrong to think that low code is suitable for “simple workflow and form flow applications”, “short life cycle applications”, “innovative applications”, etc. Many of these applications are just not suitable for low code.
  • Low code is not suitable for the application of algorithms, interface, performance, analysis and intelligence and other professional requirements of high applications.
  • Low code has obvious value to enterprise application development, but it’s not a silver bullet, so don’t over-mystify it.

For Party A, I think the CIO should start from the pilot application, generally speaking, the resistance to ask their team to use low code will be great, but you can ask Party B to use low code, reduce the price.

For Party B, I think it is difficult to sell the platform in the short term. It is better to discuss with Party A about the human resources outsourcing mode to avoid the rigidity of project system. Industry says low code is “advanced outsource” pour also did not say wrong, although I feel since what use is low code should call “low outsource” more appropriate 😄.

Finally, I would like to reiterate my call for analysts to distinguish between low code and no code, focus on analyzing the low code development platform for common application development, and promote the recognition and standardization of the industry, so as to promote the development of the industry.

No code dies, low code lives!

Source: cold technology hot thinking


Author: The wind is light


Disclaimer: The article was forwarded on IDCF public account (devopshub) with the authorization of the author. Quality content to share with the technical partners of the Sifou platform, if the original author has other considerations, please contact Xiaobian to delete, thanks.

Every Thursday in July at 8 PM, “Dong Ge has words” R & D efficiency tools special, public account message “R & D efficiency” can be obtained address

  • “Azure DevOps Toolchain” by Zhou Wenyang (July 8)
  • July 15, to be determined
  • July 22, Yang Yang “Infrastructure is code automation test exploration”
  • July 29, Xianbin Hu, “Automated Test, How to” Attack and Defend “?