Low Code Platforms: Code Generation vs. Metadata
Ever wondered how low code development platforms came into existence? Well, you're in for a treat! Let's take a chill trip down memory lane and look at the history of low code platforms. We'll also chat about the difference between those that generate code and those that don't. Lastly, we'll discuss the potential headaches caused by code generation, including how it can lead to out-of-sync code and future upgrade issues. Grab a coffee, sit back, and enjoy!
A Blast from the Low Code Past:
Microsoft Access (1992): Remember when Microsoft Access was the new kid on the block? This database management system made it a breeze for non-programmers to build apps with its visual tools.
FileMaker (1998): FileMaker, now known as Claris FileMaker, was the go-to for creating custom applications without breaking a sweat – all thanks to its cross-platform relational database!
Salesforce (1999): Salesforce.com wasn't always the CRM giant it is today. It stepped up its game in 2007 with the Force.com platform, letting users whip up custom applications without much coding.
OutSystems (2001): Born in Portugal, OutSystems became a big player in low code platforms. It's all about letting users visually create and launch applications for web and mobile.
Mendix (2005): Mendix is another cool low code platform that helps developers create and launch applications with the help of visual modeling.
Generating Code vs. Not Generating Code: What's the Deal?
Low code platforms can be split into two categories:
Platforms that generate code: These platforms create code automatically as you design your apps using visual interfaces. OutSystems and Mendix are examples.
Platforms that don't generate code: These platforms rely on pre-built components and integrations to build applications. Microsoft Access, FileMaker, and Salesforce fall into this category. Ensemble is the NKOTB in this category, it's the one that doesn't lock you inside a walled garden.
The Code Generation Headache:
Code generation sounds like a sweet deal, right? Well, not always. Here are some issues that can crop up:
Out-of-sync code: When you modify the generated code directly, it can go out of sync with the design tool, making the platform practically useless for future updates or changes.
Tech changes and upgrades: As technology evolves, the generated code might become a liability, requiring significant effort to upgrade and maintain compatibility with new technologies or tools.
Limited customization: Generated code might not be as flexible as hand-written code, so you could find yourself stuck when trying to create a unique app.
Performance issues: Generated code can be clunky and inefficient, which means your app might not run as smoothly as you'd like.
Code maintenance: Generated code can be a mess to read and understand, making updates and maintenance a real pain.
Vendor lock-in: If you rely on a platform to create your code, switching to a different platform can be tricky since the code might not be compatible or easily transferable.
The Bottom Line:
Low code development platforms have come a long way, but it's important to weigh the pros and cons of code generation before diving in. While it might save you time initially, it could lead to some headaches later on, like out-of-sync code and upgrade challenges. So, be sure to choose a platform that suits your needs and keep on building awesome apps! While you are at it, check out Ensemble. It's a low code platform for building amazing mobile apps (native and web) and yeah it does not generate code!