Currently I’m trying to understand the whole “low code” thing.
From my understanding, it’s like having software development be easy enough that it’s like home-cooking; someone in the family or community can do it:
In a better world, I would have built this in a day, using some kind of modern, flexible HyperCard for iOS. (Emphasis mine, related link: https://hypercard.org)
In our actual world, I built it in about a week, and roughly half of that time was spent wrestling with different flavors of code-signing and identity provisioning and I don’t even know what. I waved some incense and threw some stones and the gods of Xcode allowed me to pass.
Our actual world isn’t totally broken. I do not take for granted, not for one millisecond, the open source components and sample code that made this project possible. In the 21st century, as long as you’re operating within the bounds of the state of the art, programming can feel delightfully Lego-like. All you have to do is rake your fingers through the bin.
I know I ought to pay it forward and publish the code for my app. Even if it doesn’t work for anyone else as-is, it might provide a helpful guide — one I would have been grateful to have. But the code is riddled with application-specific values, well-salted with authentication keys. This app is Entirely Itself — not a framework, not a template — and that’s inseparable from the spirit in which it was made. Which brings me to:
Cooking at home
For a long time, I have struggled to articulate what kind of programmer I am. I’ve been writing code for most of my life, never with any real discipline, but/and I can, at this point, make the things happen on computers that I want to make happen. At the same time, I would not last a day as a professional software engineer. Leave me in charge of a critical database and you will return to a smoldering crater.
Building this app, I figured it out:
I am the programming equivalent of a home cook.
The exhortation “learn to code!” has its foundations in market value. “Learn to code” is suggested as a way up, a way out. “Learn to code” offers economic leverage, professional transformation. “Learn to code” goes on your resume.
But let’s substitute a different phrase: “learn to cook.” People don’t only learn to cook so they can become chefs. Some do! But many more people learn to cook so they can eat better, or more affordably. Because they want to carry on a tradition. Sometimes they learn because they’re bored! Or even because — get this — they love spending time with the person who’s teaching them.
The list of reasons to “learn to cook” overflows, and only a handful have anything to do with the marketplace. This feels natural; anyone who has ever, like … eaten a meal … of any kind … recognizes that cooking is totally tangled up with domesticity and curiosity, health and love.
Well, it’s the 21st century now, and I suspect that many of the people you love are waiting inside the pocket computer you are never long without, so I will gently suggest that perhaps coding might be tangled the same way.
When you liberate programming from the requirement to be general and professional and scalable, it becomes a different activity altogether, just as cooking at home is really nothing like cooking in a commercial kitchen. I can report to you: not only is this different activity rewarding in almost exactly the same way that cooking for someone you love is rewarding, there’s another feeling, too, specific to this realm. I have struggled to find words for this, but/and I think it might be the crux of the whole thing:
This messaging app I built for, and with, my family, it won’t change unless we want it to change. There will be no sudden redesign, no flood of ads, no pivot to chase a userbase inscrutable to us. It might go away at some point, but that will be our decision. What is this feeling? Independence? Security? Sovereignty?
Is it simply … the feeling of being home?
But what about those who cannot cook? And who makes the pots and pans (in other words, who makes the software that makes software development easy)?
Hmm. For those that cannot cook, for example due to a disability, usually order from delivery, and in some countries such as the UK would be able to collect a PIP for that (the alternative would be to be dependent or someone, or to live in a group home, which is traumatising to a lot of disabled people).
What would be that alternative (ordering from delivery)? Would it be… perhaps companies that use low-code tools to make and maintain custom apps for you for an affordable price?
What about the “pots and pans” problem? Who makes the software that makes the software?
About a modern HyperCard
- It should be completely usable on phones, even for the creation of things. It should not be desktop-first, it should be mobile-first.
- It should be completely usable on the web so anyone can share apps with each other freely, but phone browsers (darnit Apple) may make it hard…
- Ideally, it should be possible for an average-person to fork + modify the source code of a modern HyperCard on the side (i.e. without becoming a professional software developer, or without putting many hours into it).