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.
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.
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.
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?
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.
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.