OutSystems Visual Logic Flow

Why Low Code?

TL:DR; How one long-time .NET developer came to discover and embrace low code as another tool in his toolbelt, and why you might want to consider taking a look, too

Where I Came From

For those who don’t know me, I’ve been in the software industry for more than 25 years. My start in software on a professional level came in using Visual Basic, but in what was at the time a little unusual way, using VB to create server components. Which is a bit ironic, as one of the things I found most appealing about Visual Basic was its visual nature, and being able to create application UIs by simply dragging controls onto a form, and linking them up with code.

Visual Basic IDE
Visual Basic IDE – Image credit: Diomidis Spinellis – Creative Commons Attribution-Share Alike 3.0 Greece License

Around the same time, Microsoft was experimenting with bringing similar paradigms to web development, with a new tool called Visual InterDev, which provided similar drag and drop, control-based web UI development. Visual InterDev opened up a new world of data-bound, rapid development for web applications, and I loved it (and eventually wrote a book about it). Paul Thurrott has more thoughts on Visual InterDev here, so I’ll spare the reader too much detail here. The important takeaway is that while it had some downsides, including a pretty heavy load of client-side code to implement its controls, Visual InderDev was a significant leap in web development for those of us in the Microsoft camp.

In my view, the true promise of InterDev’s control-based development scheme came with the release of ASP.NET and its Web Forms development paradigm. Web Forms took the heavyweight, cumbersome, and sometimes finicky client code for Visual InterDev’s code, and replaced it with server controls that rendered HTML and more limited script to the client. Since at the time, servers were generally more robust and powerful than the average client machine, removing processing to the server had a number of benefits, including lighter client code and better performance.

ASP.NET was also a closer match to the programming paradigm of Visual Basic, in that each page in an ASP.NET application had the page itself, which contained the information for the UI of the application, and an associated “code behind” file, which contained the code (VB, or Microsoft’s new language at the time, C#) that responded to button clicks, and otherwise connected the controls on the page together to handle interaction with the user and similar tasks.

From the ASP.NET days (and a couple more books), I made my way through a variety of phases of web development using subsequent versions of ASP.NET (MVC, Web API, etc.), as well as various JavaScript frameworks.

Why the background? Because it informed my decision when I was presented with the opportunity to explore a role at OutSystems, a leading low code platform provider. When this opportunity arrived, I was doing satisfying, if somewhat vanilla, development work using Angular and ASP.NET Web API, so I was under no real pressure to find something new.

Discovering Low Code

When I initially talked to OutSystems, it was via a “friend of a friend” referral, and the conversation was interesting enough that when my interviewer recommended downloading and trying the OutSystems platform, I was happy to do so. What I found brought me back to the things I loved about Visual Basic, Visual InterDev, and ASP.NET in the early days…a visually-focused development environment that made building applications faster and easier.

But OutSystems as a platform took things even further than Visual Basic. In OutSystems, you can develop your entire application, from UI, to logic, to data model, and even workflows, in a single unified development environment, and all using visual tools. So where a developer using Visual Basic would drag and drop a button onto a Form, and double-click the button to add a button click handler, and then be dropped into a code editor, the OutSystems developer following a similar path remains in the visual metaphor with a flow editor instead.

OutSystems Visual Logic Flow
OutSystems Visual Logic Flow

I was sufficiently intrigued by the capabilities of this platform that I continued interviewing with OutSystems, and eventually took on a role as a Solution Architect there. I later returned to my roots in teaching and moved to a role as a Developer Advocate, and stayed with OutSystems until early 2023, when I took a role as a Senior Technical Architect with Xebia, an OutSystems partner.

So…Why Low Code?

Getting back to the title of this post…why have I chosen to explore, and ultimately stay with, low code?

I find that low code provides a good level of abstraction, while still (at least with OutSystems, though I assume other low code platforms have similar capabilities) allowing me to use JavaScript, CSS, C#, and related “high code” functionality where needed to expand or enhance the native capabilities of the platform.

Low code in the OutSystems world also still allows me to choose whether I want to go for raw speed, for example, using scaffolding to build out a simple forms over data app in a matter of minutes, or using codified architecture principles to build a robust, maintainable, and high-performance application that is more suitable for an enterprise.

And in the case of OutSystems, low code is opinionated, in a good way. While the underlying technologies are based on .NET and ReactJS, which means they’re well-understood and mature, the platform itself is designed to be very turnkey. When a customer signs up with OutSystems (or a developer creates a free Personal Edition), the server infrastructure is set up for them, and developers need only download a single tool, Service Studio, to get started with developing their apps. No need to figure out which JavaScript framework, source control, JS loader, etc., etc. to set up your developer machine with. Just one download, log in, and go. Having dealt with the madness of JS framework versions and related technologies, I love how simple it is for me to set up a new machine to develop OutSystems apps.

Low code is not perfect. And like any programming abstraction, there are places where the abstraction breaks down, and those times can be a pain to deal with. But with few exceptions, low code allows me to produce applications that solve important business problems faster than any other platform I’ve used, and also makes it faster for me to keep those applications up to date. That’s a winner in my book, and whether it’s OutSystems, or any of the other players in the low code space, I would encourage my fellow developers to check out low code, and see whether it might just merit a spot on your developer tool belt.

With that background, look for more posts on how OutSystems works, and how you can take advantage of low code to solve problems for your clients faster.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.