TAB2APP, concept and objectives
This article tackles three problems of today's web development ecosystem (and software development in general). The increasing complexity and cost of web projects and the big technical gap that impedes active contribution, of non-developpers or low resources organizations, to it and obstructs the benefit they can withdraw. Web is a foundation for any digital transformation and web applications are central pilars. For this transformation to succeed, it is necessary to solve or attenuate those obstacles. We beleive No/Low Code platforms are a promising option. We explain TAB2APP vision and show how it differentiates compared to other solutions.
Since the advent of the world wide web in early ninetes, SW institutions, companies and communities have untiringly developped tools, languages, frameworks, standards that greatly contributed to the rich content we have today. This tremendous effort enabled the transition from what we call retrospectively web 1.0 to web 2.0. The web has evolved from a collection of static text and medias pages linked together, to a rich network where advanced interactions and transactions happen between users. Today, we can buy, sell, book, share, plan, organize, communicate over the web. Many of our daily use objects (phones, gears, cars, TVs,..) autonomously exchange data and controls over the net to "smartly" improve our user experience. Many of business and metier-application softwares run on the browser and are reachable from any point of the globe. Furthermore, anyone can contribute to the web content by creating its own blog, website, online store or a profil on social media. It is in fact this last faculty that is considered as key point characterizing the web 2.0.
Allowing anyone to contribute to the web is a great progress, however, this contribution is in fact guided and framed. One can create a content using tools that offer him a standard "way" to do things sometimes supplemented with a palet of plugins and themes. As soon as, you leave the beaten paths, you will need coding skills. As an example, try to find how to add a simple checkbox into the blog you built with the world most famous CMS. Assume that you want to let your reader select an option based on which you perform some filtering or selection. You will not find an answer or you will find yourself in a forum thread talking about code and integration tricks. Simple users may not be concerned about this limitation, however, companies and organizations who want to digitalize their operations would be greatly interested in a simple and flexible way to go on the cloud without the need for external support nor internal specialized staff. Web 2.0 enabled people to contribute and collaborate, but it has yet to give them chance to be creative, moreover, this category represent the big majority of users and the real final customers.
Web 2.0 enabled people to contribute and collaborate, but it has yet to give them chance to be creative
Web languages shall be simplified, abstracted and brought the closer to non-developpers.
Industries in general tend to decrease product cost by automation, diversity reduction, processes optimization, volumes. It is not the case of the web industry. The cost of web development (and software) projects are still high and man-day rate contributes to the major portion. Even if a CMS or other legacy code base are used, as soon as you leave the path, custom code is needed, and consequently, integration, test and validation effort. Trying to patch too much a code base may cost far more than a development from scratch in addition to the risk of project failure. It is also hard from customer perspective. Many customers do not have resources nor skills to formally specify their requirements and effectivly manage projects. Thus ambiguities and mis-communications arise between the customer and contracting companies. This is an other consequence of the gap between developpers and end-users speaking totally different "languages". SaaS business model (Software-as-a-Service) encounter a big success this days because it solves this economical issue. The client has not to spend NRE-costs. He simply get access to the service, operated and maintained by the provider, against a reasonable monthly rate. However, the drawback is loose of control over processes and data governance. In fact, SaaS being shared it tends to be a broad solution and offer few or no flexibility to adapt to a specific process variant. The data being stored and managed by a third-party, data governance issue arise whatever guarantees of confidentiality and security promised by the service provider. Furthermore, we can't find a SaaS solution for every single problem. SaaS addresses general topics (project management, accounting,...etc) that can be shared by many companies across many sectors otherwise the business model fails to be profitable.
SW canonisation and/or mutualisation is not sufficient. Efficient and abstract development tools are needed to solve more problems, onboard more creators and shorten the development leadtimes.
Intellectual production (like SW development) can't be industrialized. Technical and economical tentatives have improved the situation to some extent but there is still huge gaps to fill. This reality is encountered in other sectors as well. In the automotive industry, SW development graps around half of vehicle development expenses. Although, manufacturers and suppliers defined standards (AUTOSAR) and retentessly tried to share and mutualize developments through partenrships and alliances. In fact, the problem-space is infinite and design targets are generally antagonists and require many compromises and arbitrations. The least tiny modification you make to a shared SW component will require a big re-work with potential impact on the overall system. The more generic is a SW-component, the bigger and more complex it is. Thus commonalization competes with performance, safety, economy. Standardization efforts are not useless, many aspects of the development were improved especially design, collaboration and integration. However, some activities like testing and validation are still "artisanal" and are quickly overwhelmed by the increasing volume of features and diversities. Traditional OEMs are mutating their old processes (and processes of their suppliers) to adopt modern agile methods (CI/CV) in order to improve their operations and to stay competitive in a market disrupted by the new tech-players. One of the big advances made in the embedded SW development process is model based design (MBD). Today, application SW is designed graphically by engineers with different technical backgrounds and who don't have necessarily a strong SW skill. The models so constructed can be analyzed and validated in simulation then a production code is automatically generated. Models helped OEMs keep control on their know-how and formalized their exchanges with suppliers. TAB2APP is inspired by this approach of development.
A model based approach to web development would help in abstracting and simplifying it while keeping the creativity space open.
NO/LOW CODE platforms will play an important role in the near future of the web.
TAB2APP joins this movement of NO/LOW Code and aspires to handle the challenge. The appoach is different from the common observed trend. In fact TAB2APP is closer to a high level language than to a Builder/Configurator. As said before, it is inspired by MBD (Model-Based-Design). The idea is to have a "dream" all-in one tool (and language) where one can design data, computation and presentation concisely and easily. This methodology shall be abstract enough and high level enough to be easy to learn without SW background. This representation (model) shall keep formal so that it can be simulated and automatically translated into code. Simulation is important because it gives immediate feedback to the designer before proceeding with final product auto-generation which should be anyway compliant to the model. Designer can loop over this process to improve his product. The learning curve shall be as fast as possible and invokes preferrably existing tools and knwoledge to not increase the complexity discussed earlier. This "dream" tool is simply called a SPREADSHEET. People from different horizons use spreadsheets to structure, compute and present data. It is also interactive. Modifying a cell value updates all the dependent ones. Clicking on an hyperlink bring you from one sheet to another or triggers some action. It has a rich formula language enclosing many functions for computation and data processing. It offers a descent styling toolbox (police, colors, borders...). The most important point is that many people are familiar with and do not consider it as "coding". What else? it is all what we need to build a web application focused on data acquisition, processing and display. This is TAB2APP philosophy. The idea is to model (i.e. emulate) a web application using a spreadsheet, then automatically generate it and run it on the cloud. The user define his app, following tab2app methodology, uploads his wokbook to the platform, builds and runs it in few minutes.
Building a web application shouldn't be much more difficult than working on a spreadsheet.
It is important to point out that low code is not only beneficial to non-developpers. Students and engineers shall spend more time learning emerging technologies (AI, Data Science, IoT,...) than learning the "1001 way" how to do the same thing. Waiting for an AI that is able to translate natural language into a machine code, we need no/low code to be able to jump to the next step. Only after, we could think about web 3.0.