1/ Several people have asked me to summarize my exploration of the low-code/no-code space. Here's what I learned. Note that this is VERY temporal: what's true today may not be in one month (especially with so much VC money sloshing about). Also, not tagging any companies. 🧵
2/ The principal dimensions of the space that I can discern are:

- new databases/tables
- data analytics, including visualization
- CRUD
- one-offs

I'll discuss these not in this order, but focus on CRUD, which to me is the most personally intriguing of the lot.
3/ The one-offs are things like vision model generators (Lobe), medical viz (MeVisLab), notebook-based data-driven storytelling (Observable). All very nice, but not much (yet) comparable to them, so they're specialized point solutions.
4/ The data/tables and analytics are often interwoven and can be hard to separate: some one, some the other, most somewhere between. These are products like Tableau, Sigma, Airtable, Budibase, and Retool. Some focus on the data, some are more code-oriented.
5/ I didn't have a good data analytics example in mind when I set out, so I mostly glossed over these. (But I do have a concrete analytics need now [🚴, caused by weaknesses in @FulGazApp], so I may return to them.) What I did notice is they are glossy and quick. But:
6/ What is not clear is how flexible they are, nor how good they are if you care about things like statistical rigor. Some are probably much more so, some definitely less so. Other things surprised me, but they are more general than this group, so more below.
7/ Now we get to the CRUD-ish group. Here, I see two spaces. One is the tools that are built around dataflow. They're all vaguely reminiscent of the late, great Yahoo Pipes (and others over decades). My notes say n8n, Integromat, Automate, Node-RED all fall here (E&OE).
8/ Some of these have support for IoT devices. This is good: I've programmed IoT (eg, particle.io) with C variants and it can be painful. In fact, I have an old particle system that needs updating; I may try one of these if they can work with particle.
9/ Popping back up two levels, back to CRUD. I've been interested in this a long time. In the mid- to late-noughties, I'd built several CRUD apps (conference, job search, grad apps, etc… managers) and was spending my time on the wrong things. I felt only three things mattered:
10/ 1. Data model. 2. Access privileges. 3. UX. Everything else should be automated. We built a system, Alchemy, based on Alloy, for 1 (and some of 2).
cs.brown.edu/~sk/Publicatio…
11/ As for 3, we were working on Flapjax, and I was especially intrigued about treating user actions as abstractions (eg, section 2.4, drag-and-drop as an abstraction). So it seemed it'd be great to wire the two together, and even prove things.
cs.brown.edu/~sk/Publicatio…
12/ Unfortunately, none of this went anywhere. There was no real interest at all in Alchemy, and Flapjax couldn't get any interest out of industrial users: reactivity was just too weird for JSers. So I moved on to other things. But I've always been intrigued!
13/ So now on to the main no-code/low-code CRUD space. This is where most of the action is. And I'm really fascinated by it. It's terrific and terrible at the same time. And I'm starting to see some real structure in this space. Most of all: I'm optimistic!
14/ I'm optimistic because it really does democratize some aspects of programming. We didn't need to write code for many of these things. And now we really don't need to. You don't need fancy math and synthesis and what not. You just need to … not write code!
15/ Increasingly table stakes:

- linking to backing stores (GSheet/Airtable/…)
- lots of std UI widgets
- adaptation across resolutions/devices
- integrating workflow automation (eg Zapier)

This is GOOD! Eg, fewer crappy home-grown, ill-tested widgets is great for all users.
16/ It's AMAZING that on so many systems now, within 5 minutes, you can connect to a backing store, drop in good widgets, link up some logic, generate an app, run it on multiple devices, and have updates from one show up soon on the other…for NO pain.
17/ I really can't emphasize how awesome this is. Talk about lowering the floor! I'm so delighted by these, I'm likely going to have a lab in my intro class starting next fall that has students use them. Gatekeepers excluded, we should all be delighted by this development.
18/ Okay, so what are the differentiators in this space? From what I can tell:

- programmability
- "enterprise"
- open source/self-hostable
- ML integration
- DB sophistication

In turn:
19/ Programmability: Many of these have ways of opening up the box for extension with code. Typically React, JavaScript, … but not exclusively. I'm surprised I haven't run into any that offer a block interface. Someone needs to occupy that space. Use Snap! (@moenig)
20/ "Enterprise": Do you view this as a serious, long-term asset or as a throw-away item? Everything from version control to collaboration to review. Various people grumbled to me that absence of this is a big weakness. But some do understand the need and offer it.
21/ Open-source/self-hostable: self-evident. Most are totally closed. A handful are not. [Not limiting to CRUD, here are some: Budibase, n8n, Draftbit, Baserow, Appsmith.] Clearly a big differentiator, especially since many in the crowded CRUD space will go poof in 2-3 years.
22/ ML integration: I'd have expected to see more ML in the mix, e.g., to help with system design/production. Saw very little, and what I saw may have been very lightweight stuff. I expect this will be a big growth area in this space, especially with lots of low-hanging fruit.
23/ DB sophistication: Most are very unsophisticated, giving you no more than a Google Sheet-equivalent. Now, I'm a big fan of treating Sheets as your DB (that's what @PyretLang does), but it's only okay for starting purposes. So many issues that it can't help with.
24/ Some systems let you use an RDBMS, and let you break out with your own queries. Especially the more corporate-facing ones. As an extreme case, Retool seems to be centered around queries. Of course, once you have an RDBMS, you can do all sorts of things.
25/ What I was surprised by is the unsophistication of the rest. There's little to no support to understand your data model, write down integrity constraints, even express data validation (beyond widgets), etc. This will create very brittle apps. Big hole here.
26/ The quality of documentation also varies widely. Some are stunning. Some are rubbish. Some are sub-rubbish (eg, their own docs are full of broken links). I suspect documentation quality is directly proportional to the amount of VC money being pumped in.
27/ I'm really tempted to dunk on the offerings of some major companies (eg, Amazon and Google), but I'll take the high road. But I've already written publicly about Amazon Amplify; see here:
28/ Overall, I'm very excited to see what happens in this space. There's a ton of cloning, and that will shake out. This can greatly reduce the barriers to entry for people. The trick is how to grow from here; those who've heard my CS Ed talks know I think a lot about this issue.
29/ But unlike many other "low floor" entry points, this one can produce truly useful things in truly short amounts of time. We shouldn't discount the value of that.

Okay, I've spent an hour just writing this thread! I'm done. Thank you for coming to my Gartner report. (-: •
PS: One thing I forgot to add: there are now dev shops that help you build a NC/LC app. That's some very rich irony, and yet at the same time quite sensible.

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with ShriramKrishnamurthi

ShriramKrishnamurthi Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @ShriramKMurthi

Dec 6, 2021
A short thread about my "other 90%" rule, frustration with courses, and a nice thing that happened.

My "other 90%" rule is that ugrad courses should be designed for the 90% of students who are NOT like us: not crazy about our subject, bound to grad school, etc. 1/n
What can THEY take away from our subject? What can they learn that might most impact them? The impact can and maybe should be both intellectual (expand their mind) and practical (give them new skills). I've always tried to apply this to my PL course. 2/n
When I talk about this to colleagues, they always trot out a "but who will think of the children" argument for not wanting to do the same: they're thinking of the student exactly like themselves. I get the feeling. I just think we should resist it. 3/n
Read 13 tweets
Dec 5, 2021
After numerous years of paid subscription, I finally cancelled @duolingo. I was plateauing on it, and found the coverage of languages uneven. I had avoided the gamification for a long time until my kid got me to compete with her. And that was great…until something happened: 1/n
My kid got to Champion, which means you top the leaderboard on the highest tier (Diamond League). That's cool! She kept urging me to do it. And no matter how hard I tried, I simply Could. Not. Come. Close. 2/n
I was in Diamond for a long time. Day 1 and maybe 2 I'd be leading. And then, somehow, someone would come out of the blue and just blow me away. Like destroy me: I'd have say 500 points and they'd have 3500. It seemed like superhuman effort. 3/n
Read 14 tweets
Nov 22, 2021
Language-embedded programming with tables is ubiquitous, but not at all as well supported by types as it should be. We have created a design/expression benchmark to spur better science on tabular types. There are 6 parts; 2 should esp. stand out: ↵ 🧵
blog.brownplt.org/2021/11/21/b2t…
1. Def of table.
2. Examples of tables.
3. API of table ops.
4. Example programs.

5. ERRONEOUS programs. Type research should || error research. Let's surface errors as a 1st class entity.

6. Datasheets, to improve commensurability.

All is explained in the blog & paper. ↵
Props to new grad student Kuang-Chen Lu. Special credit to post-doc Ben Greenman, who resisted the urge to build Yet Another Tabular Type System and instead focus on improving the state of science. (Ben's on the market if any R1 is hiring!) ↵
Read 4 tweets
Nov 20, 2021
This is an interesting thread by Jon. Having been (sort of) on both sides of this, I have some thoughts. Jon is super right that making changes to teaching languages is really problematic. Books get printed, materials consolidate, updating is not easy. ↵
I've extensively supported both secondary school and university educators. It's tricky at all levels. You're a prof, you have your lecture, it's all set to go, the evening before class you re-run the code to make sure it's all good, and … the language has changed on you. WTF. ↵
In @racketlang, of course, we have #lang, a general, universal mechanism that can be used for versioning and soooo much more. Curiously, it seems to be used for soooo much more but NOT for versioning. Maybe it's too powerful. Some of it is also cultural. ↵
Read 7 tweets
Oct 22, 2021
Since there are several ugrads and young grad students following here, let me answer the question: what comes next? We identified a problem; what can we do about it? ↵
One answer is to do what Slim suggests here. It's a GOOD answer. And it probably should be done in addition to everything else. But another is to step back and a question from first principles: ↵
Why do we have this vocabulary at all? It's the bridge from the code to error to the code. It's a LEVEL OF INDIRECTION. And if the indirection doesn't work, communication breaks down: like an NFT whose server has gone down (-:. What can we do instead? ↵
Read 6 tweets
Oct 22, 2021
I hope @gmarceau and @KathiFisler don't find out that I actually named the paper after a very silly British sitcom from the 80s. I expect several Indians will recognize it; but will anyone British? But there's a really important story on research methods behind the paper: 🧵 Award citation for "Mind Your Language" paper from
This work followed-up on our earlier paper, "Measuring the Effectiveness of Error Messages Designed for Novice Programmers". We had done a bunch of work analyzing edits and classifying error output. Seemed like a pretty done deal. But: ↵
We also did a handful of talkaloud studies to see how students really handled errors. Most of it was predictable. But one student said they were confused because they didn't know the WORDS in the error. The words?!? (Native English speaker, too.) ↵
Read 13 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us on Twitter!

:(