key: cord-0887639-lhne4qf1 authors: Woo, Marcus title: The rise of no/low code software developmentā€”No experience needed? date: 2020-07-15 journal: Engineering (Beijing) DOI: 10.1016/j.eng.2020.07.007 sha: 06b6ddc345044236fa0da0cb988fdc553579a9ab doc_id: 887639 cord_uid: lhne4qf1 nan Senior Technology Writer dave.egerter@gmail.com New York City officials wanted to track how the COVID-19 coronavirus had been raging through the city and efficiently provide services to those in need. To accomplish this, they built an online portal to collect information on individuals with COVID-19 and others in contact with those sickened by the virus. Speed was paramount, and the COVID-19 Engagement Portal was up and running in three days-all without writing any code [1] . This feat-shortly later replicated for Washington, DC's COVID-19 Support Hub [2] -was enabled by a "no-code" software development platform, created by Unqork, Inc., a New York City-based startup. The use of such no-code platforms-and their low-code cousins, which require some minimal coding knowledge-is on the rise, a trend that represents a step toward a decades-long goal in computer science to automate coding. "Imagine a world where you do not have to write code," said Koushik Sen, a professor of computer science at the University of California, Berkeley. "Just say things and the computer does it for you-an Amazon Alexa for programming." In addition to numerous startups, tech giants like Oracle, Salesforce, Microsoft, and Alibaba have their own no-and low-code software development platforms. In January, Google acquired a no-code platform called AppSheet (Seattle, WA, USA) [3] . According to Gartner, Inc., a global research firm headquartered in Stamford, CT, USA, low-code platforms will be used in 65% of application development work by 2024 [4] . This growth reflects the increasing digitization of businesses and growing demand for customized applications, said Tao Xie, chair professor of computer science and technology at Peking University in Beijing. Without enough software engineers to meet the demand, companies are now turning to these platforms, which are becoming increasingly powerful. In most of these platforms, users can create web and mobile apps by dragging and dropping elements ( Fig. 1) , without getting bogged down in code. But this concept of higher-level programming is not all that new. No-and lowcode software development is just an extension of how programming has always evolved toward a more intuitive form, Sen said. For example, in the 1950s, when programming in assembly language became too tedious, computer scientists created higher-level languages like Fortran that were easier to write and understand. Even a spreadsheet is a kind of no-or low-code platform, enabling a user to analyze and manipulate data without writing hardly any code. Most of today's commercial drag-and-drop platforms create applications from pre-defined components. Some platforms, however, are starting to incorporate artificial intelligence (AI) to better anticipate what the user wants. For example, the low-code platform Mendix (Boston, MA, USA) features an assistant powered by machine learning that identifies patterns in historical data to provide recommendations to users as they create an app [5] . Incorporating such datadriven intelligence represents the next step for these platforms, Xie said. "Making code generation and synthesis sufficiently intelligent will be a major milestone." Ultimately, AI might be able to automatically produce code, an ambition referred to as "program synthesis." "It has always been a dream of computer scientists to be able to write programs that write themselves," said Alvin Cheung, an assistant professor of computer science at the University of California, Berkeley. By providing an example of an input and output, demonstrating the task you want done, or simply describing your desired program in natural language, you can tell the computer what you want, and it will generate the code. But interpreting what a human wants and being able to scale and produce large quantities of code remain significant challenges for program synthesis, Cheung said. Even the most state-of-the-art tools are not close. But progress is being made, thanks to advances in deep learning and more efficient methods to automate coding, Cheung said. In principle, a computer can generate a program by going through all the possible code and then identifying the combination that would accomplish the desired task. That is not practical, however, so computer scientists have been developing smarter ways to narrow down the search. A prime example of a tool that uses this kind of approach is Microsoft Excel's Flash Fill, Cheung said. As you enter data, it recognizes the pattern and automatically fills the rest of the cells accordingly. Other commercially available tools, such as IntelliJ IDEA (JetBrains, Prague, Czech Republic) and TabNine (Codota, Tel-Aviv, Israel), use machine learning and deep learning, respectively, to identify patterns in people's coding and make recommendations as they write. "It is like autocomplete on steroids," Sen said. Unlike the drag-and-drop platforms, these tools are for coders, and while they do not synthesize code, they aim to help programmers write code faster and with fewer errors. All of these current technologies come with limitations and challenges. Without professional developers, apps made with drag-and-drop platforms may be difficult to update to satisfy new technical requirements, Xie said. The runtime performance of the app may not be as efficient, and it may be harder to integrate it with an organization's larger software systems. Some no-code tools that create mobile apps, called online application generators, can have security issues [6] . And for a citizen developer who does not know code, debugging would be quite a challenge. If and when program synthesis becomes a reality ("It will happen," Sen said.), understanding the code may be difficult for even the best programmers. The code will not have comments and might use inscrutable variable names. The most efficient code, as a computer determines it, may be incomprehensible to a human, Sen said. Then there is the inherent "black-box" nature of the neural network algorithms that may have produced the code, where it is often impossible to decipher how the outcome was achieved. But whether with program synthesis or drag-and-drop platforms, increasingly more people will be able to create programs, freeing up highly-trained coders to focus on the hardest problems. The demand for coders may lessen, but experts will still be needed. "I do not think people will be completely replaced," Cheung said. "There is still a lot of programming to be done out there that an automated system cannot replace right now-and even in the near future." New York City has deployed a COVID-19 Engagement Portal built in partnership with Unqork to manage growing crisis deploys COVID-19 Support Hub and New York City delivers over two million meals Google acquires AppSheet to help businesses create and extend applications-without coding Salesforce is named a leader in the 2019 Gartner Magic Quadrant for low code application platforms Introducing AI-assisted development to elevate low-code platforms to the next level The rise of the citizen developer: assessing the security impact of online app generators