What is low code?
Low-code is a an approach to software creation designed to make the process quicker and easier by cutting down on the need for hand-coding. Instead of hand-coding code, users work within a visual interface, making use of drag-and-drop elements to bring their applications to life.
The Gartner has thrown a spotlight on the low-code sector, forecasting an impressive 25% growth that's set to push Low-code Application Platforms (LCAPs) to a market value of nearly $13 billion by the year 2025.
Low-code platforms open the doors of app development wide to those who might not have deep coding knowledge—often referred to as "citizen developers." These can be anyone from project managers to business analysts who, despite lacking formal programming training, are now empowered to build app prototypes and simple apps. This democratization of app development allows professional IT teams to allocate their focus and resources on tackling more complex projects.
In this article, we'll looking into low-code platforms, when and where they can be used, and limitations you might face during the development.
Steps we'll cover:
- What is low code?
- When to use low code platforms?
- Most used Low Code Platforms in the Market
- What are the Limitation of low code platforms?
When to use low code platforms?
Fast Development for Simple Apps: Use low-code platforms when you want to quickly create and launch simple applications.
Prototyping: They're great for making early versions of products, known as prototypes or MVPs, to test ideas before fully committing to them.
Involving Non-Techies: These platforms allow people who don't know much about programming to take part in developing non-complex applications.
Working with Limited Resources: If you're short on experienced developers or budget, low-code platforms make it possible to build applications with what you have.
These are good when you need to develop small automation or integration tasks, and don't have any need for the whole ALM process. They fall over as soon as you try and take them to that next level, putting in processes around testing, source & change control, environment migrations, etc. are clunky at best, impossible with some systems.
Low-code platforms are pretty handy when you're in a rush to get an app off the ground, looking for temporary solution or when your developer team is thin on the ground.
Initially, they're super user-friendly, making them perfect for basic, no-complex tasks and app prototypes. But here's the rub: as your project starts to grow in complexity, the once helpful features of low-code tools can start to feel more like barriers.
For example, need a quick dashboard for a short-term project, or have a basic task that needs doing without pulling in your top devs? Low-code has got your back. But as soon as your needs start to get a bit more complicated, you may find yourself hitting a wall with these tools. The simplicity that makes these tools great for simple tasks ends up holding you back, making it hard to grow your project or add complicated features.
In short, low-code platforms are a bit of a mixed bag. They're brilliant for simple apps, temporary solutions, and prototyping, getting non-techies involved in app development, and launching simple projects rapidly. But when it comes to building something with a bit more depth you might find yourself wishing for the flexibility and control that only traditional coding can offer.
Most used Low Code Platforms in the Market
Microsoft Powerapp
Part of Microsoft's Power Platform, which includes AI Builder, Dataverse, Power Automate, and Power Pages. Offers deep integration with Office 365, Dynamics 365, and other Microsoft services.
- Deployment: Hosted by Microsoft. Uses Dataverse for data management, compatible with Dynamics SaaS, supporting both physical and virtual tables.
- Application Logic: Features two main operation modes - "canvas apps" and "model-driven apps." Canvas apps use Power Fx, a formula language similar to Excel's, while model-driven apps rely on business process flows and Dataverse. Power Automate can automate processes for both.
- Connectors: Offers over 1,000 connectors with various services and applications. Data policies help manage connector usage.
Microsoft Power Apps stands out for its comprehensive integration within the Microsoft ecosystem, offering a wide range of connectors and advanced features like AI-assisted development, making it a robust choice for businesses deeply invested in Microsoft services.
Outsystems
It can be deployed as SaaS or on public cloud/on-premises. ODC is strictly an OutSystems-managed cloud service.
Provides web and desktop IDEs, AI-based development guidance, CI/CD pipelines, and infrastructure and security monitoring tools.
Features OutSystems UI for design consistency, integrated with Sketch, Figma, and Adobe XD, and offers a library of UI patterns and templates.
Mobile and Hybrid Apps: Supports Apache Cordova for mobile apps, with PWA options and plans to incorporate Ionic Capacitor for future solutions.
AI-Assisted Development: Utilizes AI for data queries, application logic, and reducing production issues.
Mendix
- Mendix LCAP: Offers SaaS, public, private, edge, and custom/on-premises deployments. It runs on platforms like AWS, Azure, IBM, and more.
- Developer Tools: Studio Pro IDE caters to various developers with Mendix Assist for suggestions, and Mendix Atlas UI for UI development with reusable assets.
- Cross-Platform Mobile Apps: Uses React Native for cross-platform native mobile apps supporting offline modes and includes AR/VR and 3D visualization.
- Integration and Authentication: Supports OpenID-based SSO, OAuth2.0, SAML, and more. Mendix Connect allows integration with various data sources and APIs.
- Event-Driven Architecture: Features a data broker based on Kafka for event-driven architectures, integrating with platforms like Solace.
Retool
Offers a variety of products like Retool Mobile and Workflows. Available as Retool-hosted or self-hosted.
- Design and Development: Lacks its own design system but supports front-end API architectures. Uses a web IDE for drag-and-drop app building with standard web technologies.
- Integration and Collaboration: Integrates with Jira, Asana, and Basecamp for project management, and offers collaboration via Slack. Connects to databases and APIs through native connectors and supports chatbots via Twilio.
- Data Layer and Logic: Features the new Retool Database for testing, along with connectors for databases and APIs. Allows backend business logic development in Workflows, with the option to add custom code.
- Governance and Identity Management: Implements development governance through permissions and Protected Applications, without generating editable code. Supports identity management with OAuth 2, Okta, and more.
Appian
Offers various deployment, including managed cloud or customer-managed setups, and hybrid options.
- Unified Data Fabric: Connects to various data sources in real-time, streamlining business data access.
- AI-assisted IDE: Simplifies app and workflow creation with a web-based environment, enabling point-and-click development without needing HTML, CSS, or JavaScript knowledge.
- Appian Portals: Allows creation of public websites and Progressive Web Apps, supporting a microservices architecture for external user engagement.
- Automation & Testing: Beyond low-code, offers RPA, IDP, and Process Mining.
- Security & Compliance: Facilitates role-based permissions and single sign-on with SAML/OpenID, alongside multiple server configurations for authentication.
What are the Limitation of low code platforms?
Low-code platforms can speed up simple automation or integration tasks without needing advanced application lifecycle management (ALM). However, their ease of use falls short when projects require complex processes like testing, source control, and environment migration. Here are some limitations:
Limited for Advanced Needs: While great for quick fixes or basic apps, low-code can become insufficient when projects expand in size and complexity. Trying to extend beyond their capabilities might force a complete rewrite and data migration for new features.
Ownership and Code Access: Transitioning to another development tool can be problematic, as some platforms retain control over the source code.
Dependency Dangers:
- Developer Lock-In: Custom functions or languages limit your choice of developers and make updates risky.
- Vendor Lock-In: Relying on third-party tools poses risks if the vendor changes terms, increases prices, or discontinues service.
- Citizen Developer Risks: Non-tech users might create inefficient applications that eventually need IT professionals, especially if they leave the company.
Cost Concerns: Ongoing subscriptions and licensing fees make low-code an expensive long-term commitment, especially with per-user pricing models.
Customization Limits: Users are limited to options offered in the low-code platform. Adapting to needs beyond the platform’s design can be challenging, often requiring significant workarounds or external developer intervention.
Security Concerns: Security concerns and maintenance problems often emerge when developers begin to embed sensitive information, such as credentials, connection strings, or keys, directly into their applications.There's the risk that someone could sneak into parts of the app they shouldn't, due to weak points in how access is managed. Problems like injection attacks or shaky APIs are also big concerns. Relying too much on one company for your app's backbone can also be risky—if they're slow to fix security holes, your app is left vulnerable. Speedy app creation is great, but it might mean security checks get skipped. Plus, making sure updates don't bring new problems, setting things up correctly from the get-go, and sticking to industry safety standards can be tough, especially for folks not deep into coding. T
Coding not the hard part: The biggest challenge in software development isn't the coding itself but understanding what needs to be done and handling complex scenarios. Low-code platforms simplify app creation but can't address the core complexities of programming. They allow basic app development without deep coding knowledge, yet this often leads to poorly designed, hard-to-maintain projects.
The idea that anyone can build software with low-code tools overlooks the need for a solid grasp of software development principles. This approach risks creating inefficient, unreliable applications. Furthermore, the attraction of saving costs by hiring less experienced developers may lead to more issues down the line, as low-code platforms don't simplify the most challenging aspects of development: logic and complexity management.
In short, while low-code can kickstart app development, relying on it without understanding coding fundamentals can result in problematic software.
Conclusion
Low-code platforms are ideal for quick prototyping and involving non-technical users in app creation. However, as project complexity increases, the limitations of low-code platforms become apparent, often leading to challenges in scalability and customization.
Despite these challenges, low-code remains a useful tool for certain use cases, underscoring the importance of choosing the right approach based on project requirements. Ultimately, while low-code platforms offer a promising route for fast and accessible app development, they may not always be the best choice for more complex, long-term software projects.